穆玲玲, 程曉煜, 昝紅英, 韓英杰
(鄭州大學 信息工程學院 河南 鄭州 450001)
詞義消歧是自然語言處理中的基礎任務之一,用于確定目標詞在特定上下文語境的詞義[1],是信息抽取、機器翻譯和閱讀理解等任務的基礎。詞義消歧主要有3種方法:基于知識庫的方法、有監(jiān)督方法和無監(jiān)督方法。其中有監(jiān)督詞義消歧通常使用傳統(tǒng)機器學習模型實現(xiàn),如支持向量機[2]、最大熵[3]和貝葉斯分類器[4]等,其準確率高于另外2種方法。
目前在有監(jiān)督詞義消歧任務中大量使用了神經(jīng)網(wǎng)絡模型[5],并取得了優(yōu)于傳統(tǒng)統(tǒng)計模型的結果。例如,文獻[6-7]分別使用雙向長短時記憶網(wǎng)絡和多任務學習方法成功實現(xiàn)了詞義消歧。基于神經(jīng)網(wǎng)絡的詞義消歧方法雖然取得了較好的效果,但其存在以下兩個問題:① 需要大規(guī)模的標注語料,否則將導致神經(jīng)網(wǎng)絡模型準確率下降。② 沒有使用相關的語言知識,忽略了語言學家已建立的豐富資源。有研究表明,在神經(jīng)網(wǎng)絡中融合語言知識有助于提高模型的有效性,可以在保證準確率的前提下,降低模型訓練對大規(guī)模標注語料的需求。文獻[8]在循環(huán)神經(jīng)網(wǎng)絡中使用外部語言知識,提高了機器閱讀的準確率。文獻[9]在神經(jīng)網(wǎng)絡中使用了WordNet的釋義信息,利用記憶網(wǎng)絡[10-12]建模目標詞上下文和釋義的內(nèi)在聯(lián)系,在英文數(shù)據(jù)集上取得了非常高的準確率。文獻[13-14]分別利用釋義和WordNet[15]中的語義增強了詞義向量的表示,并將其作為SVM分類器的特征,使得詞義消歧的準確率提高了1%以上。文獻[16]將WordNet的詞根向量化后與GloVe詞向量拼接,作為雙向長短時記憶網(wǎng)絡的輸入用于詞義消歧。上述研究均是針對英文詞義消歧,而中文的神經(jīng)網(wǎng)絡詞義消歧中融合語言知識的研究文獻尚未被發(fā)現(xiàn)。本文在文獻[9]基礎上,利用外部記憶機制將目標詞的釋義和例句信息融入神經(jīng)網(wǎng)絡詞義消歧模型中,通過注意力機制構建目標詞的上下文與由釋義和例句表示的詞義之間的語義關系。在SemEval-2007中英文詞義消歧數(shù)據(jù)集上的實驗結果顯示,本文模型的宏平均準確率和微平均準確率均比基線模型有所提高。
通過雙向長短時記憶網(wǎng)絡[17]分別實現(xiàn)目標詞的上下文表示和目標詞的詞義表示,目標詞詞義由釋義+例句聯(lián)合表示,通過注意力機制構建目標詞的上下文與詞義之間的語義關系。
融合釋義、例句信息的詞義消歧模型如圖1所示,該模型包括上下文表示模塊、詞義表示模塊、記憶模塊和打分模塊4個部分。
圖1 融合釋義、例句信息的詞義消歧模型Figure 1 A word sense disambiguation model leveraging glosses and example sentences
記憶模塊用于建模目標詞的上下文向量與詞義表示向量的語義關系,提取與上下文相關的詞義信息,詞義表示由釋義、例句聯(lián)合向量表示。該模塊的輸入為目標詞的上下文向量c及其詞義向量集合{g_s1,g_s2,…,g_sN}(N為目標詞的詞義個數(shù)),包括注意力計算和記憶向量更新2個部分,注意力計算建模上下文向量c與詞義向量g_s之間的語義信息。為了提高模型對釋義、例句以及上下文語義的理解,記憶模塊采用多輪注意力計算。在每輪計算后,根據(jù)當前計算結果更新記憶向量。
(1)
式中:mk-1是第k-1輪的記憶向量,初始記憶向量m0使用上下文向量c。第一輪計算中,注意力反映的是詞義向量和上下文向量的相似度,在以后每一輪的計算中,注意力反映的是詞義向量與上一輪記憶向量的相似度。
為了突出正確詞義,在每一輪的注意力計算時都加入詞義向量。通過計算詞義向量的加權累加和來保存記憶狀態(tài)uk,可以表示為
(2)
根據(jù)上一輪的記憶向量mk-1、上下文向量c以及記憶狀態(tài)uk,采用文獻[10]和文獻[13]中效果最好的方法更新記憶向量mk,可以表示為
mk=Relu(W[mk-1:uk:c]+b),
(3)
其中“:”為拼接操作。
打分模塊根據(jù)記憶模塊和上下文表示模塊的輸出,計算目標詞各個詞義的分布概率。目標詞w的第i個詞義的分數(shù)由記憶模塊最后一輪的注意力確定,可以表示為
(4)
上下文分數(shù)由上下文向量經(jīng)過全連接層得到,可以表示為
scorec=Wwc+bw,
(5)
式中:Ww和bw是全連接層的權重矩陣和偏置向量。對于每個目標詞wt,都有其對應的權重和偏置。
(6)
實驗使用的數(shù)據(jù)集是SemEval-2007 中英文詞義消歧數(shù)據(jù)集[18],該數(shù)據(jù)集包含2 686條訓練語料和935條測試語料,40個用于詞義消歧的目標詞中包括21個動詞和19個名詞,平均每個目標詞有3個詞義。SemEval-2007中文消歧語料的詞義來自《漢語語義詞典》(CSD)[19]。CSD是北京大學構建的語義詞典,其中的“釋義”字段為該詞語的解釋,“備注”字段為用法示例,“word”字段為對應的英文單詞或短語。SemEval-2007中詞義描述為英文,并且和CSD中的“word”字段對應。本文以“word”字段為詞義對齊標記,將CSD中的“釋義”和“備注”字段分別作為詞義的解釋和例句。對于CSD中缺失的釋義和例句,根據(jù)《現(xiàn)代漢語詞典》(DCC)[20]進行補充和完善。補充的釋義和例句,使用中科院分詞系統(tǒng)NLPIR(https:∥github.com/NLPIR-team/NLPIR)進行分詞。
為了驗證本文模型的效果,以雙向長短時記憶網(wǎng)絡(Bi-LSTM)為基線模型,對本文模型進行了消融實驗,評價指標使用微平均準確率和宏平均準確率[18]。實驗中選用文獻[21]訓練的300維詞向量,在模型訓練中隨著模型迭代更新詞向量。
本文模型以詞語作為基本單位,在上下文表示模塊中,以目標詞為中心,前后窗口分別設置為30個單位;在詞義表示模塊中,釋義+例句的詞語長度設置為40個單位。長短時記憶網(wǎng)絡設置為1層,包括300個隱藏單元,損失函數(shù)為交叉熵。
學習參數(shù)設置如下:Batch size為100,droupout為0.5,迭代次數(shù)為100,學習率為0.001,學習方法為Momentum。
Bi-LSTM模型將目標詞的上下文作為輸入,利用Bi-LSTM+釋義、Bi-LSTM+例句、Bi-LSTM+釋義+例句方法分別表示Bi-LSTM模型中融合目標詞釋義、例句以及釋義+例句信息。不同方法的實驗結果如表1所示。從表1可以看出,本文提出的方法準確率最高。融合語言知識的神經(jīng)網(wǎng)絡模型比僅使用上下文信息的神經(jīng)網(wǎng)絡方法在微平均準確率和宏平均準確率方面均有超過1%的提高。單獨使用例句比單獨使用釋義在兩種準確率上均有提高,說明例句的作用比釋義更大。
對本文方法和基線方法的消歧結果進行成對樣本t檢驗,P值為0.013,說明本文方法與基線方法的消歧結果存在顯著差異。
表1 不同方法的實驗結果Table 1 Results of different methods
Bi-LSTM方法與本文方法對每個目標詞的消歧準確率對比結果表明,本文提出的消歧模型提高了40%目標詞(16/40)的準確率,40%目標詞(16/40)的準確率沒有變化,20%目標詞(8/40)的準確率有所下降??梢?,本文方法對大多數(shù)目標詞的消歧結果有正面的影響。
表2 列舉了詞義消歧準確率提升或下降幅度較大的目標詞。從表2可以看出,Bi-LSTM模型融合釋義和例句對名詞、動詞的詞義消歧準確率均有影響。
本文的模型更容易識別出用釋義和例句表示的詞義與目標詞上下文的語義相似度,從而提高了模型的準確率。例如,目標詞“叫”在語料中的詞義分別為“ask”“name”“call”和“cry”,其對應的釋義分別為“使;讓,命令”、“稱為;是”、“招呼,呼喚;雇”和“人或動物的發(fā)音器官發(fā)出較大的聲音”,對應的例句分別為“~他早點回家/~人操心”、“~他老李/他沒~過你/這~聰明/這~莽撞不~勇敢”、“有人~你/~他去睡午覺/你~老何/車子~了”和“~下去/小鳥~著/小雞會~了/~壞了嗓子可不好”。在例句“去了三天,蚊香廠卻停機三天,叫廠里開機一試,卻說機器壞了,所以無法檢驗”中,Bi-LSTM模型將“叫”的詞義錯誤地識別為“name”,而本文模型則正確地識別出其詞義為“ask”,這是由于本文方法識別出詞義“ask”的釋義和例句與該句中目標詞的上下文有更高的語義相似度。
表2 消歧準確率提升或下降幅度較大的目標詞Table 2 Target words with higher disambiguation accuracy increase or decrease
外部信息的加入也降低了一些動詞和名詞的消歧準確率,造成這種情況的主要原因是例句和釋義的不完善降低了模型理解詞義的能力。例如目標詞“出”共有8個詞義,其中4個詞義缺少例句。目標詞“動搖”的第2個詞義的釋義用其自身解釋為“使動搖”,語義信息不明顯。這種例句和釋義的不完善使模型不能很好地發(fā)現(xiàn)釋義和例句與目標詞上下文的關系。
對比了記憶模塊中注意力計算輪次對消歧準確率的影響,結果如表3所示。從表3可以看出,在3種語言知識添加的方法中,隨著注意力計算輪次的增加,準確率大都有所提升。這是因為隨著注意力計算輪次的增加,模型提高了正確詞義的注意力。當更新輪次達到3次時,3種語言知識添加的方法大都取得了最高的準確率;隨后消歧準確率有所下降,說明多輪注意力雖然能更好地反映目標詞上下文與其用釋義和例句表達的詞義之間的語義關系,但是計算輪次并不是越高越好,需要通過實驗確定。
表3 注意力計算輪次對消歧準確率的影響Table 3 The effect of attention calculation rounds on disambiguation accuracy
本文在神經(jīng)網(wǎng)絡中文詞義消歧模型中融合了釋義和例句信息,實驗結果表明,相對于僅利用上下文信息的神經(jīng)網(wǎng)絡方法,本文模型的宏平均準確率和微平均準確率均提高了約2%,說明在知識指導下的神經(jīng)網(wǎng)絡模型在詞義消歧任務中有明顯的作用。下一階段的工作主要包括以下3個方面:第一,利用搜索引擎和已標注的詞義語料庫[22]擴充例句來提高模型的準確率。第二,改善知識融合方法。本文只是將目標詞釋義和例句進行簡單的拼接,后續(xù)的工作可以嘗試將釋義和例句進行多種方式的結合,把更多的外部知識以及上下文的詞性、句法等特征加入到神經(jīng)網(wǎng)絡詞義消歧中。第三,完善語言資源的建設。雖然融入語言知識提高了詞義消歧的準確率,但是如何解決未登錄詞以及語言知識不完備的問題還需要進一步的研究。