摘? 要:為解決圖神經(jīng)網(wǎng)絡(luò)(GNN)上不平衡節(jié)點(diǎn)的分類問題,提出一種Bagging集成模型,該模型使用圖卷積網(wǎng)絡(luò)(GCN)作為基分類器。在該模型中,先對(duì)若干基分類器進(jìn)行并行訓(xùn)練,然后使用多數(shù)投票的方式對(duì)這些基分類器的預(yù)測(cè)結(jié)果進(jìn)行集成,最終完成分類任務(wù)。實(shí)驗(yàn)結(jié)果表明,該文提出的模型顯著優(yōu)于其他現(xiàn)有基線方法,驗(yàn)證了其在不平衡節(jié)點(diǎn)分類中的有效性。
關(guān)鍵詞:圖神經(jīng)網(wǎng)絡(luò);不平衡節(jié)點(diǎn)分類;集成學(xué)習(xí)
中圖分類號(hào):TP183? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):2096-4706(2023)03-0029-04
Ensemble Graph Neural Network Model for Imbalanced Node Classification
GUO Mengxin
(Taiyuan Normal University, Jinzhong? 030619, China)
Abstract: To solve the classification problem of unbalanced nodes on graph neural network (GNN), a Bagging ensemble model is proposed, which uses GCN as the base classifier. In this model, several base classifiers are trained in parallel, and then the prediction results of these base classifiers are integrated by majority voting to complete the classification task finally. Experimental results show that the proposed model in this paper is significantly superior to other existing baseline methods, and its effectiveness in unbalanced node classification is verified.
Keywords: graph neural network; imbalanced node classification; ensemble learning
0? 引? 言
近年來,隨著圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network, GNN)的發(fā)展,在圖學(xué)習(xí)方面取得了很大的進(jìn)步。一個(gè)典型的任務(wù)是半監(jiān)督節(jié)點(diǎn)分類,GNN展現(xiàn)了其優(yōu)異的性能,并正在迅速發(fā)展,例如,圖卷積網(wǎng)絡(luò)(Graph Convolutional Network, GCN)[1]通過使用簡(jiǎn)化的一階近似有效地利用譜域中的特征;GraphSage[2]利用了空域中的特征,并且能更好地適應(yīng)不同的圖形拓?fù)洹1M管取得了這些進(jìn)展,但現(xiàn)有的工作還是主要集中在平衡的節(jié)點(diǎn)分類上。
在許多實(shí)際應(yīng)用中,我們經(jīng)常面臨不平衡節(jié)點(diǎn)分類問題。因?yàn)槲覀冎坏玫搅擞邢薜臉?biāo)記數(shù)據(jù),這使得有標(biāo)簽的少數(shù)類樣本非常少,所以半監(jiān)督設(shè)置就會(huì)進(jìn)一步放大類不平衡問題。而多數(shù)類可能會(huì)主導(dǎo)GNN的損失函數(shù),使得訓(xùn)練的GNN對(duì)這些多數(shù)類進(jìn)行過度分類,無法準(zhǔn)確預(yù)測(cè)少數(shù)類樣本,所以不平衡節(jié)點(diǎn)分類給現(xiàn)有的GNN帶來了挑戰(zhàn),這一問題導(dǎo)致許多具有不平衡類分布的實(shí)際應(yīng)用無法采用GNN,因此,開發(fā)用于類不平衡節(jié)點(diǎn)分類的GNN是非常重要的。
在機(jī)器學(xué)習(xí)領(lǐng)域,傳統(tǒng)的類不平衡問題得到了廣泛的研究。主要有三種方法:數(shù)據(jù)級(jí)方法、算法級(jí)方法和混合方法。然而,節(jié)點(diǎn)之間的關(guān)系是圖數(shù)據(jù)中的關(guān)鍵信息,傳統(tǒng)的機(jī)器學(xué)習(xí)技術(shù)則假設(shè)樣本是獨(dú)立同分布的,因此,傳統(tǒng)的不平衡學(xué)習(xí)算法并不適用于圖數(shù)據(jù)。
雖然對(duì)傳統(tǒng)數(shù)據(jù)的不平衡分類進(jìn)行了很好的研究,但對(duì)類不平衡問題的圖神經(jīng)網(wǎng)絡(luò)算法研究還比較有限。DRGCN[3]是解決圖上類不平衡問題的先驅(qū)工作,該方法提出了一個(gè)類條件對(duì)抗正則化器和一個(gè)潛在N分布對(duì)齊正則化器,但不能擴(kuò)展到大型圖;GraphSMOTE[4]通過預(yù)訓(xùn)練邊生成器,從而將SMOTE推廣到圖域,從而為來自SMOTE的新合成節(jié)點(diǎn)添加關(guān)系信息。然而,計(jì)算所有節(jié)點(diǎn)對(duì)之間的相似度和預(yù)訓(xùn)練邊生成器的任務(wù)非常繁重。
由于單個(gè)模型很難準(zhǔn)確預(yù)測(cè)不平衡數(shù)據(jù)集上的罕見點(diǎn)和少數(shù)點(diǎn),總體性能有限,而集成學(xué)習(xí)可以聚合多個(gè)基分類器從而提高分類器泛化性能。所以,我們提出了一種圖卷積網(wǎng)絡(luò)集成學(xué)習(xí)模型來處理不平衡節(jié)點(diǎn)分類問題。具體來講,將Bagging[5]算法與GCN相結(jié)合,通過并行化訓(xùn)練GCN分類器,并根據(jù)多數(shù)投票方式來確定最終分類結(jié)果,從而提高GCN在不平衡節(jié)點(diǎn)分類的性能。
實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有的不平衡節(jié)點(diǎn)分類方法相比,本文提出的集成模型顯著優(yōu)于其他基線方法,能更有效地解決不平衡節(jié)點(diǎn)分類問題。
1? 相關(guān)工作
1.1? 類不平衡問題
類不平衡問題在實(shí)際應(yīng)用中很常見,長期以來一直是機(jī)器學(xué)習(xí)領(lǐng)域的經(jīng)典研究方向。針對(duì)該問題的傳統(tǒng)方法通常可分為三類,即數(shù)據(jù)級(jí)、算法級(jí)和混合型。數(shù)據(jù)級(jí)方法通過過采樣少數(shù)類或欠采樣多數(shù)類來平衡訓(xùn)練實(shí)例,如隨機(jī)欠采樣和SMOTE[6]過采樣等。而算法級(jí)方法通過為每個(gè)類別分配不同的權(quán)重來緩解類不平衡問題,如重加權(quán)?;旌闲头椒ㄊ菍⑸鲜鲆粋€(gè)或兩個(gè)類別的多個(gè)算法結(jié)合起來,如SMOTEBoost和UnderOverBagging等。此外,研究人員引入了一些新方法,如度量學(xué)習(xí)、元學(xué)習(xí),還有基于神經(jīng)網(wǎng)絡(luò)的不平衡數(shù)據(jù)學(xué)習(xí)方法,然而,我們的目標(biāo)是解決圖結(jié)構(gòu)上的類不平衡問題,所以這些算法并不適用。
最近,人們提出了一些不平衡網(wǎng)絡(luò)嵌入方法來解決圖結(jié)構(gòu)數(shù)據(jù)的不平衡學(xué)習(xí)問題[7-10]。如RECT[11]在學(xué)習(xí)類級(jí)語義嵌入之上提出了兩個(gè)正則化術(shù)語,以解決極端情況下的不平衡學(xué)習(xí),DRGCN提出了兩種正則化方法來解決不平衡網(wǎng)絡(luò)嵌入問題,GraphSMote使用GNN編碼器學(xué)習(xí)節(jié)點(diǎn)嵌入,并使用額外的邊生成器生成連接合成少數(shù)節(jié)點(diǎn)的邊。
1.2? 圖神經(jīng)網(wǎng)絡(luò)
近年來,隨著對(duì)非歐幾里得空間學(xué)習(xí)和樣本間豐富關(guān)系信息建模需求的增加,GNN受到了越來越多的關(guān)注,并得到了快速發(fā)展。GNN將卷積神經(jīng)網(wǎng)絡(luò)推廣到圖結(jié)構(gòu)數(shù)據(jù),并在圖結(jié)構(gòu)數(shù)據(jù)建模方面顯示出了強(qiáng)大的能力。一般來說,現(xiàn)有的GNN框架可以分為兩類,即基于譜域的和基于空域的?;谧V域的圖卷積網(wǎng)絡(luò)通過計(jì)算圖的拉普拉斯特征分解來定義傅里葉變換中的卷積運(yùn)算,如GCN,它是目前使用最廣泛的GNN之一?;诳沼虻膱D卷積網(wǎng)絡(luò)直接定義在圖上,對(duì)目標(biāo)節(jié)點(diǎn)及其拓?fù)溧従舆M(jìn)行操作,從而實(shí)現(xiàn)對(duì)圖結(jié)構(gòu)的聚合,如GraphSage。
盡管各種GNN都取得了成功,但是這些方法沒有考慮類不平衡問題,由于這一問題廣泛存在于現(xiàn)實(shí)應(yīng)用中,可能會(huì)降低GNN的性能,因此不適用于不平衡節(jié)點(diǎn)分類問題。
2? 模型方法
2.1? 問題描述
在本文中,我們使用G={V, A, F}表示一個(gè)屬性網(wǎng)絡(luò),其中V={v1,…,vn}是n個(gè)節(jié)點(diǎn)的集合,A∈Rn×n是G的鄰接矩陣,F(xiàn)∈Rn×d表示節(jié)點(diǎn)的屬性矩陣,其中F[ j,:]1×d是節(jié)點(diǎn)j的節(jié)點(diǎn)屬性,d是節(jié)點(diǎn)屬性的維度。訓(xùn)練集中,VL代表有標(biāo)簽的節(jié)點(diǎn),YL是其對(duì)應(yīng)的標(biāo)簽,VU代表無標(biāo)簽的節(jié)點(diǎn),YU是其對(duì)應(yīng)的標(biāo)簽,共有m個(gè)類別,{C1,…,Cm},|Ci|是第i類的大小,指屬于該類別的樣本數(shù)量,我們使用不平衡率? 來衡量類不平衡的程度。給定節(jié)點(diǎn)類不平衡的屬性網(wǎng)絡(luò)G,以及節(jié)點(diǎn)VL子集的標(biāo)簽,我們的目標(biāo)是學(xué)習(xí)一個(gè)對(duì)多數(shù)類節(jié)點(diǎn)和少數(shù)類節(jié)點(diǎn)都有效的分類器f,即f (V, A, F)→Y。
2.2? GCN模型
輸入無向圖G={V, A, F},其對(duì)應(yīng)的鄰接矩陣A∈Rn×n是一個(gè)描述其邊的n×n稀疏矩陣,如果i和j之間有邊,則(i, j)項(xiàng)等于1,否則為0。度矩陣D是對(duì)角線矩陣,其中對(duì)角線上的值等于每個(gè)頂點(diǎn)的度,可以計(jì)算為di=∑jaij。每個(gè)節(jié)點(diǎn)與一個(gè)F維特征向量相關(guān)聯(lián),X∈Rn×F表示所有節(jié)點(diǎn)的特征矩陣。我們使用具有兩層的半監(jiān)督分類GCN模型作為基分類器,每層的計(jì)算變換為:
(1)
其中, 是通過? 獲得的歸一化鄰接矩陣,W(l)是各層的可訓(xùn)練權(quán)重。σ(·)表示激活函數(shù)(通常為ReLU), 是第L隱藏層的輸入激活矩陣,其中每行表示dl維節(jié)點(diǎn)表示向量。初始節(jié)點(diǎn)表示僅為原始輸入特征:
H(0)=X? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
兩層GCN模型可以根據(jù)頂點(diǎn)特征X和? 定義為:
(3)
GCN通過反向傳播學(xué)習(xí)算法進(jìn)行訓(xùn)練。最后一層使用softmax函數(shù)進(jìn)行分類,我們求所有標(biāo)記節(jié)點(diǎn)的交叉熵?fù)p失值:
(4)
2.3? 圖神經(jīng)網(wǎng)絡(luò)集成模型(Bagging-GCN)
本文結(jié)合隨機(jī)采樣和并行集成方法來構(gòu)造不平衡節(jié)點(diǎn)的集成分類學(xué)習(xí)模型,多個(gè)弱分類器與Bagging技術(shù)相結(jié)合,形成一個(gè)強(qiáng)分類器。在訓(xùn)練M個(gè)基分類器之后,對(duì)M個(gè)基分類器的結(jié)果進(jìn)行多數(shù)投票,可以預(yù)測(cè)輸入樣本的類別,過程如圖1所示。
集成模型中的基分類器雖然所用樣本數(shù)據(jù)屬于同一個(gè)訓(xùn)練集,但是在訓(xùn)練過程中對(duì)樣本數(shù)據(jù)的采樣與訓(xùn)練是相互獨(dú)立的,只是對(duì)其輸出結(jié)果進(jìn)行多數(shù)投票。主要原理是利用不同基分類器之間的差異性,通過各分類器的投票結(jié)果來降低分類錯(cuò)誤,提高模型的泛化能力。具體實(shí)現(xiàn)過程如下:
(1)構(gòu)建單個(gè)基分類器:按照實(shí)驗(yàn)規(guī)定對(duì)每一類訓(xùn)練樣本進(jìn)行抽取,結(jié)合這些被抽取的所有樣本構(gòu)建基分類器。
(2)形成集成學(xué)習(xí)系統(tǒng):對(duì)訓(xùn)練集重復(fù)執(zhí)行步驟來構(gòu)建一組基分類器,并將獲取的基分類器用于Bagging集成學(xué)習(xí)。
(3)結(jié)合所有基分類器的預(yù)測(cè)值,由相對(duì)多數(shù)投票決定最終的分類結(jié)果。
在訓(xùn)練學(xué)習(xí)的每次迭代中,用相應(yīng)的訓(xùn)練數(shù)據(jù)來訓(xùn)練基分類器,M個(gè)基分類器經(jīng)過并行訓(xùn)練之后,根據(jù)多數(shù)投票原則來確定集成模型的輸出。集成模型的偽代碼如下:
輸入:數(shù)據(jù)集D={(x1, y1),(x2, y2),(x3, y3),…,(xn, yn)}
基分類器GCN
迭代次數(shù)m
步驟:forM=1 to m
DM=bootstrap(D)? ?//使用訓(xùn)練集進(jìn)行M次采樣
GM=GCN(DM)? ? ? ?//采樣集DM訓(xùn)練第M個(gè)分類器
end for
輸出:
3? 實(shí)驗(yàn)結(jié)果及分析
3.1? 數(shù)據(jù)集
我們對(duì)兩個(gè)廣泛使用于節(jié)點(diǎn)分類的數(shù)據(jù)集Cora和BlogCatalog進(jìn)行了實(shí)驗(yàn),這兩個(gè)數(shù)據(jù)集的詳細(xì)介紹如下:
Cora是一個(gè)引文網(wǎng)絡(luò)數(shù)據(jù)集,包含來自7個(gè)領(lǐng)域的2 708篇論文,每個(gè)節(jié)點(diǎn)都有一個(gè)1 433維的屬性向量,該圖中總共有5 429個(gè)引用鏈接。在這個(gè)數(shù)據(jù)集中,類分布是相對(duì)平衡的,所以我們使用了一個(gè)模擬的不平衡設(shè)置:選取三個(gè)隨機(jī)類作為少數(shù)類,并對(duì)其進(jìn)行欠采樣。所有多數(shù)類都有20個(gè)節(jié)點(diǎn)作為訓(xùn)練集,每個(gè)少數(shù)類的訓(xùn)練節(jié)點(diǎn)數(shù)為20乘以不平衡率,不平衡率默認(rèn)為0.5。選取500個(gè)節(jié)點(diǎn)作為驗(yàn)證集,并在1 000個(gè)標(biāo)記節(jié)點(diǎn)的測(cè)試集上進(jìn)行預(yù)測(cè)和評(píng)估。
BlogCatalog是一個(gè)社交網(wǎng)絡(luò)數(shù)據(jù)集,共有來自38個(gè)類別的10 312名博主和333 983條友誼邊緣,數(shù)據(jù)集不包含節(jié)點(diǎn)屬性。然后,使用從Deepwalk獲得的64維嵌入向量對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行屬性化。此數(shù)據(jù)集中的類遵循真正的不平衡分布,14個(gè)類小于100,8個(gè)類大于500。對(duì)于此數(shù)據(jù)集,使用每個(gè)類25%的樣本進(jìn)行訓(xùn)練,25%用于驗(yàn)證,其余50%用于測(cè)試。
3.2? 實(shí)驗(yàn)設(shè)置
在我們提出的模型中,使用了7個(gè)基分類器,所有基分類器都是兩層的GCN,學(xué)習(xí)率為0.01,權(quán)重衰減為5×10-4(L2正則化),隱藏單元數(shù)為16,dropout設(shè)置為0.5,我們采用ADAM優(yōu)化算法對(duì)所有模型進(jìn)行訓(xùn)練,所有模型都經(jīng)過訓(xùn)練直到收斂,最大訓(xùn)練周期為5 000,此外,所有實(shí)驗(yàn)都是在一臺(tái)機(jī)器上進(jìn)行的,在Pytorch和Python 3.6中實(shí)現(xiàn)。
3.3? 評(píng)價(jià)指標(biāo)
我們采用了兩個(gè)評(píng)價(jià)指標(biāo):準(zhǔn)確率(ACC)和Macro-F1。ACC同時(shí)對(duì)所有測(cè)試節(jié)點(diǎn)進(jìn)行計(jì)算,代表了整體分類的準(zhǔn)確率,Macro-F1值常用于不平衡節(jié)點(diǎn)分類,能更好地反映不平衡節(jié)點(diǎn)分類模型的好壞,每一類的Macro-F1值都是單獨(dú)計(jì)算,然后對(duì)其進(jìn)行非加權(quán)平均。
3.4? 實(shí)驗(yàn)對(duì)比模型
為了證明我們提出模型的有效性,我們將其與其他8個(gè)基線進(jìn)行了比較:
Origin:原始實(shí)現(xiàn)。
Over-Sampling:直接從少數(shù)樣本中重復(fù)抽樣。
Re-weight:將較高的損失權(quán)重分配給少數(shù)類樣本。
SMOTE:通過在輸入空間內(nèi)插值來生成樣本。
Embed-SMOTE:通過在嵌入空間內(nèi)插值對(duì)SMOTE進(jìn)行擴(kuò)展。
RECT:在學(xué)習(xí)類級(jí)語義嵌入之上提出了兩個(gè)正則化術(shù)語。
DRGCN:通過使用對(duì)抗訓(xùn)練范式鼓勵(lì)潛在嵌入空間中的類之間的分離來解決類不平衡問題。
GraphSMOTE:構(gòu)造了一個(gè)嵌入空間來編碼節(jié)點(diǎn)之間的相似性,在此空間合成新樣本以確保真實(shí)性,同時(shí)訓(xùn)練邊生成器來建模關(guān)系信息,并將其提供給這些新樣本。
3.5? 實(shí)驗(yàn)結(jié)果
3.5.1? 與基線方法的比較結(jié)果
為了評(píng)估我們提出的模型在類不平衡節(jié)點(diǎn)分類任務(wù)中的有效性,我們?cè)谏鲜鰞蓚€(gè)數(shù)據(jù)集上將其與其他八個(gè)基線進(jìn)行了比較。每個(gè)實(shí)驗(yàn)進(jìn)行5次,以減輕隨機(jī)性。從表1中,我們可以看出,與其他分類模型相比,該模型的表現(xiàn)優(yōu)于其他所有基線,例如,與GraphSMOTE相比,我們提出的模型在Cora數(shù)據(jù)集上的Acc值和Macro-F1值分別提高了3.4%和2.3%,這些結(jié)果驗(yàn)證了所提出框架的有效性。
3.5.2? 基分類器數(shù)量的影響
我們改變了基分類器的數(shù)量,用不同的評(píng)價(jià)指標(biāo)檢驗(yàn)了我們提出的模型在Cora數(shù)據(jù)集上的分類性能?;诸惼鞯臄?shù)量從3個(gè)增加到11個(gè),訓(xùn)練集、驗(yàn)證集和測(cè)試集的劃分采取前面的方式。我們分別進(jìn)行了10次實(shí)驗(yàn),每個(gè)基分類器分別訓(xùn)練了200個(gè)周期,表2顯示了實(shí)驗(yàn)的平均結(jié)果。實(shí)驗(yàn)結(jié)果表明,當(dāng)基分類器數(shù)量較少時(shí),分類性能隨著基分類器數(shù)量的增加而提高,當(dāng)基分類器的數(shù)目達(dá)到一定程度時(shí),由于過擬合,各項(xiàng)指標(biāo)都會(huì)降低。
4? 結(jié)? 論
在本文中,為了解決圖中節(jié)點(diǎn)的類不平衡問題,我們提出了一種圖神經(jīng)網(wǎng)絡(luò)集成學(xué)習(xí)模型。在所提出的模型中,采用Bagging集成學(xué)習(xí)方法,多個(gè)GCN被用作基分類器,用每個(gè)基分類器對(duì)數(shù)據(jù)特征進(jìn)行提取和學(xué)習(xí),所有基分類器并行訓(xùn)練,最后對(duì)這些模型訓(xùn)練所得結(jié)果進(jìn)行多數(shù)投票確定最終結(jié)果。在兩個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文提出的方法在不平衡節(jié)點(diǎn)分類任務(wù)上優(yōu)于其他基線。在之后的研究中,我們希望將該模型擴(kuò)展到更多的應(yīng)用領(lǐng)域。
參考文獻(xiàn):
[1] KIPF T N,WELLING M. Semi-Supervised Classification with Graph Convolutional Networks [J/OL].arXiv: 1609.02907 [cs.LG].[2022-09-26].https://arxiv.org/abs/1609.02907v3.
[2] HAMILTON W L,YING R,LESKOVEC J. Inductive representation learning on large graphs [C]//NIPS'17:Proceedings of the 31st International Conference on Neural Information Processing Systems.Long Beach:Curran Associates Inc.,2017:1025–1035.
[3] SHI M,TANG Y F,ZHU X Q,et al. Multi-Class Imbalanced Graph Convolutional Network Learning [C]//Proceedings of the 29th International Joint Conference on Artificial Intelligence.Yokohama:[s.n.],2021:2862-2868.
[4] ZHAO T X,ZHANG X,WANG S H. GraphSMOTE:Imbalanced Node Classification on Graphs with Graph Neural Networks [J/OL].arXiv: 2103.08826 [cs.LG].[2022-09-20].https://arxiv.org/abs/2103.08826.
[5] BREIMAN L. Bagging Predictors [J].Machine learning,1996,24(2):123-140.
[6] FERN?NDEZ A,GARCIA S,HERRERA F,et al. SMOTE for Learning from Imbalanced Data:Progress and Challenges,Marking the 15-year Anniversary [J].The Journal of Artificial Intelligence Research,2018,61:863-905.
[7] CHEN D L,LIN Y K,ZHAO G X,et al.Topology-Imbalance Learning for Semi-Supervised Node Classification [J/OL].arXiv: 2110.04099 [cs.LG].[2022-09-20].https://arxiv.org/abs/2110.04099.
[8] WU L R,LIN H T,GAO Z Y,et al. GraphMixup:Improving Class-Imbalanced Node Classification on Graphs by Self-supervised Context Prediction [J/OL].arXiv: 2106.11133 [cs.LG].[2022-09-20].https://arxiv.org/abs/2106.11133.
[9] WANG Y,AGGARWAL C,DERR T.Distance-wise Prototypical Graph Neural Network in Node Imbalance Classification [J/OL]. arXiv: 2110.12035 [cs.LG].[2022-09-20].https://arxiv.org/abs/2110.12035v1.
[10] LIU Y,AO X,QIN Z D,et al. Pick and Choose: A GNN-based Imbalanced Learning Approach for Fraud Detection [C]//Proceedings of the Web Conference 2021.Ljubljana:Association for Computing Machinery.2021:3168-3177.
[11] WANG Z,YE X J,WANG C K,et al. Network Embedding With Completely-Imbalanced Labels [J].IEEE Transactions on Knowledge and Data Engineering,2021,33(11):3634-3647.
作者簡(jiǎn)介:郭夢(mèng)昕(1996—),女,漢族,山西呂梁人,碩士研究生在讀,研究方向:智能數(shù)據(jù)開發(fā)與應(yīng)用。
收稿日期:2022-10-07