Discovering Word Senses from Text算法
第一章 簡介數據庫
使用詞形的詞義在不少應用中具備重要的做用,這些應用包含信息檢索、機器翻譯、問答系統。在以前的方法中,詞義一般使用人工構建的詞典創建。這種作法使詞義有一些不利之處。首先,人工創建的詞典一般包含罕見的詞義。第二,這些詞典缺失許多領域限定的詞義。函數
一個未知詞的意思一般能夠從它的上下文中推斷出來,這種想法是源於不一樣的詞出如今相同的上下文中更趨向於具備類似的詞義。這就是Distributional Hypothesis。spa
本論文介紹一種叫作CBC(Clustering By Committee)的聚類算法。在這種聚類算法中,聚類的幾何中心是聚類成員的子集的特徵向量的平均數。這個子集被看做是committee,committee其餘的元素是否屬於這個彙集。經過仔細選擇committee成員,幾何中心的特徵趨向於成爲典型的目標類的特徵。翻譯
論文中也提出一種自動評估詞義發現的聚類算法。使用WordNet來度量準確率和召回率。3d
第二章 相關工做orm
聚類算法一般被劃分爲兩類:層次聚類和劃分聚類。在層次聚類算法中,聚類是經過反覆合併最類似的聚類創建的。這類算法根據度量聚類類似度的不一樣又分爲不一樣的算法。在單鏈路聚類(single-link clustering)算法中,兩個聚類的類似度是它們最類似成員的類似度。在完整的鏈路聚類(complete-link clustering)算法中,兩個聚類的類似度是它們最不類似成員的類似度。在平均鏈路聚類(average-link clustering)算法中,兩個聚類的類似度是兩個聚類中全部pair類似度的平均數。這些算法的複雜度是O(n2logn),n是待聚類元素的個數。blog
Chameleon是採用動態模型(dynamic modeling)的層次聚類算法。當合並兩個聚類時,須要考慮兩個聚類的全部pair類似度的和(相似平均鏈路聚類)。這種方法的一個缺點是很是類似的單pair元素可能形成兩個聚類的不恰當合併。一種代替的想法是考慮考慮pair類似度數量超過一個閾值。然而,當有不少類似度剛好超過閾值一點點的時候,這種方法可能形成不可取的合併。Chameleon結合兩種方法。排序
K-means聚類一般使用在大量的數據集合上,由於它的複雜度是n的線性函數,n是待聚類的元素數量。K-means是劃分聚類的一種。K-means算法迭代過程:1.計算每一個元素到K個聚類幾何中心的類似度,選擇類似度最高的做爲它的類別,2.從新計算各個聚類的幾何中心。K-means算法的複雜度是O(K×T×n),由於初始的幾何中心是隨機選擇的,聚類結果可能在質量上不一樣。一些初始幾何中心可能致使慢的收斂速度或者差的聚類質量。二等分K-means,是K-means的一個變種。初始時只有一個包含全部元素的聚類,迭代選擇最大的聚類,並把它劃分爲兩個聚類。二等分聚類算法能夠看作是對數據使用α次K=2的K-means。遞歸
混合聚類(Hybrid clustering)算法集合層次聚類和劃分聚類。試圖獲得具備層次聚類的高質量和劃分聚類的高效率。
CBC是UNICON的一個派生。
第三章 詞的類似度
使用特徵向量來表示每一個詞。每一個特徵關聯到一個該詞出現的上下文。特徵的值是點式互信息(pointwise mutual information,PMI)。點式互信息是一種普遍用於分析事件相關的方法,具備針對離散隨機變量中相對稀疏的數據分佈進行分析的特色。PMI的定義公式以下:
公式體現了二元關係,反應了x和y的共現頻度。
令c是一個context,Fc(w)是詞w出如今上下文c中的頻次。上下文c和詞w的點式互信息miw,c定義爲:
其中,是全部詞和它上下文出現頻次的和。顯然,mi越大,說明w和c共現的可能性越大。互信息的一個出名的問題是它偏袒出現頻次少的詞和特徵。這裏給mi乘一個折扣因子。
計算兩個詞wi和wj的類似性使用互信息向量的餘弦協同係數(cosine coefficient):
第四章 算法
CBC由3個階段組成。在階段1,計算每一個元素的最類似的k個元素。在本論文的實驗中,採用k=10。在階段2,構建一些緊密的聚類,每一個聚類的元素構成一個committee。算法試圖構建儘量多的committee,知足的條件是新構建的committee和已經存在的committee不是很類似。若是不知足這個條件,新committee簡單的被拋棄。在階段3,每一個元素e被分配給和它最類似的聚類。
4.1 階段1:尋找最類似的元素
計算爲每對元素計算類似度,構建徹底的類似度矩陣明顯是二次方的。然而,事實上特徵向量是稀疏的,經過索引特徵,能夠經過特徵檢索到具備這個特徵的元素。爲了計算元素e的最類似的K個元素,首先,對元素e的特徵按照點式互信息排序,其次,只考慮特徵的一個子集,子集中的特徵具備最高的互信息,最後,計算元素e和具備子集中特徵的其餘元素的類似度。由於,大的互信息特徵趨向於不在不少元素中出現,咱們只須要計算元素對組合的一小部分。使用這種啓發,類似詞具備低互信息的特徵纔會被忽略。然而,在實驗中,這個並無對聚類質量形成顯著影響。
4.2 階段2:尋找committees
在階段2中,遞歸尋找緊密的聚類,這些聚類在類似空間中是分散的。在每一個遞歸的步驟中,算法尋找一個緊密聚類集,叫作committee,而且識別沒有被任何committee覆蓋的剩餘元素。這裏的覆蓋(cover)是指,一個元素到一個committee的幾何中心的類似度超過一個閾值。算法遞歸的在剩餘元素尋找更多的committee。算法的輸出是全部遞歸步驟中尋找到的committee的並集。算法的詳細步驟如圖。
輸入:待聚類元素的列表E,經過階段1計算獲得的數據庫S,閾值θ1和θ2。
Step1:對每一個元素e∈E
使用平均鏈路聚類算法對在S中與e最類似的元素聚類。
對每一個被發現的聚類c,計算得分函數:|c|×avgsim(c),其中|c|是聚類c中元素的數量,avgsim(c)是c中每對元素類似度的平均數。
保存具備最高得分的聚類到列表L中。
Step2:對L中的聚類根據得分降序排列。
Step3:令C是
對每一個聚類c∈L按照排序的順序
計算c的幾何中心,幾何中心的計算方法是對元素的頻次向量取平均數,並計算幾何中心的互信息向量,計算方法和計算單個元素的相同。
若是c的幾何中心的類似度和已經加入到C中的committee的幾何中心的類似度低於一個閾值θ1,那麼把c加入到C中。
Step4:若是C爲空,完成,返回C。 //爲了遞歸的終止
Step5:對每一個元素e∈E
若是e和在C中的每一個committee的類似度低於閾值θ2,把e加到剩餘列表R中
Step6:若是R爲空,完成,返回C。
不然,返回C和遞歸調用階段2返回值的並集。遞歸調用使用的參數是R,S,θ1,θ2。
輸出:committee的列表。
在步驟1中,得分函數反應更大更緊湊的聚類。步驟2爲步驟3提供高質量的聚類。步驟3中,只有和其餘committee類似度低於θ1的聚類才被加入到committee中,咱們把θ1設置爲0.35,步驟4結束遞歸當在以前的步驟中沒有發現committee。步驟5中發現剩餘元素,若是沒有發現剩餘元素那麼結束算法,不然進行遞歸。
4.3 階段3:把元素分配到聚類
在階段3,每一個元素e被分配到和它最類似的聚類中(有多個),使用下面的步驟:
令C是聚類的列表,初始爲空。
令S是和元素e類似度排前200的聚類。
While S 不爲空{
令c∈S是和e最類似的聚類
若是similarity(e,c)<σ
退出循環
若是c和C中的其餘聚類不類似{
把e分配給c
刪除e的和c重疊的特徵
}
從S中刪除c。
}
當計算聚類和元素(或者其餘聚類)的類似度,使用committee成員的幾何中心(以爲計算方法應該和階段2中同樣)。這個階段相似於K-means,每一個元素被分配給和它最近的中心。與K-means不一樣的是,聚類的數量不是固定的,聚類中心不變。
這個算法發現詞義的關鍵是,當一個元素分配到一個聚類c時,e和c特徵的交集將從e中刪除。這使得CBC發現低頻的詞義並避免發現重疊詞義。
4.4 和UNICON對比
UNICON也是使用類似元素的小集合構建中心,與CBC中的committee類似。
CBC和UNICON第一個不一樣點是UNICON只保證committee之間沒有重疊的成員,committee之間的中心可能仍然很近。UNICON經過合併這樣的聚類來解決這個問題。
CBC和UNICON另外一個主要的不一樣點是CBC的階段3。當某個詞有主要詞義時,UNICON難發現詞的其餘詞義。
5.1 WordNet
WordNet是組織成圖的電子詞典。每一個節點稱爲一個同義詞集(synset),表示一個同義詞的集合。在synset之間的邊表達下位詞/上位詞關係。如圖,爲一個synset分配的數,表明,隨機選擇一個名詞,名詞屬於這個synset或者這個synset之下的synset的機率。這個機率並不在WordNet中,須要使用語料來構建。在統計synset頻次時,在WordNet低層的頻次很稀疏。使用平滑的方法是,假設給定父節點,兄弟節點時等可能的。
Lin定義的在WordNet中,兩個synset的類似性。
其中s是s1和s2的共同最近祖先。
5.2 準確率
對每一個詞,CBC輸出一個聚類的列表。每一個聚類應當關聯到一個詞義。準確率是輸出聚類實際表徵詞義的比例。
爲了計算準確率,須要定義怎麼聚類纔算關聯到詞義。爲了自動決策,把聚類映射到WordNet詞義。
令S(w)是詞w在WordNet中的詞義(每一個詞義是包含w的synset)。定義simW(s,u)爲一個synset和詞u的類似度。
令ck是聚類c的前k個成員,排名是按照和committee中心的類似度。定義s和c的類似度。
假設聚類算法把一個詞w分配到一個聚類c,咱們說c關聯到一個正確的詞義當
在實驗中,取k=4,θ爲變量。詞w在WordNet中的關聯到c詞義是:
多個聚類可能分配到同一個詞義,這種狀況只計算他們其中的一個做爲正確的。
5.3 Recall
Recall表述的是正確的詞義和實際正確詞義的比例。顯然,沒有方法知道詞的所有詞義。爲了解決這問題,集合了多個算法的結果做爲目標詞義集。對於一個詞w,對有所算法獲得的正確詞義取並集做爲w的詞義。
總Recall是計算每一個詞的recall的平均數獲得的。
5.4 F-值
F值爲: