郭鴻奇 李國佳
摘 要: 針對詞語向量化表示的問題,根據(jù)詞語詞向量表示的思想以及借助多義詞詞典,在K-means聚類多義詞語上下文表示的基礎上,獲得詞語的多原型向量表示。對句子中的多義詞語,通過計算詞語多原型向量表示與詞語上下文表示的相似度來進行詞義消歧,根據(jù)2個句子集中共有詞語和差異詞語的詞義相似度,給出一種基于詞語多原型向量表示的句子相似度計算方法,實驗結果顯示了該方法的有效性。
關鍵詞: 詞語多原型向量表示;詞義消歧;句子相似度
Abstract:In view of vectorized representation of word according to the idea of Word Embedding as well as the use of external polysemy dictionary on the basis of polysemous words context representation based on K-means clustering algorithm,the paper presents a method for obtaining a word's multi-prototype vector representation. Word sense disambiguation is performed on polysemous words in sentences by calculating the similarity between the word multi-prototype vector representation and the words context representation. According to the semantic similarity of the common words and the difference words in the two sentence sets a sentence similarity computation method based on multi-prototype vector representation is given. The experimental results show the effectiveness of the method.
Key words: multi-prototype vector representation;word sense disambiguation;sentence similarity
引言
詞語是語言的基本組成單元,詞語的向量表示在自然語言處理任務中有著廣泛的應用。詞語詞向量表示(Word Embedding或Word Representation)是基于大語料庫利用詞語的上下文為每一個詞語構建一個向量表示,通常能夠保留詞語的語義和句法的信息。這種詞向量表示能夠作為一個特征或輸入用在信息檢索、文本分類、自動文本摘要等自然語言處理的研究中。
大多數(shù)的詞向量表示方法都使用一個向量表示一個詞語(單向量表示),單向量表示無法有效地傳達多義詞語的不同詞義。針對這個問題,Reisinger等人于2010年[1]提出了一個多原型向量空間模型,其中每個詞語的上下文首先將會聚類為簇,通過對聚類簇內詞語所有的上下文向量表示進行平均生成詞語不同的原型向量。Huang等人則在2012年[2]遵循這一思想,基于神經網絡語言模型,結合詞語全局語義信息利用K-means算法聚類每個詞語的上下文表示,并在語料庫中將每個詞語的出現(xiàn)情況標記為其所關聯(lián)的聚類類別,再訓練獲得詞語的多個詞向量表示。Guo等人又在2014年[3]利用雙語平行語料庫學習生成詞語特定語義的詞向量表示,基于源語言中具有不同意義的同一詞語在外語中應有不同翻譯這一原理,通過聚類詞語翻譯,并映射回原語言語料庫中對應的詞語,訓練獲得一個詞語的情境語義表示。這些基于聚類的模型通過聚類詞語上下文來開展無監(jiān)督的詞義歸納,對原文詞語的上下文直接進行聚類或者利用跨語言知識進行語義映射后聚類,再訓練獲得詞語在不同語境中具體詞義對應的詞向量表示。
同一時期,Chen等人也在2014年[4]提出了聯(lián)合詞義表示和消歧的統(tǒng)一模型,根據(jù)WordNet知識庫對詞語的注釋說明生成詞語的語義向量,對多義詞語進行詞義消歧,修改Skip-gram模型訓練目標來聯(lián)合學習詞語的詞向量和語義向量。繼而,Niu等人更在2017年[5]結合知網將詞語詞義的義原信息融入到詞語表示學習模型中,提升了詞向量的表示能力。這類方法借助外部知識庫(WordNet或HowNet)對詞語不同語義的解釋或描述,來辨析識別多義詞語具體的語義。
為此,本文研究給出了一種基于詞語多原型表示的句子相似度計算方法。根據(jù)詞語詞向量表示的思想以及借助多義詞詞典,基于K-means算法聚類多義詞語上下文表示,訓練獲得詞語多原型向量表示。結合詞語多原型向量表示與詞語上下文表示的相似度來進行語義消歧,獲得句子中每個詞語特定語義的詞向量表示,然后根據(jù)2個句子集中的共有詞語和差異詞語相似度來綜合計算句子相似度。
1 詞語多原型向量表示
1.1 詞語詞向量表示
one-hot representation是一種簡單的詞語詞向量表示。這是把每一個詞語表示為一個長向量,向量的維度等于詞語表的規(guī)模,向量只有一個元素的值為1,這個維度代表當前的詞語。已有研究指出該方法的缺點是向量維數(shù)等于所有詞語的數(shù)目,存在維數(shù)災難問題,也不能刻畫詞語和詞語之間的語義聯(lián)系。
詞語的詞向量表示(word Embedding或word representation)是一種分布式的表示,把每個詞語表示為一個固定長度的低維實數(shù)向量,通?;谏窠浘W絡訓練語言模型訓練海量文本語料集得到詞語詞向量表示,特點是能夠捕捉詞語及其上下文之間的語義關系,相似或者相關的詞語在向量空間距離上也將更為接近。一些經典的訓練獲得詞向量的神經網絡語言模型有:Bengio 的神經網絡語言模型(NNLM)[6]、Collobert等人的SENNA模型(C&W;)[7]、Mnih等人的hierarchical log-bilinear模型(HLBL)[8]、Mikolov 的循環(huán)神經網絡的語言模型(RNNLM)[9],以及廣泛付諸使用的Google公司開發(fā)的CBOW 模型和Skip-gram 模型、斯坦福大學的GloVe模型。本文采用Skip-gram模型訓練獲得詞語詞向量表示。
1.2 詞語多原型向量表示
在語言現(xiàn)象中,同一個詞語符號在不同的上下文語境中可以反映不同的語義,每個詞語只對應一個詞向量不能有效地表示和識別多義詞語。詞語的不同詞義即需對應著不同的詞向量表示,詞語的多原型向量表示對于多義詞語的每個詞義都將對應一個詞向量,故而能提高詞語表示的精確性。
本文根據(jù)多原型向量空間模型的思想以及借助外部知識庫,基于神經網絡語言模型訓練獲得詞語的多原型向量表示,研究過程可分為3個步驟,具體如下:
(1)利用外部知識庫(例如《現(xiàn)代漢語多義詞詞典》、《HowNet》)統(tǒng)計多義詞語及獲得其詞義的個數(shù);
(2)在海量文本語料集中基于K-means算法來聚類多義詞語的上下文窗口表示,并將其關聯(lián)的聚類類別標記為原始文本語料集;
(3)在標記的文本語料集上基于神經網絡語言模型訓練獲得詞語的多原型向量表示。
1.3 基于K-means聚類詞語上下文表示
《現(xiàn)代漢語多義詞詞典》共收錄了現(xiàn)代漢語多義詞8 100條,《HowNet》是一個在應用上較為知名的中文語義資源平臺,對多義詞語有多個概念及義原關系的描述,每個概念表示一種詞義,可以統(tǒng)計獲得每個多義詞的詞義個數(shù)。
多義詞語的上下文窗口,是指多義詞語的上下文中前面和后面k個詞語,k為窗口大小。詞語的上下文窗口表示由詞語上下文中詞語的詞向量進行平均求得,可得其計算公式為:
在時下的各類文本聚類算法中,K-means算法獲得了廣泛使用。對文本語料集中的所有多義詞語,基于K-means算法對多義詞語在原始文本語料集中所有樣本的上下文窗口表示進行聚類,得到K個聚類簇。在文本語料集中按照K個類別對多義詞語添加標記,不同的聚類類別代表多義詞語的不同詞義。在標記的文本語料集上基于神經網絡語言模型訓練詞語詞向量,得到詞語在不同上下文中表達不同詞義的多原型向量表示。
假設多義詞語Wp的詞義個數(shù)為K,基于K-means算法聚類詞語上下文窗口表示的步驟流程可簡述如下:
利用外部知識庫統(tǒng)計獲得的多義詞語的詞義個數(shù),可以作為K-means聚類算法K的初始值,聚類結果數(shù)值K即為多義詞語的詞義個數(shù),不需要事先指定聚類數(shù)目,符合詞語在不同文本上下文中具有多種詞義表示的數(shù)目不能確定的實際情況。
詞語上下文窗口聚類簇中樣本的個數(shù)可以表示詞語一個詞義在統(tǒng)計學中出現(xiàn)的次數(shù),能夠說明實際中最常使用的是哪個特定的詞義。在文本語料集中,按照K個聚類簇中的樣本對多義詞語進行標記。例如多義詞語“算賬”一般包含2個詞義,對文本語料集中詞語“算賬”的所有樣本的上下文窗口表示設計展開K-means聚類,然后在文本語料集中對詞語“算賬”根據(jù)聚類樣本的類別分別標記為“算賬1”、“算賬2”,最后在標記的文本語料集訓練得到“算賬1”、“算賬2”兩個詞義的多原型向量表示。
2 詞義消歧
[JP4]高質量的詞語詞義表示(word sense representation,WSR)能捕獲豐富的語義和句法信息,有助于實現(xiàn)詞義消歧。高質量的詞義消歧能提供可靠的消歧語料,可以更好地學習詞語詞義的表示。對語句中的多義詞語,通過詞義消歧獲得詞語在上下文中特定語義,因而能提升句子的表示效率。研究中,詞義消歧過程可解析分述為3個步驟,內容如下:
(1)識別句子中多義的詞語;
(2)計算多義詞語的上下文窗口表示;
(3)獲得多義詞語在上下文中特定語義的詞向量表示。
基于詞語的語義由其上下文決定的思想,多義詞語在上下文中特定語義,可以通過計算多義詞語的上下文窗口表示和多義詞語的各個詞向量表示間的相似度來獲得,將最大相似度值所對應的詞向量表示作為多義詞語在上下文中特定語義的詞向量表示,研究可得計算方法的數(shù)學公式為:
3 句子相似度
3.1 詞語相似度計算
本文通過2個詞語詞向量的夾角余弦值來度量詞語的相似性,詞語相似度的數(shù)學公式可表述為:
3.2 句子相似度計算
根據(jù)2個句子集中的共有詞語和差異詞語的詞義相似度,給出一種基于詞語多原型向量表示的句子相似度計算方法,計算過程主要可研究分解為如下3個步驟:
(1)對句子進行分詞預處理得到詞語序列;
(2)識別詞語序列中的多義詞語并獲得每個詞語特定語義的詞向量表示;
(3)由給定的句子相似度計算方法進行相似度度量。
4 實驗結果及分析
4.1 實驗數(shù)據(jù)
詞語多原型向量表示實驗中,原始數(shù)據(jù)集為Wiki中文語料(20171103,2.7 G)以及搜狗實驗室2012年搜狐新聞語料(648 M)。對原始語料實現(xiàn)預處理,將繁體轉化為簡體,利用自定義詞典對文本語料集中的常用英文縮寫替換為中文詞語,去除非中文字符和數(shù)字外的其它字符,清洗后得到約15億字。采用jieba分詞進行分詞處理,訓練詞語詞向量的神經網絡語言模型采用word2vec的Skip-gram 模型[10],詞向量維度設定為150維,其他參數(shù)默認設置。多義詞詞典根據(jù)《現(xiàn)代漢語多義詞詞典》統(tǒng)計獲得常用的各多義詞及其詞義個數(shù)。詞語的上下文窗口大小為5。
句子相似度計算實驗,采用400對句子作為測試集,測試句子集來源于北京大學中國語言學中心CCL語料庫。從CCL語料庫中分別檢索多義詞語“壓力”和“蘋果”,在結果中人工選取包含關鍵詞“壓力”和“蘋果”句子各200句,句子長度為包含關鍵詞及前后至少10個詞語的完整句子。含有詞語“壓力”的句子集按照詞義分為3類,含有詞語“蘋果”的句子集按照詞義分為2類。每個詞語的詞義類別經過人工聚類,按照相似程度共得到27個小類別。每個小類別中選取任意一個句子作為基準句子,該類別中其它句子,記為N句,和同一詞語的句子集合中其它小類別的句子一起作為噪音句。
4.2 實驗結果及分析
在實驗數(shù)據(jù)集上基于Skip-Gram模型分別訓練獲得詞語詞向量表示和詞語多原型向量表示。表1給出一些詞語及其具體詞義上最相近的詞語,最相近詞語相似度由公式(3)來指定計算,無標簽的詞語對應詞語詞向量的表示,詞語特定的詞義對應詞語多原型向量表示,例如,“蘋果2”是詞語“蘋果”的第二個詞義。實驗結果顯示詞語的多原型向量表示能夠捕捉詞語的語義信息。
從表1中可以觀察到詞語多原型向量表示的一些區(qū)分詞義的結果:對于多義詞而言,多原型向量表示對應其不同的語義含義。例如,“蘋果1”的詞向量表示與其作為IT公司相對應,“蘋果2”則表示其作為一種水果的意義。
在句子相似度計算實驗中,對每個小類別的句子,按照本文相似度計算方法,計算基準句子和各噪音句子的相似度值,同時依據(jù)順序記錄相似度值最大的前N個句子,計算召回率R(前N個句子與基準句子屬于同一小類的句子個數(shù)的平均值)。句子相似度計算方法則需關注本文3.2節(jié)公式(4),由此可得基于詞語詞向量與基于詞語多原型向量表示的句子相似度計算結果可見表2。
從表2中可以看出,基于詞語多原型向量表示句子相似度計算結果在整體上要優(yōu)于詞語詞向量方法的運算求解。由于多原型向量表示在一定程度上區(qū)分詞語在上下文中不同詞義,能夠更加集中優(yōu)質地保留詞義信息。根據(jù)詞語的多原型向量表示對句子中多義詞語進行消歧,提高了詞語在上下文中詞義表示的精確性,句子相似度計算結果也將更加有效。
5 結束語
本文通過探討詞語詞向量表示的思想以及借助多義詞詞典,同時結合K-means聚類算法,并基于Skip-gram模型來研究獲得了詞語多原型向量表示,其中每個詞語的詞義對應一個向量表示。對句子中的多義詞語進行詞義消歧,獲得多義詞語在上下文中特定語義,最后根據(jù)句子集中的共有詞語和差異詞語的詞義相似度,來綜合衡量句子相似度。實驗結果表明,詞語多原型向量表示能夠捕捉詞語的語義信息,基于詞語多原型向量表示在句子相似度計算上性能要優(yōu)于詞語單一的詞向量表示。試下,依然存在亟待進一步研究的問題主要有:語料庫的規(guī)模和領域影響詞向量表示的精度,基于詞典統(tǒng)計多義詞詞義的數(shù)量未能臻至準確,融合句子其它特征綜合計算句子相似度。
參考文獻
[1] REISINGER J MOONEY R J. Multi-prototype vector-space models of word meaning[C]// Proceedings of the 11th Annual Conference of the North American Chapter of the Association for Computational Linguistics (NAACL-2010). Los Angeles:ACL 2010:109-117.
[2] HUANG E H SOCHER R MANNING C D et al. Improving word representations via global context and multiple word prototypes[C]//Meeting of the Association for Computational Linguistics. Jeju Island:ACM,2012:873-882.
[3] GUO Jiang CHE Wanxiang WANG Haifeng et al. Learning sense-specific word embeddings by exploiting bilingual resources[C]//Proceedings of COLING. Dublin:ACL,2014:497-507.
[4] CHEN Xinxiong LIU Zhiyuan SUN Maosong. A unified model for word sense representation and disambiguation[C]//Conference on Empirical Methods in Natural Language Processing. Doha:ACL 2014:1025-1035.
[5] NIU Yilin XIE Ruobing LIU Zhiyuan et al. Improved word representation learning with sememes[C]//Meeting of the Association for Computational Linguistics. Vancouver:ACL,2017:2049-2058.
[6] BENGIO Y DUCHARME R VINCENT P et al. A neural probabilistic language model[J]. Journal of Machine Learning Research,2003,3(6) :1137-1155.
[7] COLLOBERT R WESTON J BOTTOU L et al. Natural language processing (almost) from scratch[J]. Journal of Machine Learning Research 2011(12):2493-2537.
[8] MNIH A HINTON G E. A scalable hierarchical distributed language model[C] // Proceedings of NIPS. Vancouver:NIPS,2008:1081-1088.
[9] MIKOLOV T KARAFIT M BURGET L et al. Recurrent neural network based language model[C] // Interspeech 2010. Makuhari:ISCA 2010:1045-1048.
[10]曾琦,周剛,蘭明敬,等. 一種多義詞詞向量計算方法[J]. 小型微型計算機系統(tǒng),2016,37(7):1417-1421.