?

單詞語義相似性計算綜述

2020-02-18 15:16楊曉燕
計算機工程與應用 2020年4期
關鍵詞:相似性語料詞典

徐 戈,楊曉燕,汪 濤

閩江學院 計算機與控制工程學院,福州350108

1 引言

自然語言(中文、英文等)中的單詞之間有著各種各樣的語義關系。其中,單詞的語義相似關系是非常重要的一種。通常,單詞的語義是否相似主要的判斷標準是待考察的兩個單詞是否可以相互替換。在自然語言處理領域,語義相似性的概念要更加廣泛一些。除了同義詞、近義詞、上下位關系等,語義的相關性(如醫生、病人),語義蘊含(如打鼾、睡覺),甚至部分與整體(如汽車、輪胎)也有可能被視為具有一定程度的語義相似性。

單詞的語義相似性計算是指人們使用各種語言資源,通過計算機按照某種計算方法,用數值來度量兩個單詞間的語義相似程度。本文的目的就是針對這些相似性計算方法,通過對各種方法的概括介紹,了解其本質特征、優缺點、適用場景以及發展的必然性。

傳統上,單詞語義相似性的計算方法主要有兩類:一類是基于知識的方法;另一類是基于語料的方法。隨著兩類方法的發展,互相融合是一個必然的選擇。近些年,研究人員開始關注單詞內部,利用詞根詞綴、字符串、部首甚至筆畫等信息提升單詞語義相似性的計算性能。

單詞的語義相似性計算在自然語言處理中是基礎性工作。由于單詞在語言結構中處于較為底層的位置,通常人們先研究單詞相似性計算,進而推廣到句子、段落乃至整篇文章。

單詞的語義相似性計算在自然語言處理中能夠支撐各種類型的任務。比如,在機器翻譯中,單詞的相似性計算可以用于提升翻譯質量。在信息檢索中,單詞的相似性計算可以反映出檢索結果與檢索詞的匹配程度。在自動問答中,單詞的相似性計算可以支撐問句的匹配,命中正確的問答對。在文本分類、聚類中,單詞的相似性計算可以優化文本的聚集,從而產生更好的分類、聚類效果。

本文大致按照方法類型以及時間順序兩個維度,對已有的單詞語義相似性計算方法進行介紹。

2 基于知識的方法

2.1 基于詞典的方法

