黨帥兵,李國臣,2,王瑞波,李濟洪
(1.山西大學 計算機與信息技術學院,山西 太原030006;2.太原工業(yè)學院 計算機工程系,山西 太原030008;3.山西大學軟件學院,山西 太原030006)
自然語言中廣泛存在著一詞多義現象,比如“打醬油”中“打”是購買的意思,而在“打毛衣”中“打”是織的意思.這種現象對于自然語言處理中的語義分析有著至關重要的影響.作為語義分析中的中間環(huán)節(jié),框架排歧是給定句子中的目標詞,計算機自動識別出其所屬框架,從而消除這種歧義現象.由于框架排歧研究起步較晚,目前大多數的研究工作[1-4]都是將其看作分類問題,通過人工設定特征模板來選取大量的詞、基本塊、句法標記等標記特征.這些標記特征主要存在兩方面的問題.首先,每種特征的特征標記集合較大,從而導致最終的特征矩陣維度較高且非常稀疏;其次,特征標記之間被認為相互獨立,沒有任何關聯(lián).這顯然是不對的,例如,詞語“中國”和“美國”都是描述國家的名詞,在語義上有很強的相關性.但在上述的標記特征集合中,這兩個詞被分別對待.針對這兩方面問題,我們認為,在構建框架排歧模型時,應該構建維度較低的特征空間,并且在特征空間中,可以很好地勾連出特征之間的語義關系.因此,本文摒棄傳統(tǒng)的標記特征,通過使用神經網絡模型來預先學習出詞語的低維、實值的分布表示信息,并把它們作為特征加入到最大熵[5]模型中.本文抽取出漢語框架網(Chinese FrameNet,簡稱CFN)中88個可以激起兩個以上框架的詞元中的2 077條句子作為語料來構造框架排歧實驗.最終,使用詞分布表征的框架消歧精確率(Accuracy)達到58.11%,比使用詞特征時高出近11個百分點.
在建立框架排歧模型時,特征的選取是至關重要的.本文僅采用了詞語特征.但在表示詞語特征時,傳統(tǒng)0-1表示方法是將模型的每條訓練樣例表示成一個很長的0-1向量.該向量中,不同的維度對應著不同的詞語特征.如果某個詞語特征在當前的訓練樣例中出現,則在相應的位置使用1表示,否則為0.這種表示方法存在兩個嚴重的問題:①詞與詞被孤立地看成向量中兩個不同的維度,它們之間的語義并沒有得到體現;②每個樣例的特征描述會隨著詞特征集合的增大而增大,從而導致特征集合稀疏且高維[6].本文摒棄了常用的0-1表示方法,轉而采用詞語的低維實值的分布表征.
簡單來說,詞分布表征就是用低維的實數向量來表示所有詞語.例如,“打”這個詞語可以被表示為:[-0.153 23,0.793 14,…,1.759 32].學習詞語分布表征的主要手段就是將低維實值的詞表示矩陣作為參數矩陣引入到不同的神經網絡模型中,并在大規(guī)模語料上通過無監(jiān)督學習來優(yōu)化這些參數,從而將大規(guī)模語料中詞語的語義信息隱式地編碼到這些參數中.目前比較流行的詞分布 表 征 學 習 方 法 有C&W[7],Word2Vec[8-10],RNNLM[11]和Glove[12].
本文使用C&W 方法[7]基于山西大學CFN 語料來學習詞分布表征,并將其應用到最大熵模型中來進行漢語框架排歧研究.表1給出了使用夾角余弦求相似度的算法,基于C&W 訓練方法迭代10億次得到的詞分布表征,抽取出的“中國”、“我”、“肝臟”、“蘋果”和“一”,五個詞的近鄰詞.
表1 近鄰詞抽取Tab.1 Neighbor word extraction
漢語框架排歧任務是給定一條漢語句子、句中的目標詞以及目標詞的所屬框架列表,要求計算機能夠基于上下文信息,從該框架列表中,為該目標詞自動地標注一個適合的框架.其形式化描述如下:
給定目標詞wt,其可以激起的框架集合記為F={f1,f2,…,fm},該目標詞的上下文信息記為C,那么,框架排歧的任務為尋找唯一的f∈F,使其滿足
基于漢語框架排歧任務的形式化描述,本文將該任務看作分類問題來解決,采用最大熵思想來構建分類模型.由于本文的主要意圖在于研究詞分布表征對于漢語框架排歧任務的影響,在特征提取時,僅將詞對應的分布表征作為特征加入到最大熵模型中去.
實驗中,用Y 表示當前目標詞所能激起的框架集合,用X 表示當前目標詞所對應的上下文信息的集合,模型的目標是:給定上下文x∈X,計算出y∈Y 的條件概率p(y|x).最大熵的思想就是從滿足條件的模型中選擇最為均勻的模型.對于條件概率p(y|x),其均勻性可以用條件熵來度量,其定義為
則最大熵的形式化表示為
采用拉格朗日乘數法來求解最大熵,其公式為式中:f(x,y)是表示x 和y 存在某種關系的特征函數,是個二值函數;λi是特征fi所對應的權重參數,也稱為拉格朗日算子;Z(x)是歸一化因子,其公式為
本文在利用最大熵算法建模時,其輸入是從人工標注的訓練語料中抽取到的訓練樣本集合{(x1,y1),(x2,y2),…,(xn,yn)}.其中,(xi,yi)表示上下文信息xi所對應的框架為yi.本文僅使用詞特征時的xi表示目標詞前后固定窗口的詞序列,使用詞分布表示實驗時,xi是固定窗口內的詞對應的分布表征拉直后構成的多維的特征向量.具體實例如下:
例句:公元前12世紀末、11世紀 初 產生 了猶太教.
其中,目標詞“產生”能夠激起“使形成”、“形成”、“因果”和“創(chuàng)造”四個框架,本例句中,與之匹配的框架是“創(chuàng)造”框架.本文的窗口設定為[-2,2],詞分布表征的維數為100.則僅使用詞特征時的xi為[世紀,初,產生,了,猶太教],yi為“創(chuàng)造”.使用詞分布表征實驗時xi為[f1∶-0.102 59,f2∶0.489 02,…,f500∶0.553 91],
fi表示特征名,其所對應的特征值是由詞序列中各個詞的分布表征提供.
模型的訓練過程其實是對于權重λ 的參數估計過程.由于語料規(guī)模較小,為了防止在訓練時模型對于數據的過度擬合,本文在模型訓練時引入了均值為0、方差為C 的高斯懲罰.實驗時通過調節(jié)高斯參數C 來得到最優(yōu)模型.圖1 為本文漢語框架排歧實驗的具體流程.
圖1 漢語框架排歧流程圖Fig.1 Flow chart of Chinese frame disambiguation
受有實驗語料所限,為了保證模型的穩(wěn)定性,本文采用3-fold交叉驗證,因此系統(tǒng)在抽取3 次訓練集和測試集后將結束.在利用詞分布表征來提取上下文信息時,本文分別使用了4種方法:
1)直接將[-2,2]窗口內的詞對應的分布表征作為特征值加入到最大熵模型中;
2)將目標詞所在的句子中的所有詞依次替換為分布表征后,經過遞歸卷積運算得到的100維的實值向量作為特征值加入到最大熵模型中,卷積公式為
式中:n表示當前卷積層的節(jié)點個數,這種遞歸卷積方法的圖示化表示如圖2 所示.
圖2 遞歸卷積運算示意圖Fig.2 Recursive convolution operation schematic
圖2 中最下層是句子中的詞序列,通過查找小節(jié)1中已經訓練好的詞分布表征將詞序列中詞轉換為各自對應的詞分布表征.然后通過遞歸卷積運算最后得到一個100維度的實值向量,即圖2中的最頂層.
3)首先將目標詞所在句子中的所有詞賦予權重,然后采用方法2對其進行卷積運算,同樣得到一個100維的實值向量,并將其作為特征值加入到最大熵模型中.賦權重的方法具體是:將目標詞與句子兩端的最遠距離加1作為目標詞的權重,目標詞左右兩邊的詞隨著離目標詞距離增大權重依次減1.比如例句“公元前12 世紀末、11世紀初 產生 了 猶太教.”的目標詞“產生”與句子左端“公元前”的距離最遠,其值是7,則目標詞“產生”的權重為8,整個句子中所有詞的權重為:1,2,3,4,5,6,7,8,7,6,5.
4)首先去除目標詞所在句子中的停用詞,然后采用方法三對其進行加權、卷積處理,最后同樣得到一個100維的實值向量作為特征值加入到最大熵模型中.
本文在三折交叉驗證試驗下,全部目標詞的框架分類精確率(Accuracy)計算公式如下
式中:n是所選用詞元總數(本文n=88);Nij是目標詞ti的第j 份交叉驗證實驗中測試例句的個數;cij是目標詞ti的第j 份交叉驗證實驗中框架分類正確的測試例句個數.
實驗采用mallet工具包中的最大熵模型作為分類器,所用語料來自山西大學CFN 語料庫.訓練詞分布表征時輸入序列長度為5,即當前詞和與它相鄰的前后各兩個詞.在預處理時,將語料中所有外文字母換成“WORD”,所有阿拉伯數字替換為“NUMBER”,抽取該訓練預料中詞頻數大于1的詞構成詞表,對于其他詞用“UNKNOWN”字符表示,人為設定詞向量的維度為100.訓練時,在不斷的迭代優(yōu)化過程中,詞分布表征中某些維數的值會不斷增大.為了避免其對最大熵模型的影響,將得到的詞分布表征進行規(guī)范化[13],其形式化描述為
式中:E 表示詞表中所用詞分布表征構成的矩陣;σ是常數因子;stddev(E)表示矩陣E 的標準差.
本文所用語料是從漢語框架語義知識庫中抽取出的可以激起兩個以上框架的88 個詞元中的2 077條句子,并按照詞元所述框架將所有句子均勻切分為3份.實驗時,任選其中2份做訓練集,另外1份做測試集,進行三折交叉驗證,使用開窗口技術時,窗口大小為[-2,2].
經統(tǒng)計發(fā)現,本文所用的所有方法得到最好結果時的Gauss平滑參數都在1,2,…5之內.為了簡便,本文只列出Gauss平滑參數在1,2,…5之內的實驗結果.表2 給出了僅使用詞特征的實驗結果.
表2 使用詞特征的實驗結果Tab.2 The results of using the word feature
從表2 可以看出,僅使用開窗口的詞特征時,模型最好的實驗結果僅為47.47%.參考文獻[3],本文將該實驗作為基準實驗.
表3 給出了Gauss平滑參數為1時,采用方法1,在規(guī)范化常數因子分別為1,0.1,0.01,0.001 的實驗結果.
表3 不同迭代次在不同常數因子下的實驗結果Tab.3 The results based on different iterations and constant factors
分析表3,可以發(fā)現,在常數因子為0.01時,使用迭代7千萬次的詞分布表征得到了最高的實驗結果.此時結果要比僅使用詞特征(47.47%)時高出將近11個百分點,這說明使用詞分布表征比使用詞特征在進行框架排歧研究時更有優(yōu)勢.后續(xù)都基于迭代7千萬次的詞分布表征,規(guī)范化常數因子為0.01時進行實驗.
表4 給出的是上下文信息提取是采用方法2的實驗結果.從表4 可以看出,當以句子中所有詞分布表征卷積后的特征表示作為特征時,模型的性能與只使用詞分布表征作為特征時相比,結果并無差異.究其原因,可以認為這種簡單的卷積運算并沒用很好地利用整個句子中的語義和句法信息.
表4 基于方法2的實驗結果Tab.4 The results based on the second method
表5 是采用方法3來對目標詞的上下文信息進行提取,并將得到的實值向量作為特征值加入到最大熵模型進行漢語框架排歧的實驗結果.
表5 基于方法3的實驗結果Tab.5 The results based on the third method
從表5 可以看出,將整個句子中所有詞分布表征經過加權、卷積處理后作為特征時可以達到58.11%的準確率.與僅使用詞分布表征作為特征相比,有一定的提高.
表6 給出了采用方法4,去掉句子中停用詞后作為特征值的實驗結果.表6 中可以看出,其最好的實驗結果也僅為54.31%.在使用詞分布表征進行框架排歧實驗時,停用詞不能忽略.
表6 基于方法4的實驗結果Tab.6 The results based on the fourth method
由表3~表6 可以看出,使用詞分布表征來進行框架排歧實驗最高可以達到58.11%的準確率,其與表2中僅使用詞特征時(47.47%)的結果相比有大幅度提高,但與文獻[6]中實驗結果(69.64%)相比仍有些差距.究其原因,是由于模型沒有使用詞性、句法等重要的特征信息,而如何獲取這些特征的分布表征是下一步要研究的內容.
本文將漢語框架排歧任務看作分類問題,使用最大熵對其進行建模,首次將由神經語言模型學習到的詞的分布表征應用到了框架排歧研究中,提供了一種新的研究思路.最終,得到了58.11%的精確率.
在下一步的研究中,首要工作是將由Word2Vec、RNNLM 和Glove等多種方法得到的詞分布表征應用到漢語框架排歧中,并對這些分布表征進行比較與分析;其次,要研究學習到其他示性特征(比如詞性、依存關系等)分布表征的方法,并將學習到的分布表征應用到框架排歧以及自然語言處理的其它子任務中.
[1]Ken Litkowski.CLP:Integration of frame net in a text representation system[C].Proceedings of the 4th International Workshop on Semantic Evaluations,2007:113-116.
[2]Cosmin Adrian Bejan,Hathaway Chris.UTD-SRL:a pipeline architecture for extracting frame semantic structures[C].Proceedings of the 4th International Workshop on Semantic Evaluations,2007:460-463.
[3]李濟洪,高亞慧,王瑞波,等.漢語框架自動識別中的歧義消解[J].中文信息學報,2011,25(3):38-44.Li Jihong,Gao Yahui,Wang Ruibo,et al.Frame disambiguation in automatic identification of Chinese frame[J].Journal of Chinese Information Processing,2011,25(3):38-44.(in Chinese)
[4]李國臣,張立凡,李茹,等.基于詞元語義特征的漢語框架排歧研究[J].中文信息學報,2013,27(4):44-51.Li Guocheng,Zhang Lifan,Li Ru,et al.Chinese frame disambiguation based on the semantic feature of lexical units[J].Journal of Chinese Inforamtion Processing,2013,27(4):44-51.(in Chinese)
[5]Berger A L,Pietra V J,Pietra S A.A maximum entropy approach to natural language processing[J].Computational Linguistic,1996,22(1):39-71.
[6]Bengio Y,Ducharme R,Vincent P,et al.A neural probabilistic language model[J].Journal of Machine Learning Research(JMLR),2003(3):1137-1155.
[7]Collobert R,Weston J,Bottou L,et al.Natural language processing(almost)from scratch[J].Journal of Machine Learning Research (JMLR),2011(12):2493-2537.
[8]Mikolov T,Chen K,Corrado G,et al.Efficient Estimation of Word Representations in Vector Space[DB].arXiv preprint arXiv,2013:1301-3781.
[9]Mikolov T,Sutskever I,Chen K,et al.Distributed representations of words and phrases and their compositi-onality[DB].arXiv preprint arXiv,2013:1310-4546.
[10]Mikolov T,Yih W,Zweig G.Linguistic Regularities in Continuous Space Word Representations[C].In NAACL-HLT-2013,2013.
[11]Mikolov T,Karfiat M,Burget L,et al.Recurrent neural network based language model[C].In INTERSPEECH,2010:26-30.
[12]Pennington J,Socher R,Manning C D.GloVe:Global Vectors for Word Representation[C].In EMNLP2014,2014.
[13]Joseph T,Ratinov L,Bengio Y.Word representations:a simple and general method for semi-supervised learning[C].Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics(ACL),2010.