趙超麗 王裴巖 蔡東風(fēng)
(沈陽航空航天大學(xué)人機智能研究中心 遼寧 沈陽 110136)
HowNet是使用最為廣泛的可計算中文常識語義知識庫,能夠支持相似度計算[1]、相關(guān)度計算[2]、傾向性計算[3]和神經(jīng)網(wǎng)絡(luò)語言模型[4-6]訓(xùn)練等,被廣泛應(yīng)用于自然語言處理的各個領(lǐng)域。HowNet面向通用領(lǐng)域,但對專業(yè)領(lǐng)域如航空領(lǐng)域的自然語言理解任務(wù)的支持能力尚顯不足。
近年來,文獻(xiàn)[7-9]先后進(jìn)行了對面向航空領(lǐng)域的術(shù)語語義知識庫構(gòu)建方法的研究,基于HowNet語義理論體系對HowNet在航空領(lǐng)域的應(yīng)用進(jìn)行了擴展。但現(xiàn)有的航空領(lǐng)域HowNet構(gòu)建方法還未能實現(xiàn)大規(guī)模構(gòu)建,主要困難在于HowNet定義的動態(tài)角色種類較多,共計116種(2012版[10]),使其選擇范圍較大,增加了航空術(shù)語內(nèi)部動態(tài)角色標(biāo)注難度。而術(shù)語內(nèi)部動態(tài)角色標(biāo)注是航空領(lǐng)域HowNet構(gòu)建的關(guān)鍵環(huán)節(jié),其直接影響航空領(lǐng)域HowNet的規(guī)模與質(zhì)量。就術(shù)語內(nèi)部動態(tài)角色的標(biāo)注方法而言,文獻(xiàn)[7]采用了手工標(biāo)注的方法,為后續(xù)開展自動化標(biāo)注研究積累了語義資源。文獻(xiàn)[8]采用了基于角色框架填充的方法,該方法雖實現(xiàn)了自動化標(biāo)注,但術(shù)語內(nèi)部詞語之間的動態(tài)角色被固定,導(dǎo)致系統(tǒng)泛化能力較低。文獻(xiàn)[9]提出了基于最大熵分類、基于相似度計算、基于最大熵分類與相似度計算相結(jié)合的一系列方法,并且推薦多個動態(tài)角色供用戶參考,最終實現(xiàn)了術(shù)語內(nèi)部動態(tài)角色的標(biāo)注,但該方法僅僅依靠將一些語義特征集中訓(xùn)練分類器仍未能很好地解決動態(tài)角色種類多造成標(biāo)注困難的問題。
針對該問題,本文提出了一種基于KNN分類算法的術(shù)語內(nèi)部動態(tài)角色標(biāo)注方法。首先通過對術(shù)語內(nèi)部詞語DEF項的分析對訓(xùn)練集進(jìn)行預(yù)選擇,有效地降低了動態(tài)角色關(guān)系類型選擇范圍。然后利用DEF及詞向量兩種方法所蘊含語義信息的差異性,提出了一種訓(xùn)練單位排序表合并算法,有效地提高了動態(tài)角色排序準(zhǔn)確性。最后經(jīng)真實數(shù)據(jù)集上的實驗驗證,當(dāng)推薦的動態(tài)角色數(shù)量為10時,推薦結(jié)果的準(zhǔn)確性達(dá)95%以上,從116種動態(tài)角色關(guān)系類型中過濾出10個動態(tài)角色,有效降低了選擇范圍,且絕大多數(shù)情況下正確動態(tài)角色關(guān)系類型被排在第一位或第二位,能夠快速選取到正確動態(tài)角色關(guān)系,提升了標(biāo)注準(zhǔn)確率和效率。
一些本文用到的相關(guān)概念定義如下:
(1) 術(shù)語內(nèi)部詞語,是指構(gòu)成術(shù)語的詞語,如:“工程”“管理”“標(biāo)準(zhǔn)”均為術(shù)語“工程管理標(biāo)準(zhǔn)”的內(nèi)部詞語。
(2) 標(biāo)注單位,是指術(shù)語經(jīng)過內(nèi)部依存結(jié)構(gòu)分析所確定的具有依存關(guān)系的詞對,表示為(w1,w2),其中依存方向為w1依存于w2。例如,術(shù)語“工程管理標(biāo)準(zhǔn)”經(jīng)過術(shù)語內(nèi)部依存結(jié)構(gòu)分析,可以得到如下2個標(biāo)注單位:(工程,管理)、(管理,標(biāo)準(zhǔn))。
(3) 訓(xùn)練單位,是指由標(biāo)注單位和動態(tài)角色組成訓(xùn)練集中的一個樣例,表示為((w1,w2),EventRole),其中:(w1,w2)為標(biāo)注單位,EventRole為動態(tài)角色。比如,((工程,管理),patient)。
(4) 首義原,是指術(shù)語內(nèi)部詞語DEF項中的第一個義原。比如術(shù)語“工程管理標(biāo)準(zhǔn)”中內(nèi)部詞語“工程”選擇的DEF項為:DEF={affair|事務(wù):domain={industrial|工}},則內(nèi)部詞語“工程”DEF項的首義原為“affair|事務(wù)”。
(5) 術(shù)語內(nèi)部動態(tài)角色標(biāo)注,是指采用HowNet定義的動態(tài)角色體系為術(shù)語中所有具有依存關(guān)系的內(nèi)部詞對之間的語義關(guān)系進(jìn)行標(biāo)注,明確了術(shù)語內(nèi)部非核心詞語之間以及非核心詞與核心詞之間的語義關(guān)系,它為領(lǐng)域術(shù)語語義知識庫中術(shù)語DEF(概念描述)[11]的生成標(biāo)注了內(nèi)部詞語之間的語義關(guān)系,使得術(shù)語內(nèi)部的簡單概念可以通過動態(tài)角色有機關(guān)聯(lián)起來,從而形成表示術(shù)語本身語義知識的復(fù)雜概念[9],在領(lǐng)域術(shù)語語義知識庫構(gòu)建過程中起著關(guān)鍵性的作用。例如:“((工程,管理),patient)、((管理,標(biāo)準(zhǔn)),host)”,其中:“工程”“管理”“標(biāo)準(zhǔn)”均為術(shù)語“工程管理標(biāo)準(zhǔn)”的內(nèi)部詞語,“工程”依存于“管理”“管理”依存于“標(biāo)準(zhǔn)”,動態(tài)角色“patient”表示“工程”是“管理”的受事者,動態(tài)角色“host”表示“管理”是“標(biāo)準(zhǔn)”的宿主。根據(jù)該術(shù)語的內(nèi)部依存結(jié)構(gòu),將術(shù)語內(nèi)部詞語的DEF以及兩者之間的動態(tài)角色按照知識系統(tǒng)描述語言(Knowledge Database Mark-up Language,KDML)[11]的規(guī)定而生成的DEF如下:DEF={Standard|標(biāo)準(zhǔn):host={manage|管理:patient={affair|事務(wù):domain={industrial|工}}}},該術(shù)語DEF的結(jié)構(gòu)分析如圖1所示。
圖1 術(shù)語“工程管理標(biāo)準(zhǔn)”DEF的結(jié)構(gòu)分析
HowNet先把世界知識本體進(jìn)行定義,然后在定義里作具體的區(qū)分,采取自上而下的方法,并采用以義原為基的策略?;诖怂枷?,本文首先使用術(shù)語內(nèi)部兩詞語DEF項中的首義原對訓(xùn)練集進(jìn)行預(yù)選擇;接著對動態(tài)角色關(guān)系做進(jìn)一步的標(biāo)注。
標(biāo)注單位(w1,w2)對應(yīng)的義原類別組合可表示為:(Class1,Class2)。其中:Class1、Class2分別表示詞語w1和w2已選DEF項的首義原所屬的義原類別。HowNet將義原分為屬性類、屬性值類、事件類、實體類四類。因此,本文根據(jù)標(biāo)注單位對應(yīng)的義原類別組合可將已有的樣本數(shù)據(jù)分為16類。
HowNet中每個動態(tài)角色都有其特定的描述對象,使其接納標(biāo)注單位的條件比較苛刻,從而造成有些動態(tài)角色關(guān)系類型只出現(xiàn)于固定的幾個義原類別組合對應(yīng)的訓(xùn)練單位中。比如,動態(tài)角色host用于標(biāo)注屬性的宿主,一般多出現(xiàn)于義原類別組合為(實體類,屬性類)所對應(yīng)的訓(xùn)練單位中;動態(tài)角色degree、scope分別用于描述屬性值的程度、范圍;動態(tài)角色agent表示行動的事件類型中“變關(guān)系”“變狀態(tài)”“變屬性”和“使之動”四類事件中充當(dāng)“變”這一功能的實體,一般情況只會在義原類別組合為(實體類,事件類)所對應(yīng)的訓(xùn)練單位中出現(xiàn)。
在樣本預(yù)選擇過程中,首先利用HowNet的義原分類體系Taxonomy[10]。圖2為HowNet 2012版中義原分類體系部分展示圖,從上到下從左往右依次為屬性類、屬性值類、實體類和事件類,該四個義原類別包含的義原個數(shù)分別為245、887、154和812個。該分類體系為標(biāo)注單位中術(shù)語內(nèi)部詞語找到其DEF項中首義原所屬的義原類別,從而獲得標(biāo)注單位對應(yīng)的義原類別組合。然后在已有的樣本數(shù)據(jù)中選擇與其具有相同義原類別組合的數(shù)據(jù),作為下一過程即基于KNN分類算法的動態(tài)角色標(biāo)注方法的訓(xùn)練樣本數(shù)據(jù)。
圖2 HowNet中義原分類體系部分展示圖
由于目前國內(nèi)外許多大規(guī)模的知識庫大多都面向通用領(lǐng)域[12-14],在特定領(lǐng)域研究較少,造成領(lǐng)域術(shù)語語義知識庫的可獲得標(biāo)注資源匱乏,且標(biāo)注成本代價較高,限制了當(dāng)前需要更多數(shù)據(jù)支撐的深度學(xué)習(xí)等主流算法的使用。KNN算法是一種基于實例學(xué)習(xí)的分類算法,適合多分類任務(wù),不需要構(gòu)建分類模型,對新增類別有較好的適應(yīng)能力[15]。本文將動態(tài)角色標(biāo)注轉(zhuǎn)化成對標(biāo)注單位的分類問題,并且將標(biāo)注單位所對應(yīng)的動態(tài)角色關(guān)系類型作為分類的類別。
本文將待標(biāo)注動態(tài)角色的標(biāo)注單位與訓(xùn)練集中每一個訓(xùn)練單位中的標(biāo)注單位進(jìn)行相似度計算,并將此相似度值作為訓(xùn)練單位的分值,根據(jù)分值的大小將訓(xùn)練單位按從高到低的順序進(jìn)行排序,從而得到訓(xùn)練單位排序表Score={s1,s2,…,sn},該訓(xùn)練單位排序表為KNN分類算法找到了相似度與待分類樣本數(shù)據(jù)最近的K個鄰居,具體如下所示:
(1)
(2)
本文將KNN分類算法中最近鄰樣本數(shù)據(jù)的獲取轉(zhuǎn)化為訓(xùn)練集中訓(xùn)練單位排序表的生成。KNN分類算法是對最近鄰樣本采用多數(shù)表決投票法來決定待分類樣本的類別,因此最近鄰樣本數(shù)據(jù)選取的好壞即訓(xùn)練單位排序表生成策略制定的優(yōu)劣對分類效果有著重要影響。
下面介紹生成訓(xùn)練單位排序表的三種策略,分別為基于詞語DEF相似度的排序表生成、基于詞向量相似度的排序表生成、訓(xùn)練單位排序表合并。其中,DEF是對詞語概念定義的描述,包含有豐富的義原信息,但脫離了具體上下文語境;而詞向量表示與詞語DEF所隱含的語義信息不同,它更能反映上下文信息、主題信息和詞的功能等,蘊涵了詞語在大規(guī)模數(shù)據(jù)集中的語義信息,詞語之間的語義和句法關(guān)聯(lián)關(guān)系在空間中也得到很好的體現(xiàn)[16]。本文利用DEF及詞向量兩種方法蘊涵語義信息的差異性,提出了一種訓(xùn)練單位排序表合并算法,該算法最大化地發(fā)揮出基于不同詞語語義表示的相似度計算的優(yōu)勢,實現(xiàn)了兩者排序的互補,提高了正確動態(tài)角色關(guān)系類型在候選答案中的排序準(zhǔn)確性。
該算法定義了HowNet義原間的相似度計算公式。通過利用HowNet中DEF項由不同義原構(gòu)成,加權(quán)組合各個部分義原相似度實現(xiàn)了登錄詞的相似度計算。通過對未登錄詞進(jìn)行概念切分和語義自動生成,解決了未登錄詞無法參與語義計算的難題,實現(xiàn)了任意詞語在語義層面上的相似度計算[17]。
(3)
3) 訓(xùn)練單位排序表合并算法。
提出了一種訓(xùn)練單位排序表合并算法。已知基于詞語DEF的相似度計算生成的訓(xùn)練單位排序表ScoreD={d1,d2,…,dm}和基于詞向量的相似度計算生成的訓(xùn)練單位排序表ScoreE={e1,e2,…,em}。首先將表ScoreD中的元素di和表ScoreE中的元素ei依次按照各自所在表中順序各取前n個,然后根據(jù)動態(tài)角色數(shù)量的大小將該2n個訓(xùn)練單位按從高到低的順序進(jìn)行排序,從而得到新的訓(xùn)練單位排序表ScoreC={c1,c2,…,c2n}。在該訓(xùn)練單位排序表合并算法中,未采用對兩種相似度值規(guī)范化線性組合后再排序,原因在于該方法會拉低標(biāo)注單位的相似性。
下面將舉例對該算法進(jìn)行說明與分析。例如,待標(biāo)注動態(tài)角色的標(biāo)注單位為(信號,選擇),該標(biāo)注單位希望從訓(xùn)練集中學(xué)習(xí)到的動態(tài)角色為“content”,動態(tài)角色“content”表示“信號”是“選擇”的內(nèi)容,其訓(xùn)練單位形式表示為:((信號,選擇),content)。由三種策略得到的訓(xùn)練單位排序表部分結(jié)果如圖3、圖4、圖5所示,訓(xùn)練單位排序表合并算法中n取值為5。
圖3 訓(xùn)練單位排序表ScoreD 圖4 訓(xùn)練單位排序表ScoreE
圖5 訓(xùn)練單位排序表ScoreC
可以看出,當(dāng)KNN分類算法中的K取值為9時,基于訓(xùn)練單位排序表ScoreD、ScoreE、ScoreC生成的候選動態(tài)角色集分別為ResultD{RelateTo、content、means}、ResultE{RelateTo、content、scope}、ResultC{content、RelateTo、time},其中候選動態(tài)角色集中包含前三位對應(yīng)排序位置上的動態(tài)角色,并且正確動態(tài)角色“content”在候選動態(tài)角色集ResultC中位列第一,而在候選答案集ResultD、ResultE中都只位列第二。由此可知,基于本文提出的訓(xùn)練單位合并算法生成最近鄰的KNN算法,提高了正確動態(tài)角色在候選答案集中的排序準(zhǔn)確性。
本文實驗從手工構(gòu)建好的航空術(shù)語語義知識庫[7]中抽取出500條航空術(shù)語DEF。人工將每條術(shù)語DEF分解成若干個訓(xùn)練單位以及術(shù)語內(nèi)部詞語DEF,去除重復(fù)的數(shù)據(jù)后,數(shù)據(jù)集最終共有1 587個不同的訓(xùn)練單位,共出現(xiàn)了38種動態(tài)角色,其分布情況如圖6所示。詞向量數(shù)據(jù)來源于騰訊AI實驗室公開的中文詞向量數(shù)據(jù)集[18],包含800多萬個中文詞匯,每個詞對應(yīng)一個200維的向量。本文從中抽取了294 144條數(shù)據(jù)作為基于詞向量的相似度計算的語料。該實驗均基于十折交叉驗證下進(jìn)行。
圖6 數(shù)據(jù)集中動態(tài)角色的分布情況
由于在術(shù)語內(nèi)部動態(tài)角色標(biāo)注中,如果系統(tǒng)只推薦Top1的動態(tài)角色,準(zhǔn)確率會很差,所以在當(dāng)前自然語言處理技術(shù)不夠成熟的情況下,一般先推薦多個動態(tài)角色供用戶參考。在此類問題中,不僅需要考察系統(tǒng)推薦出的動態(tài)角色正確與否,還需要關(guān)注正確答案在系統(tǒng)推薦的多個結(jié)果中所排列的位置。這里隱含了評價術(shù)語內(nèi)部動態(tài)角色輔助標(biāo)注方法的兩個指標(biāo):準(zhǔn)確率P和平均倒數(shù)排名MRR(Mean Reciprocal Rank)。實驗對所推薦動態(tài)角色候選集合進(jìn)行排序,MRR關(guān)心推薦集合內(nèi)準(zhǔn)確答案的位置,MRR值越大說明目標(biāo)動態(tài)角色在推薦結(jié)果集合中的位置越靠前,位置越靠前則表明用戶體驗越好。
(4)
(5)
式中:|Q|是測試集中的樣本個數(shù);ranki表示測試樣本i的動態(tài)角色排名,如果目標(biāo)動態(tài)角色出現(xiàn)在推薦結(jié)果集合中的第二位,則ranki=2。
為了評估本文方法在術(shù)語內(nèi)部動態(tài)角色標(biāo)注中推薦結(jié)果的好壞,在訓(xùn)練集經(jīng)過基于首義原預(yù)選擇的情況下,設(shè)置了排序準(zhǔn)確性實驗、推薦準(zhǔn)確性實驗。為了測試訓(xùn)練樣本預(yù)選擇對KNN算法分類結(jié)果的影響,設(shè)置了樣本預(yù)選擇驗證相關(guān)實驗。該實驗中KNN分類算法的最近鄰生成方法均包括基于DEF相似度計算、基于詞向量相似度計算、訓(xùn)練單位排序表合并算法。
3.3.1排序準(zhǔn)確性實驗
推薦動態(tài)角色數(shù)量為7,K值取1到45,其得到的MRR值如圖7所示。由圖7可知,隨著K值的變化,排序表合并算法、基于DEF生成最近鄰的KNN算法的MRR值較為平穩(wěn),且均在0.72以上;而基于詞向量生成最近鄰的KNN算法在K值小于31時,MRR值也在0.70以上。根據(jù)MRR的計算方法,該實驗結(jié)果說明絕大多數(shù)情況下正確動態(tài)角色關(guān)系類型被排在第一位或第二位,這驗證本文方法排序的有效性,能夠快速選取到正確動態(tài)角色關(guān)系,一定程度上降低了人工選擇難度。當(dāng)K=9時,基于排序表合并算法生成最近鄰的KNN算法的MRR值最高,不同K值下,排序表合并算法始終優(yōu)于其他兩種算法,且本實驗是在十折交叉驗證下進(jìn)行,因此選取K=9為本文實驗中KNN算法的最優(yōu)K值。
圖7 不同K值下的MRR值
3.3.2推薦準(zhǔn)確性實驗
設(shè)定K值為9,推薦動態(tài)角色的數(shù)量取1到15,其得到的平均準(zhǔn)確率如圖8所示。可以看出,隨著推薦動態(tài)角色數(shù)量的增加,三者的平均準(zhǔn)確率都在提高,且當(dāng)推薦的動態(tài)角色數(shù)量大于7時,三者的平均準(zhǔn)確率增長趨勢逐漸趨于平緩。當(dāng)推薦的動態(tài)角色數(shù)量為10時,推薦結(jié)果的準(zhǔn)確性達(dá)95%以上,說明推薦結(jié)果涵蓋正確動態(tài)角色關(guān)系,使得正確動態(tài)角色關(guān)系能被選擇到,從90種動態(tài)角色關(guān)系類型中過濾出10個動態(tài)角色,大大降低了選擇范圍。
圖8 不同推薦動態(tài)角色數(shù)量下的平均準(zhǔn)確率
3.3.3樣本預(yù)選擇驗證實驗
表1列出了K值為9時,基于DEF、基于詞向量、排序表合并算法生成最近鄰的KNN分類算法在訓(xùn)練集基于首義原預(yù)選擇與未預(yù)選擇的對比實驗結(jié)果。以及文獻(xiàn)[9]方法在該數(shù)據(jù)集上的實驗結(jié)果。顯示了每種方法的1-Best、3-Best和7-Best(最有可能成為正確答案的1個、3個和7個候選動態(tài)角色)在測試集上的平均準(zhǔn)確率以及7-Best的平均倒數(shù)排名MRR值。
表1 對比實驗結(jié)果
續(xù)表1
表1中:“M1,M2,M3,M4”(“S1,S2,S3,S4”)是基于最大熵分類方法(基于相似度方法)獲得的動態(tài)角色排序表中的4個不同的動態(tài)角色。按照一定的推薦規(guī)則,類如優(yōu)先級順序為“M1-M2-M3-S1-S2-S3-M4”,將不同的動態(tài)角色添加入動態(tài)角色候選答案集。
從表1可見,本文方法即訓(xùn)練集經(jīng)過基于首義原預(yù)選擇的KNN分類算法的MRR值,均明顯高于文獻(xiàn)[9]方法,其中訓(xùn)練單位排序表合并算法生成最近鄰的KNN算法表現(xiàn)最好,平均準(zhǔn)確率P(1-Best)、P(3-Best)、P(7-Best)分別提高了9.53、3.09和0.18個百分點,平均倒數(shù)排名MRR值提高了0.060 9。
通過表1的實驗結(jié)果可得以下研究結(jié)論:(1) 通過對比訓(xùn)練集預(yù)選擇與未預(yù)選擇的實驗結(jié)果可看出,基于首義原對訓(xùn)練集預(yù)選擇后,評測指標(biāo)均有大幅度提高,這說明利用首義原對訓(xùn)練集預(yù)選擇后再使用KNN分類算法會具有更高的動態(tài)角色標(biāo)注準(zhǔn)確率。(2) 通過對比基于DEF與基于詞向量生成最近鄰KNN算法的實驗結(jié)果可看出,在本實驗中基于DEF生成最近鄰的方法優(yōu)于基于詞向量生成最近鄰的方法,原因在于本文的術(shù)語內(nèi)部語義關(guān)系標(biāo)注是以HowNet為基礎(chǔ)。并且,基于DEF與基于詞向量生成最近鄰KNN算法兩者實驗結(jié)果間的差距在訓(xùn)練集預(yù)選擇后變小,究其原因在于訓(xùn)練集預(yù)選擇階段也利用了DEF項信息。
圖7、圖8和表1的實驗結(jié)果表明,基于訓(xùn)練單位排序表合并算法生成最近鄰的KNN算法明顯優(yōu)于基于詞語DEF、基于詞向量生成最近鄰的KNN算法,充分說明在KNN分類算法的最近鄰樣本數(shù)據(jù)選擇方法中即訓(xùn)練單位排序表生成策略中,訓(xùn)練單位排序表合并要比只用基于詞語DEF相似度的排序表生成或基于詞向量相似度的排序表生成更加適合本文任務(wù)中KNN分類算法最近鄰樣本集的確定。原因在于基于詞語DEF的相似度算法計算出的訓(xùn)練單位其相似性更多地體現(xiàn)在義原信息方面,而基于詞向量的相似度算法計算出的訓(xùn)練單位其相似性相對較多地體現(xiàn)在上下文語法和語義信息方面。本文算法將隱含不同語義信息的相似度算法計算生成的訓(xùn)練單位排序表合并,實現(xiàn)了兩者排序的互補。
本文基于HowNet的理論體系,提出了一種面向領(lǐng)域術(shù)語語義知識庫構(gòu)建任務(wù)的術(shù)語內(nèi)部語義關(guān)系輔助標(biāo)注方法。利用術(shù)語內(nèi)部具有依存關(guān)系的兩詞語的DEF項首義原對訓(xùn)練樣本數(shù)據(jù)進(jìn)行預(yù)選擇,并在最近鄰樣本選擇階段融合了基于DEF的語義相似性及基于詞向量的語境分布相似性,實現(xiàn)了基于KNN分類算法的動態(tài)角色標(biāo)注。實驗結(jié)果表明,該方法可以有效地降低動態(tài)角色關(guān)系類型選擇范圍,提升了標(biāo)注準(zhǔn)確率和效率。
未來可以利用KNN的分類結(jié)果,在動態(tài)角色標(biāo)注中加入主動學(xué)習(xí)[19]技術(shù),使系統(tǒng)選取那些有潛在價值的樣例予以標(biāo)注[20],期望能在較小訓(xùn)練集合的情況下獲得較高的動態(tài)角色推薦準(zhǔn)確率。