最典型的知識就是各種語義詞典,如WordNet(http://wordnet.princeton.edu/)、知網(HowNet,http://www.keenage.com/)、同義詞詞林(http://ir.hit.edu.cn/demo/ltp/Sharing_Plan.htm)等。人們利用詞典中單詞之間的關系,量化它們的語義距離,從而給出語義相似性。

2.1.1 英文詞典

Rada等[1]提出利用WordNet中概念間的語義距離來計算概念間單詞的語義相似性。Resnik等[2]在Rada方法的基礎上,綜合考慮概念共有祖先所擁有的信息量,提出了改進算法。Wu和Palmer[3]則采用WordNet的上下位關系,利用概念及其最近鄰共有祖先的深度計算語義相似性。Jiang和Conrath[4]通過度量概念及其最近鄰共有祖先的信息量計算概念相似性。Lin[5]也利用了概念信息量,但與Jiang和Conrath所提方法的區別是使用了不同的概念相似性計算公式。類似的工作還有Lord等[6]提出的方法。通常,該類方法主要利用詞典中的語義相似和上下位關系,因此更多的是用來計算語義相似性。Yang和Powers[7]提出了一種基于本體中關系邊數的語義相似性算法,使用了部分與整體的關系。

2.1.2 中文詞典

在中文方面,劉群與李素建[8]提出了一種基于知網(HowNet)語義相似性的計算方法,假定整體的相似性等于部分相似性的加權平均,對兩個義原的相似性,根據上下位關系得到語義距離并轉換成相似性。夏天[9]提出了通過概念切分解決知網中未登錄詞的語義相似性計算。田久樂與趙蔚[10]為解決詞語在語義網自適應學習系統中相似性計算不清的問題,以同義詞詞林為基礎,充分分析并利用了同義詞詞林的編碼及結構特點,同時考慮了詞語的相似性,提出相關算法。

2.1.3 基于屬性

有一類基于詞典的方法可以被稱為基于屬性的方法。Tversky[11]提出的方法是其中的典型代表。該方法沒有考慮概念的語義關系,而是利用相應本體的屬性集信息來計算兩個概念之間的語義關系。Banerjee和Pedersen[12]提出了基于詞典中注釋(gloss)的方法,其思想是概念相似性通過兩個概念在本體中的注釋重疊程度來獲得。通過在注釋集合中提取共同屬性或判斷屬性的相似程度來判斷兩個概念的語義相似程度,也屬于基于屬性的方法。類似的工作還包括文獻[13-14]。傳統的基于詞條編纂的詞典,也常采用這種方法提供相似性的計算。

2.2 基于百科類知識的方法

隨著互聯網的不斷發展,出現了各種百科類的知識庫,其中以Wikipedia為代表。與WordNet比較,Wikipedia覆蓋的范圍更加廣泛,知識描述更加全面,信息內容更新速度更加迅速。Wikipedia中對詞條進行解釋,并對相關的詞條給出鏈接關系,這相當于提供了高質量的語義關系標注語料。Strube和Ponzetto[15]提出了名叫WikiRelate的方法,該方法利用Wikipedia的文檔內容與結構代替WordNet的概念層次結構,進行語義相似性的計算。Gabrilovich和Markovitch[16]提出了類似于信息檢索中向量空間模型的ESA(Explicit Semantic Analysis)方法,以Wikipedia中的所有文檔為向量元素構造詞匯的屬性向量,通過比較詞匯向量之間的相似性來判斷詞匯的相似性。Milne[17]提出了一種只利用Wikipedia文檔之間的鏈接信息,基于向量模型計算語義相似性的方法。在中文方面,詹志建等[18]提出了一種新的基于百度百科的詞語相似性計算方法,通過分析百度百科詞條信息,從表征詞條的解釋內容方面綜合分析詞條相似性,并定義了詞條間的相似性計算公式,通過計算部分之間的相似性得到整體的相似性。

2.3 基于知識方法的小結

除了以上工作,還有許多有意義的探索,它們采用了各種各樣的語言知識資源。比如,Eger和Sejane[19]利用雙語詞典進行相似性計算;張瑾等[20]結合《中圖法》內容和結構體系,利用語義邏輯關系等手段進行語義相似性計算。其他基于知識的單詞語義相似性計算工作不再贅述。

基于知識的方法的關鍵在于從知識庫所描述的關系和屬性中推導出單詞之間的語義相似性,這會導致一些嚴重的問題:首先,現有的知識庫大都是將“單詞”作為最小的描述單元,而單詞又是開放的,總會有大量的單詞無法收入知識庫,這些未收錄的“未知”詞便成為相似計算的障礙。其次,人們在設計知識庫時,不一定很好地考慮詞與詞之間的相似性計算問題,即使有考慮,實際構建時也難以把控。比如,在WordNet中,有些分支的層次非常密集(粒度細),有些分支相對稀疏(粒度大),如果按照統一的度量標準,就會出現偏差。

3 基于語料庫的方法

該類方法認為,人們能夠不依賴語言知識,直接從語料中挖掘出單詞的語義相似性。

3.1 基于共現的方法

有一類工作是基于單詞和單詞的共現(不考慮詞序)的頻率統計,主要用來計算單詞的相關性。這類方法往往可以直接使用搜索引擎,將其看成是海量語料,返回兩個單詞共現的頻率。Turney[21]提出了基于搜索引擎返回的搜索頁面數,利用點互信息計算語義相似性的方法,該方法要求待計算語義相似性的兩個單詞出現在大小為10的窗口內。Higgins[22]提出的方法的基本思路與Turney[21]相似,也采用Alta Vista搜索引擎,但是該方法限制單詞的共現必須是單詞相鄰,減少了噪聲的干擾,代價是降低了方法的適用性。Bollegala等[23]提出Web-PMI(Pointwise Mutual Information)算法,除了利用搜索引擎返回搜索頁面的個數外,該方法還從返回的文本片段中提取句法模式來計算詞語的相似性,使得相似性的計算質量大大提升。Cilibrasi和Vitanyi[24]則利用Google搜索引擎進行單詞語義相似性的計算。

Deerwester等[25]提出的隱性語義索引(Latent Semantic Indexing,LSI)不僅可以用于文檔的相似性計算,也可以對單詞的語義相似性進行計算。LSI中降維后的語義空間就是之后流行的主題模型(Topic Model)中主題概念的雛形。LSI之后的PLSI(Probabilistic Latent Semantic Indexing)模型[26]將LSI進行概率化,隨后出現了LDA(Latent Dirichlet Allocation)模型[27],至此主題模型形成,并引出了一系列的相關工作。

3.2 基于上下文的方法

與前面基于單詞共現的方法不同,基于上下文的方法,假設相似的單詞具有相似的上下文[28-29]。該類方法的基本思路是為單詞構建特征向量,特征則從上下文(可以是經過句法分析的結果)中抽取,將計算單詞語義相似性轉換成計算兩個特征向量的距離。

Salton和Buckley[30]將特征向量中的元素進行TFIDF(Term Frequency-Inverse Document Frequency)修正;Lee[31]采用相關熵模型進行計算,Lin[32]采用句法分析后的共現特征來構造單詞的表示向量,再使用基于信息理論的模型進行相似性計算。Lin[33]基于一個6.4億詞的英文語料進行依存句法分析,將上下文語境表示成有依存關系的三元組,而后基于互信息提出一種算法來計算詞語之間的相似性。Dagan等[34]提出概率模型來計算單詞間的語義相似性,用一個詞周圍的相似詞來表達該單詞。Curran[35]將多種上下文表征方式進行混合,包括句法分析、窗口特征,實驗結果表明,集成方法顯著優于單個方法。Weeds等[36]基于BNC語料,采用9種相似性算法,所得相似性結果差別很大,因而指出面對不同任務時應選擇合適的計算方法。Hagiwara等[37]深入研究基于上下文方法中特征的選擇,選取依存關系、窗口詞語、句子共現三類特征。依存關系特征和窗口詞語特征效果優于句子共現特征,三者的結合超越任何單一的特征。Geffet和Dagan[38]采用自舉的方法來計算特征的權值,認為相似詞共有的特征是那個意義最好的表征,其權值應該被加大。石靜等[39]對上下文特征的選擇、相似性的計算公式、特征的權重方案等做了對比研究,結果顯示用PMI來進行特征權重設置能夠取得較好效果。類似的工作還有許多,不再贅述。

3.3 基于向量嵌入的方法

隨著大規模語料和以深度學習為代表的計算方法的出現,在單詞語義相似性計算領域,基于上下文的特征向量構造方法逐漸被單詞的向量嵌入方法所取代,成為基于大規模語料方法的主流。

單詞的向量嵌入,把單詞表達成一個固定長度的向量,該長度可取幾百,遠遠小于語料的單詞空間規模。把單詞表達成固定向量后,就可以采用簡單的向量距離來求出單詞的語義相似性。該方法與之前介紹的LSI、PLSI、LDA等方法有相似之處,都是對大規模語料訓練出單詞的低維向量表達,區別在于使用的信息不同,訓練的方法也不同。比如,LDA采用的是單詞共現信息,Word2Vec側重上下文信息,LDA的訓練通常采用Gibbs采樣算法,而Word2Vec是基于神經網絡的參數學習。

Bengio等[40]提出了神經網絡概率語言模型(Neural Network Language Model,NNLM),加入隱層使得神經網絡可表達的函數空間變大,可使用樹狀加速方法加速,但隱層的加入使得參數變多,訓練效率一般。Mikolov等[41]發布了他們在Google Search的研究工作Word2Vec,引起了工業界和學術界的廣泛關注。該模型計算簡單,并在一些有趣的任務上取得了很好效果,比如單詞類比任務(Tokyo vs.Japan=?vs.France)。Word2Vec中有兩種上下文設置模式Skip-Gram和CBow,前者傾向于語義相似性,而后者傾向于語義相關性。Levy與Goldberg[42]提出,Word2Vec中基于負采樣的Skip-Gram模型,是隱含的word-context矩陣的分解,矩陣中的元素是單詞和上下文對(pair)的互信息,僅差一個全局常量。Pennington等[43]提出了GloVe模型,融合LSA等算法思想,利用全局的單詞共現提升單詞向量的學習效果。Santus等[44]提出了基于排序的相似性度量,相比基于向量余弦的計算方法,該方法在異常點監測任務上表現更優秀。最近幾年,Word2Vec相關的單詞向量嵌入工作成為研究熱點。

3.4 基于語料方法的缺點

基于語料的方法通過單詞所在上下文的統計信息來表示該詞,這存在兩個問題:首先,大量的詞具有多義性,而多義詞的每一次具體出現究竟呈現什么義項并不容易判斷。其次,語料庫方法的核心思想是統計,當統計量不夠時,就會出現偏差,即便在大數據時代容易獲得大量的文本數據,對很多詞也難以保證足夠的統計量。

4 基于融合的方法

人們一直在嘗試將基于知識的方法和基于語料的方法進行融合。Li等[45]研究了基于多個信息源的單詞語義相似性計算,其中包括語義詞典的結構化語義關系和語料庫。該方法將單詞在樹中最短路徑和密度信息非線性融合來計算單詞語義相似性,結果優于傳統方法。Agirre等[46]對基于WordNet的方法和基于分布式的單詞相似性計算進行分析,找出各自的優缺點,并給出了組合方案。Rothe與Schütze[47]提出了一種不同的思路:不是從語料中做向量嵌入,而是用已有的語義相似關系對同義詞集(Synset)和單詞進行向量嵌入。這些研究對詞之間的相似性計算起到了很好的作用,彼此之間也有一定的補充,但還遠遠不夠。Zhang等[48]提出了使用知網(HowNet)和搜索引擎來共同計算單詞語義相似性;Zhou等[49]提出使用無標注語料和詞表來對多義詞的語義相似性進行計算;Sugathadasa等[50]提出了利用Word2Vec和詞表來提升特定領域的單詞語義相似性計算性能;Pawar等[51]提出了使用詞表數據庫和語料的方法來計算單詞和句子的相似性,在Pearson相關系數上表現良好。

以上介紹的兩類方法以及兩者的融合,都可以看作利用了單詞的外部信息。對于詞典而言,傳統詞典利用詞條之間關系(通過屬性或者注解),本體詞典利用單詞的上下位、相似、相反、整體部分關系,同義詞詞典利用單詞之間的相似性和層次關系。對于語料而言,則是單詞共現關系,若考慮詞序就是上下文關系。這些工作的本質就是如何把外部關系轉換成語義相似性。

5 單詞語義相似性計算的新趨勢

單詞的語義相似性研究在自然語言處理領域一直受到關注,但是絕大部分的工作集中在使用外部信息(語料中的共現、詞典的語義關系等)來計算單詞的語義相似性。

5.1 傳統主流方法的不足之處

Wu等[52]在NLPCC-ICCPOL2016發布的單詞語義相似性計算評測中(總共500對單詞),排名靠前的幾支隊伍都采用了基于語料分布或詞典的方法。然而,對其中典型方法進行實驗的結果表明,這些方法仍然存在許多問題。

對于基于詞典的方法,在500對單詞中,知網(HowNet)有118對未覆蓋,同義詞詞林有46對未覆蓋。這反映出該類方法受未登錄詞的影響較大,如“驢友”“備胎”“閨蜜”等未收錄。此外,相似性不夠穩定,有時過高,有時過低。相似性計算公式依賴人的主觀經驗。

對于基于語料的方法(Word2Vec模型,2G語料,最低頻率5),有12對沒有覆蓋。相比基于詞典的方法,說明了基于語料的方法能夠捕捉更多的單詞。當然,該方法也存在一些問題:(1)頻率低于5的詞無法進行相似性計算。(2)頻率超過5的低頻詞若無法獲得充分的上下文,也會出現計算結果不準確。(3)超高頻詞語義分散(多義性)較為嚴重。

基于詞典的方法,由于單詞覆蓋率較低且得分波動較大,其總體性能已經落后Word2Vec(2G語料)較多。對于Word2Vec方法,它會忽略低于預設頻率的單詞,無法獲得其向量表示,也就無法進行相似性計算。即便是高于預設頻率的單詞,也存在著計算不夠合理的地方。

在NLPCC-ICCPOL2016單詞相似性評測任務發布的500對單詞中,有一些單詞對(Word Pair)通過Word2Vec方法計算出來的相似性與參考答案差異較大,表1列出了其中一些例子。Word1、Word2、Freq1和Freq2分別表示第一個單詞、第二個單詞、第一個單詞在語料中頻率、第二個單詞在語料中頻率。

表1 與參考答案差異較大的單詞對

如果考慮漢字等內部信息,可以對表1中的一些問題進行修正甚至解決。以表1中的“拖后腿”和“拉后腿”為例,考慮“拖后腿”與“拉后腿”都是動賓結構,且賓語相同,由于“拖”與“拉”語義相似,則能推出“拖后腿”與“拉后腿”具有較強語義相似性?!案叻濉焙汀吧綆p”計算語義相似性時,前者為“形容詞”+“名詞”的偏正結構,后者為“名詞”+“名詞”的偏正結構。因此語義的重心應該是“峰”和“巔”,而“巔峰”中兩個漢字具有語義相似性,從而最終能推出“高峰”和“山巔”具有較高語義相似性。表1中其他帶*號的行,或多或少都能通過單詞的內部結構解析和漢字的語義相似性進行修正。這說明,使用單詞內部信息的確可以作為一種補充,提高單詞語義相似性計算的質量。

5.2 利用單詞內部信息的語義相似性計算

近幾年來,已出現了利用單詞內部信息輔助進行單詞相似性計算的工作。比如,一些研究者使用漢字甚至部首來輔助中文單詞的向量嵌入,以提高語義相似性計算的質量。對于英文單詞的向量嵌入,詞根詞綴、字符序列等都被用于提高單詞語義相似性計算的準確度。

Jin等[53]提出了利用共同的漢字個數,或者共同的部首個數進行兩個單詞相似性的修正。Chen等[54]提出了同時對中文單詞和漢字進行向量嵌入,考慮了基于位置和基于聚類的兩種漢字嵌入方式。Sun等[55]用部首來提升漢字的向量嵌入質量,不過其中并未對部首進行細分??紤]到同一個部首的漢字集存在較大差異,該方法仍然可能引入一定的噪聲。Hang等[56]和Tao等[57]提出了使用漢字筆畫,甚至象形文字信息對中文進行向量嵌入。

Botha等[58]提出了一個將詞根詞綴等成分集成到基于向量的概率語言模型中。Bojanowski等[59]提出了著名的fastText模型。對于單詞的向量嵌入,該模型考慮所有該單詞的ngram字符序列。以單詞“where”為例,n=3的情況下,其子串分別為,模型對這些子串分別進行向量嵌入,然后再與“where”單詞本身的向量嵌入進行加權平均,得到“where”單詞最終的向量嵌入。

除了英語和漢語,其他語言利用單詞內部信息提升性能的工作也已經出現。比如Lankinen等[60]針對芬蘭語,利用單詞中的字符串作為輸入和輸出來對單詞進行向量嵌入。Ajees等[61]利用類似的單詞內部信息提升印度語的單詞語義相似性計算性能。

當然,使用單詞內部信息提升單詞語義相似性計算性能也存在著一些問題,比如對單詞內部結構沒有進行深入分析,內部成分(漢字串、字符串、筆畫串等)向量嵌入時噪聲較大。相關的工作還有文獻[62-63]。

6 結束語

單詞的語義相似性計算在自然語言處理領域有著廣泛的應用。例如,在信息檢索中,要通過“電腦”查到“計算機”和“筆記本”,就要有這些詞之間的語義相似性作為基礎;在問答系統中,需要匹配用戶所提的問題與系統中存儲的問題,句子相似性計算的基礎就是詞匯間的相似性。

然而,目前無論是基于知識的方法,還是基于語料庫的方法,都存在很多問題,尤其是覆蓋性問題。近幾年,越來越多的研究工作從單詞的內部著手,利用單詞的內部結構,嘗試從細粒度到粗粒度的語義推導,最終計算出單詞間的語義相似性。

從單詞語義相似性計算的發展來看,基于知識的方法和基于語料的方法幾乎交織在一起。經歷了多年的同步發展,兩類方法的融合也是必經階段。近些年,研究者從單詞外部信息轉向單詞內部信息,如何更有效利用單詞內部信息以及如何將內外信息共同用于單詞語義相似性計算是大勢所趨。

猜你喜歡
相似性語料詞典
一類上三角算子矩陣的相似性與酉相似性
基于歸一化點向互信息的低資源平行語料過濾方法*
淺析當代中西方繪畫的相似性
米蘭·昆德拉的A-Z詞典(節選)
米沃什詞典
詞典引發的政治辯論由來已久 精讀
低滲透黏土中氯離子彌散作用離心模擬相似性
《苗防備覽》中的湘西語料
國內外語用學實證研究比較:語料類型與收集方法
漫畫詞典
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合