詞嵌入方法在眾多自然語言處理任務中得到了廣泛的應用。然而,詞嵌入方法將多義詞合并為單一表示,因此并不精確。為了更好地區分同一單詞的不同含義,人們轉而提出了含義嵌入(sense embeddings)??ǖ戏虼髮W的Jose Camacho-Collados和劍橋大學的Mohammad Taher Pilehvar最近發表了論文(arXiv:1805.04032v2),概覽了含義向量表示的主要方法。
意義合并缺陷
詞嵌入方法的主要缺陷是無法很好地處理多義詞。由于在詞嵌入方法中,每個單詞表示為語義空間中的一個向量,因此它將多義詞的不同義項合并為單一表示,這就導致了意義合并缺陷(meaning conflation deficiency):
詞嵌入無法有效捕捉同一單詞的不同義項,即使這些義項都在訓練語料中出現過。
語義上無關的單詞,被多義詞拉扯到一起(見下圖)。
合并缺陷違反了歐幾里得空間的三角不等性,削弱了單詞空間模型的有效性。
語義上無關的rabbit(兔)和computer(計算機)因mouse(老鼠/鼠標)牽扯到一起
因此,人們開始尋找直接建模詞義的方法。最早的建模方法,依賴于人工編制的意義清單(例如WordNet)。近年來,通過分析文本語料推導詞義差別的無監督表示模型漸漸流行。下面我們將分別介紹這兩種范式。
基于知識的語義表示
這一范式利用外部資源中的知識建模語義。首先,我們將概覽主要的外部資源。接著,我們將簡要介紹一些使用外部資源改進詞向量的方法。最后我們重點介紹構建基于知識的含義表示的方法。
知識資源
WordNet是NLP和語義表示學習中使用最為廣泛的資源之一。WordNet可以看成一個語義網絡。其中的節點為synset(同義詞集),例如,表示“脊柱”這一概念的synset包括spinal column、vertebral column、spine、backbone、back、rachis六個詞匯。synset之間的聯系(例如上位關系和部分整體關系)則為節點的邊。Open Multilingual Wordnet等項目則致力于將WordNet擴展到其他語言。
Wikipedia(維基百科)是最著名的協同構建資源。它是世界上最大的多語言百科,支持超過250種語言。而且,它還在持續更新之中,例如,英語維基百科每天新增將近750篇新文章。另外,Wikimedia基金會還運營Wikidata項目,一個面向文檔的語義數據庫,為維基百科和其他wikimedia項目提供共享數據。類似的項目有DBpedia,致力于結構化維基百科的內容。
BabelNet將WordNet連接到包括維基百科在內的協作構建的資源。BabelNet的結構和WordNet類似,只不過synset包含多個語種。synset間的聯系來自WordNet及其他資源(例如維基百科的超鏈接和Wikidata)。
ConceptNet結合了WordNet、Wiktionary、DBpedia等資源的語義信息。和WordNet、BabelNet不同,ConceptNet的主要語義單元是詞匯而不是synset。
PPDB(Paraphrase Database)基于圖結構,以詞組為節點,以詞組間的相互關系為邊。
知識增強詞向量方法
知識增強詞表示(knowledge-enhanced word representation)利用知識資源改進現有的詞向量表示,加上文本語料中未包含的信息。
知識增強詞表示,主要有兩種思路,一為修改模型的目標函數,以便在學習過程中納入知識資源的信息,一為在后處理階段改進預訓練的詞嵌入。
后者通常稱為retrofitting(改裝)。其直覺為,在詞向量空間中,移動知識資源中聯系密切的單詞對應的向量表示,使其更為接近。retrofitting模型的主要目標函數為最小化下式:
上式中,|V|表示詞匯量,N是給定的語義網絡(知識資源),語義網絡的形式為單詞對的集合,wi和wj為預訓練模型的詞嵌入,戴帽wi為輸出詞嵌入,αi、βi,j為可調整的控制系數。
基于知識的含義表示
基于知識的含義表示(knowledge-based sense representations)的基本思路是利用知識資源的信息拆分(de-conflating)詞表示為含義表示。
知識資源的信息主要有兩種表示形式,文本定義和語義網絡。
在很多方法中,文本定義作為初始化含義表示的主要信號使用。例如,根據文本定義,對含義相近的預訓練詞嵌入取均值,作為初始化含義嵌入(Chen等,2014,A Unified Model for Word Sense Representation and Disambiguation)。再如,基于文本定義,利用卷積神經網絡架構初始化含義嵌入(aclweb/P15-2003)。
和之前知識增強詞向量方法類似,基于語義網絡,通過修改目標函數或后處理詞嵌入,可以從詞嵌入拆分出含義嵌入。
digit既可以指手指(digit#hand),也可以指數字(digit#number)
前者的例子有Mancini等在2016年底的工作(arXiv:1612.02703),修改了Word2Vec的目標函數,在同一向量空間中同時學習詞嵌入和含義嵌入。
后者的例子包括:
Jauhar等在2015年對retrofitting方法的擴展(Ontologically Grounded Multi-sense Representation Learning for Semantic Vector Space Models)
Johansson和Pina在2015年提出,后處理預訓練詞嵌入可以看起一個優化問題:多義詞嵌入可以分解為其含義嵌入的組合,同時含義嵌入應該靠近其語義網絡中的鄰居。(aclweb/N15-1164)他們使用了SALDO語義網絡(一個瑞典語語義網絡),不過他們的方法可以直接擴展到其他語義網絡。
Rothe和Schütze在2015年提出的AutoExtend,一個自動編碼器架構,該架構主要基于以下兩個限制:詞向量對應于其含義向量之和,synset向量對應于其詞匯/含義之和。例如,詞向量digit對應于digit(手指)和digit(數字)兩個含義向量之和,synset向量“預訂”對應于含義向量reserve、hold、book之和。即:
其中,s表示含義,w表示詞,y表示synset。
無監督含義表示
基于知識的含義表示依賴人工編制的意義清單,因此在某些場景下受到限制,例如,語料缺乏相應的外部知識資源。近年來,隨著算力的提升和機器學習技術的發展,無監督含義表示漸漸流行。
無監督含義表示方法的核心是詞義推導,也就是基于文本語料自動識別單詞的可能含義。其背后的直覺為,既然我們可以通過上下文學習單詞的表示,那么我們同樣可以通過上下文學習單詞的不同含義。
這一方向早期的工作是雙階段模型(two-stage model),即首先推導出含義,然后學習其表示。
雙階段模型
這方面的先鋒之一是Schütze在1998提出的上下文分組識別(context-group discrimination)。其基本的思路是,聚類多義詞出現的上下文,然后基于上下文相似性自動推斷其含義。(aclweb/J98-1004)
后續這個方向的研究大多沿襲Schütze這一工作的思路,只不過改變了上下文表示形式和聚類算法(Schütze使用了最大期望算法)。
2010年,Reisinger和Moone直接聚類上下文,也就是將上下文表示為一元語法的特征向量,而不是詞向量,大大降低了計算負擔,使這一基于聚類的方法能夠用于較大的語料。另外,他們還使用了movMF聚類算法,這是一種和k-均值類似的算法,不過它允許使用聚類特定的聚集參數控制語義的廣度,以更好地建模聚類尺寸的偏斜分布。(dl.acm/1858012)
類似地,Huang等在2012年改進了基于聚類的含義表示技術,通過idf加權平均詞向量得到上下文向量,并使用球形k均值聚類。然后根據聚類標注單詞的用例,并基于此學習含義表示。(aclweb/P12-1092)
雙階段模型的問題在于,聚類和含義表示學習均基于上下文,這兩者有潛在的相似性,分兩個階段單獨進行浪費了這一潛在的相似性,也浪費了算力。因此,最近的研究大部分轉向了聯合訓練(joint training),即同時進行推斷和表示學習。
聯合模型
Neelakantan等在2014年提出了MSSG(Multiple-Sense Skip-Gram)模型,擴展了Skip-gram嵌入模型。和前面提到的工作類似,MSSG也通過聚類形成單詞的含義表示。不過,聚類和含義表示學習是同時進行的。在訓練階段,每個單詞的預期含義是動態選擇的,選擇和上下文最接近的含義。與此同時,Tian等在2014年提出了一個基于Skip-gram的含義表示技術,將Skip-gram模型中的詞嵌入替換為有限混合模型,其中每個模型對應單詞的一個原型(prototype)。(aclweb/C14-1016)
Yang Liu等主張上面的技術在推斷含義表示時僅僅使用了單詞的局部上下文,因此是有局限的。為了應對這一問題,他們在2015年提出了TWE模型(Topical Word Embeddings)。其中,每個單詞在不同主題下可能有不同的詞嵌入,主題則通過基于全局計算的潛主題建模。Pengfei Liu等提出的NTSG模型( Neural Tensor Skip-gram)應用了同樣的想法,只不過引入了張量以更好地學習單詞和主題之間的關系。Nguyen等在2017年提出了TWE的一個擴展,MSWE模型,TWE在給定上下文中會選取最合適的含義,而MSWE則使用權重混合表示給定上下文中單詞和不同含義的關聯程度。
出于實現的簡單性,聯合模型往往假定每個單詞有固定數目的含義(使用啟發式算法猜測數目)。然而這一假定和實際情況并不相符,單詞的含義數量可能差別很大。雖然在WordNet 3.0中,大約80%的單詞為單義詞,不到5%的單詞有3個以上含義。然而,如果我們重點關注常用詞,則情況大不相同。常用詞大都是多義詞,而且其含義數量分布比較分散。
SemCor數據集中常用詞的含義數量分布
之前提到的MSSG模型考慮了這一點,使用的是一種實時非參數聚類算法,對某個單詞而言,僅僅在與現有含義的相似性低于某個閾值時才創建新含義。Bartunov等在2015年提出的AdaGram模型(Adaptive Skip-gram,自適應Skip-gram模型),則基于非參數貝葉斯方法實現了動態多義(dynamic polysemy)。
另外,以上的聯合模型都有一個缺陷,推斷含義所用的上下文仍然為可能有歧義的詞向量,而不是含義向量。換句話說,這些聯合模型都不是純粹的基于含義的模型。
有鑒于此,Qiu等在2016年提出了一個純含義模型(aclweb/D16-1018),同時,這一模型也將去歧義上下文從之前的小窗口擴展至整個句子。Lee和Chen在2017年提出的MUSE模型則是另一個Skip-gram的純含義擴展,MUSE使用了強化學習方法。
多語語料
由于歧義通常并不跨語言,比如中文分別使用“老鼠”和“鼠標”,沒有英文中mouse的歧義問題。因此我們可以利用多語語料對單詞的翻譯進行聚類,然后基于翻譯聚類構建含義嵌入表示。這一方法在機器翻譯(Machine Translation)領域尤為常用。
與下游應用的集成
文本的表示通常只是第一步,要完成NLP任務,通常還需要后續處理。目前而言,詞嵌入可以很方便地集成到下游應用中,而含義嵌入在這方面還處于嬰兒期。
Pilehvar等在2017年的研究(aclweb/E17-2062)表明,當輸入文本足夠龐大的時候,基于知識的含義嵌入能夠提升文本分類的效果,但在大多數數據集上,使用預訓練的含義嵌入相比詞嵌入,表現沒有明顯的提升。
2015年,Li和Jurafsky提出了一個框架(arXiv:1506.01070),可以將無監督含義嵌入集成到多項自然語言處理任務中。然而,他們發現無監督含義嵌入并沒有顯著優勢,增加詞嵌入的維度可以取得相近的效果。
2018年,Peters等提出了學習深度雙向語言模型(LSTM)的內部狀態所得的詞向量。(arXiv:1802.05365)他們發現,這一上下文詞表示(contextualized word representations)可以很容易地加入現有的模型,并顯著提升問答(question answering)、文本蘊涵(textual entailment)、情感分析(sentiment analysis)等6個NLP問題上當前最先進模型的表現。
黃色表示上下文敏感嵌入,灰色表示上下文無關嵌入
和(上下文無關)詞嵌入不同,上下文詞表示是動態的,其表示因所出現的上下文環境的不同而不同。上下文詞表示的直覺是,語言模型單元隱式地根據上下文區分了多義詞的具體含義。
結語
本文概覽了直接基于文本語料推斷含義(無監督)及使用外部含義清單(基于知識)的含義表示模型。其中一些模型已經在實踐中取得了不錯的效果,但含義表示模型仍有很大的提升空間。例如,大部分模型只在英語語料上測試過,只有少數模型涉及英語以外的語料。再如,含義表示模型集成到下游應用的最佳策略尚不明確,同時預先去歧義是否必要也不確定。
含義的定義和正確的范式仍然是一個開放問題。含義需要是離散的嗎?含義需要依賴知識資源或含義清單嗎?含義可以根據上下文動態學習嗎?這些問題仍有待探索。
-
神經網絡
+關注
關注
42文章
4771瀏覽量
100715 -
函數
+關注
關注
3文章
4327瀏覽量
62573 -
自然語言
+關注
關注
1文章
287瀏覽量
13346
原文標題:從詞嵌入到含義嵌入:概覽含義向量表示方法
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論