武林高手常常從山川之間頓悟,並由山川之形變化出上乘武藝。風雲之間的飄渺互動,實則也爲實打實的科學、工程實踐提供了指引。風是客觀存在的,而只有籍由雲,咱們才能觀察到它。在技術領域的平常工做中,諸如此類的例子數不勝數。而在天然語言語義的研究中,先驅者們把這個道理總結成了一條假設——上下文假設[i]:php
「實體的含義,以及實體之間語法關係的含義和這些實體與其餘實體之間組合方式的限制有關。」詞語做爲抽象的符號,自己沒有含義。詞語在字典中羅列出來的「詞義」,乃是它在不一樣的上下文語境中,對總體語義所作貢獻的總結。在這裏,詞義是風,而語境爲雲。所以,在研究詞語語義的時候,實際上便是要弄清楚在人們在描述客觀事物、表達本身的想法的時候,是如何使用某個詞語的:在哪使用,在何時使用,和哪些詞一塊兒使用。也就是說,若是人們要進行有意義的交流,那麼在討論、描述某個事物的時候,除事物自己之外,須另外附加上某個語境,經過事物和語境中其餘元素的互動,來表達事先設定的語義[1]。算法
進一步地,若是兩個詞所指代的事物在語義上是相近的,那麼在人們使用它們的時候,極可能傾向於在相似的語境中引用他們。識別兩個詞在語義上是否相近對多種天然語言實踐任務都是有幫助的,例如本體知識庫構建、語言模型構建、詞義排歧、查詢推薦、機器翻譯等等。ide
那麼,如何籍由語境來衡量一個詞(所指代事物)的語義,及其和其餘詞(事物)之間的互動呢?語境的「相似」依靠什麼來衡量呢?在衡量過程當中,是否會遇到一些特殊狀況須要處理?假使咱們設計了一個統一的語境類似度衡量標準,僅靠通常意義上的語境又是否足夠呢?要回答這些問題,用寥寥數頁的文字自是遠遠不夠。不過,筆者但願經過討論下述三個問題,管中窺豹,見語義,及語義類似度計算之一斑。post
問題1:如何定義語境?如何衡量兩個語境是否相似?
問題2:若是一個詞可以指代多個事物,如何區分對應的不一樣語境?
問題3:兩個事物之間幾乎不共享語境元素,是否表明它們沒有關係?ui
這三個問題是以其開放程度排序的。對於第一個問題,咱們能夠說的細一些,由於研究的歷史長了,它已經幾乎成爲了一個封閉的問題。而對後兩個問題,目前仍舊是研究熱點,這裏只能簡單介紹有限幾種思路,在開放的問題中,仍是每一個人本身的思考最重要。spa
1.1 向量空間模型prototype
從工程的角度來看,詞語的所處語境能夠用其周邊上下文中的其餘詞,以及與這些詞之間的語義關係來表示。一種直觀的實踐是將上述詞語和/或語義關係用向量加以表示,而全部此類向量,則張成一個向量空間。這裏舉一個僅考慮上下文詞的例子(已分好詞):翻譯
武林高手1常常2從3山川4之間5頓悟6,並7由8山川之形9變化10出11上乘12武藝13。設計
上下文的選取是要考慮範圍的,離目標詞太遠的詞,就能夠忽略不計了。若是咱們考慮「山川」的上下文,且忽略距離「山川」2個詞以上的詞,那麼「山川」的上下文就能夠用下屬向量表示:rest
(0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0)
這表明「山川」和詞二、三、五、6分別共同出現一次,而和其他詞共同出現0次。通常地,向量中的第i個份量,對應着字典中的第i個詞。在這個例子裏面,咱們只有13個詞,所以咱們的字典規模僅爲13,字典的順序剛好是上面這句話的詞語順序,而上下文向量也只有13個份量。在真正的工程中,字典規模則是上百萬的。
在數十年的研究歷程中,固然存在着更加複雜的上下文表達方式,例如考慮使用,如tf-idf[ii],互信息[iii]等種種更有說服力的指標來代替共現頻率;又如將詞二、三、五、6和「山川」之間的語義關係考慮在內,將附加了不一樣語義關係的同一個詞看做不一樣的詞[iv]……幸運的是,不一樣的上下文表達萬變不離其宗,都脫不出用周邊語境元素表達語義,「雲動見風」的範疇。使用上面的簡單例子,已經足夠咱們進行下面的討論了。
1.2 基本語義類似度計算
咱們已經瞭解到,一個詞能夠用其所處語境來描述其語義,而語境又可經過向量空間來形式化。咱們假設經過統計,發現一個詞u在不一樣的地方出現過n次,進而造成了n個上下向量U1…Un,那麼咱們就能夠用集合Su={U1…Un}來表示w的語境。
如今,咱們又發現詞v的語境能夠用集合Sv={V1…Vm}來表示,那麼接下來,如何判斷u和v在語境上,進而在語義上是否類似呢?
在這個問題上,咱們面臨着兩種選擇,對應着對向量空間的兩種不一樣的理解:
a) 歐氏向量空間
在歐氏向量空間裏,向量被解釋爲一組座標,標定了空間中的一個點,而向量自己,就是從空間原點指向該點的向量。
在這種設定之下,語義的類似度,亦即向量之間的類似度大多具備幾何意義。例如餘弦類似度:
以及歐氏距離:
其中N爲字典規模。事實上,餘弦類似度衡量的是兩個向量的夾角,夾角越小,方向就越一致,類似度就越高;歐氏距離衡量的是兩個向量終點的距離,距離越近,類似度越高。
b) 機率向量空間
在機率向量空間裏,向量被解釋爲一個機率分佈,描述了一個詞以多大的機率與另外一個詞共同出現。
在這種設定之下,通常採用機率分佈之間的差別性來衡量向量類似度。例如:K-L距離:
以及其對稱平滑版本——Jensen-Shannon距離:
有了距離度量,還剩下另一個問題:咱們用了一組向量來表示一個詞的語境,那麼計算類似度的時候到底要用其中哪些向量,仍是所有使用呢?這個問題就引出了語義類似度計算中的兩種重要實踐:
a) 原型(prototype)方法
對於Su={U1…Un},原型方法將全部向量取平均,造成一個向量使用。
b) 範例方法
對於Su={U1…Un}和Sv={V1…Vm}兩組向量範例方法保留全部向量,兩個集合Su、Sv間的類似度採用向量兩兩間類似度的均值,或者最小值/最大值表示。
範例方法的計算開銷較大,但好處是保留了第一手的原始信息,後期則能夠靈活處理,這有點像照相機的RAW格式。
其實範例方法最大的優點是在解決問題2時,更加駕輕就熟一些,咱們下面簡要介紹一下面臨問題2,有哪些辦法可用。
所謂約束,能夠這樣理解:人們在討論不一樣事物的時候,即便用詞有重疊,使用的整個語境也是有差別的。例如人們討論蘋果手機和蘋果牛仔褲,確定不會用一套「切口」。可是如何描述其中的某一套切口呢?方法很簡單,用一個關鍵詞就能夠搞定了[2]。在上面的例子中,「手機」和「牛仔褲」就是很是合適的關鍵詞。
有了關鍵詞,一個簡單的想法就是構建一個詞,如「蘋果」的上下文時,只從關鍵詞的周圍選。很惋惜,這樣作計算開銷太大了。所以,技術工做者們發展出了一系列折衷的辦法。例如在範例方法中,只選擇集合S中和關鍵詞k類似度大於某個閾值的向量使用[v]:
又如對S中的向量先聚聚類,而後選擇最有可能包含關鍵詞(和關鍵詞最類似)的聚類使用[3][2],如圖1所示。
在原型方法中,則能夠對目標詞v的向量V和關鍵詞k的向量K執行某種混合運算,例如份量相加,或者相乘[[vi]]。
另一種方法是利用向量的交運算來模擬「只從關鍵詞的周圍選上下文」這一過程。定義向量的交爲:
其中N爲字典規模。這樣一來,咱們就能夠利用詞u、v各自的交向量來計算類似度了。
很不幸地,這個實踐引出了問題3。因爲求交後向量變得稀疏,使得不少原本類似的詞因爲共享份量太少,變得不類似了,這個時候應該怎麼辦呢?
圖1 多原型方法示意圖,摘自文獻[6]。
向量的稀疏問題致使了問題3,亦即不顯著共享語境元素的詞語義上依舊有多是類似的。這個問題不僅存在於上述求交運算中,像語言模型同樣,基於上下文統計的實踐大多均可以從平滑中獲益。在原形方法中,所謂平滑,是指用一個詞的類似詞來表明它自己[4]。具體地,對一個目標向量V,不論它是原始的上下文向量,抑或是處理(求交、聚類、篩選,等等)過的向量,以下處理:
其中Simk(V)表示V的top-k類似詞集合,而sim()是當前使用的類似度度量方法。
這樣作的實際效果如何呢?筆者在一個大規模網頁文本(4.7T)上作過實驗,實驗選擇了半徑爲5的文本窗口(見1.1節)來統計上下文,而上下文的權重(見1.1節)則使用了折扣過的點互信息[5] [3]。筆者選用了原形方法(見1.2節),使用歐氏向量空間上的餘弦類似度來計算語義距離。在計算帶約束的語義類似度時,使用求交運算。限於篇幅和精力,這裏只給一個例子,圖2顯示了「劉德華」老師在不一樣設定下的前20類似詞及類似度。
平滑算法所起到的增長召回的做用在此沒有顯示,但事實上不少未平滑時因爲向量稀疏算不出類似度的詞,平滑後變得能夠計算了,有的類似度還不低。另外,咱們還能夠看到約束詞的做用,當約束劉老師爲歌手/演員時,對應的類似詞結果是不一樣的,並且平滑的計算結果在排序上要略好於非平滑結果(噪音排下去了)。
首先,實驗固然還不完備,只可以預覽到預期的效果,還沒法造成有說服力的結論。另外,除去向量空間模型以外,近年來研究領域也嘗試使用機率模型來描述語義和語境。機率模型的基本思想是用有線的N個潛語義來表明全部平常交流中的語義,利用機率生成過程來模擬人們的語義交流過程。其中不可免俗地引入了Topic Model,感興趣的讀者,能夠參考文獻[7-9][[vii]][[viii]][[ix]]。
圖2劉德華」老師在不一樣設定下的前20類似詞及類似度
[題注] 本文旨在向不瞭解詞語語義類似度計算的同窗簡要介紹該領域中的基本概念與方法,以及做者本身對其中一些基本問題的理解。在行家裏手眼裏,就未免顯得太粗淺了。
[1]依我的看法不一樣,不排除有異議的可能。
[2]固然這個詞要足夠關鍵才行,咱們在這裏暫不討論這個問題。
[3]這種方法又叫作「多原型」方法。
[4]範例方法的狀況留給讀者本身發揮。
[5]權重計算的選擇並不影響本質。
參考文獻
`i` Zellig. S.Harris. 1968. Mathematical Structures of Language. Wiley, New York, NY, USA.
`ii` Joseph Reisinger and Raymond J. Mooney. 2010. Multi-prototype vector-space models of word meaning. In Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics (HLT ‘10). Association for Computational Linguistics, Stroudsburg, PA, USA, 109-117.
`iii` Patrick Andre Pantel. 2003. Clustering by Committee. Ph.D. Dissertation. University of Alberta, Edmonton, Alta., Canada. Advisor(s) Dekang Lin. AAINQ82151.
`iv` Dekang Lin. 1998. Automatic retrieval and clustering of similar words. In Proceedings of the 36th Annual Meeting of the Association for Computational Linguistics and 17th International Conference on Computational Linguistics – Volume 2 (ACL ‘98), Vol. 2. Association for Computational Linguistics, Stroudsburg, PA, USA, 768-774. DOI=10.3115/980691.980696 http://dx.doi.org/10.3115/980691.980696
`v`Katrin Erk and Sebastian Padó. 2010. Exemplar-based models for word meaning in context. In Proceedings of the ACL 2010 Conference Short Papers (ACLShort ‘10). Association for Computational Linguistics, Stroudsburg, PA, USA, 92-97.
`vi`Jeff Mitchell and Mirella Lapata. 2008. Vector-based models of semantic composition. In Proceedings of ACL-08: HLT. 236-244
`vii` Georgiana Dinu and Mirella Lapata. 2010. Measuring distributional similarity in context. InProceedings of the 2010 Conference on Empirical Methods in Natural Language Processing(EMNLP ‘10). Association for Computational Linguistics, Stroudsburg, PA, USA, 1162-1172.
`viii` Diarmuid Ó Séaghdha and Anna Korhonen. 2011. Probabilistic models of similarity in syntactic context. In Proceedings of the Conference on Empirical Methods in Natural Language Processing(EMNLP ‘11). Association for Computational Linguistics, Stroudsburg, PA, USA, 1047-1057.
`ix` T im Van de Cruys, Thierry Poibeau, and Anna Korhonen. 2011. Latent vector weighting for word meaning in context. In Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP ‘11). Association for Computational Linguistics, Stroudsburg, PA, USA, 1012-1022
by sunshuqi