官术网_书友最值得收藏!

1.3 詞向量的評判標準

詞向量的評判標準可以分為內部標準(Intrinsic Criteria或Intrinsic Evaluation)和外部標準(External Criteria或External Evaluation)。只有徹底地了解了這些詞向量的標準,我們才知道如何在實際的場景中選擇適合的詞向量,什么樣的詞向量才更適合模型以及業務效果。

1.3.1 內部評估

內部評估就是不考慮下游任務,僅從詞向量本身能否準確地表示語義來評判詞向量的好壞,即主要衡量單詞之間的句法和語義關系。內部評估可以進一步分為:絕對內在評估(Absolute Intrinsic Evaluation)和比較內在評估(Comparative Intrinsic Evaluation)。

1.絕對內在評估

絕對內在評估直接衡量給定兩個單詞之間的句法和語義關系。它共有4種類型的評估。

1)相關性。對于兩個單詞,它們之間的余弦相似度應該和人類主觀評價的得分有較高的相關性,即評估詞向量模型在兩個詞之間的語義相關性,如學生與作業,中國與北京等。

具體方法由監督模式實現,首先需要一份標記文件,一般可以由人工標注:

上述文件代表了詞語之間的語義相關性,我們利用標注文件與訓練出來的詞向量相似度進行比較,如詞向量之間的余弦距離等,確定損失函數,便可以得到一個評價指標。但這種方法首先需要人工標注,且標注的準確性對評估指標影響非常大。

2)詞向量類比。假設給了一對單詞(a,b)和一個單詞c,任務是找到一個單詞d,使得cd之間的關系相似于ab之間的關系,例如,Queen-king+man=women。在給定詞嵌入的前提下,一般是通過在詞向量空間尋找離(b-a+c)形式最近的詞向量來找到d,如圖1-8所示。

圖1-8 詞向量類比案例

3)分類。分類是指把詞聚類成不同的堆,查看聚類是否準確。

4)選擇偏好。選擇偏好是指判斷某名詞是更傾向做某個動詞的主語還是賓語,例如一般順序是he runs而不是runs he。

2.比較內在評估

給出一個查詢詞,將詞嵌入模型產生的結果呈現給用戶,讓用戶選出最相關的,然后統計結果。我們可以采用用戶直接反饋的形式進行評估,這樣可以避免需要定義指標的問題。

此外,我們可以制作更符合詞嵌入評估任務的查詢清單,比如考慮詞頻、詞性、類別、是否是抽象詞四個方面,從這四個方面進行評估。

3.內在評估的特點

內在評估具有以下幾個特點:在特定的子任務上對詞向量進行評估(例如評估詞向量時可以正確預測詞性標簽,或者評估同義詞是否具有相似的向量結構);評估速度快,易于計算;能夠幫助理解這個系統;除非與實際任務建立了關聯,否則不清楚是否真正有用。

1.3.2 外在評估

外在評估是指評估單詞嵌入模型對特定任務的貢獻。外在評估大致分成兩種方法,一種是直接用于下游任務,通過對下游任務的評價來評判詞向量的好壞;另一種是對特征進行可視化。

1.應用到下游任務評估方法

這種評估方法是通過詞向量在下游任務表現的優劣來評價詞向量的好壞。將詞向量作為輸入,以此衡量下游任務性能指標的變化。使用此類評估方式存在一個隱含的假設,即單詞嵌入質量是有固定排名的。也就是說,嵌入模型無論在什么任務里的表現排名應該基本一致。因此,更高質量的嵌入必定會改善任何下游任務的結果。常見的下游任務如下:

1)命名實體識別,判斷一個詞是不是某種實體的名字,比如人名、組織名、地點名、歌名等;

2)詞義消歧,判斷近義詞、多義詞;

3)詞性標注;

4)句法分析;

5)文本分類等。

2.可視化評估方法

詞向量的另一種評估方法是借助可視化來評估詞向量,例如借助t-SNE等,一般主要是通過圖形等方式將抽象的詞向量具體化。

(1)什么是t-SNE?

t-SNE的主要用途是可視化和探索高維數據。它由Laurens van der Maatens和Geoffrey Hinton在Visualizing Data Using t-SNE[1]中提出。t-SNE的主要目標是將多維數據集轉換為低維數據集。相比其他降維算法,t-SNE的數據可視化效果最好。如果我們將t-SNE應用于n維數據,它將智能地將n維數據映射到3維甚至2維數據,并且原始數據的相對相似性非常好。與PCA一樣,t-SNE不是線性降維技術,它遵循非線性,這是它可以捕獲高維數據的復雜流形結構的主要原因。

(2)t-SNE的工作原理

首先,t-SNE將通過選擇一個隨機數據點并計算該數據點與其他數據點的歐氏距離來創建概率分布。從所選數據點附近的數據點開始計算將獲得更多的相似度值(通過計算該點與其他數據點的歐氏距離獲得),而從距離所選數據點較遠的數據點開始計算將獲得較少的相似度值。根據相似度值,它將為每個數據點創建相似度矩陣。因為很難將超過3維的數據集可視化,所以為了舉例,我們假設上面的圖是多維數據的可視化表示。

由圖1-9可知,我們可以說X1的鄰域(與每個點最接近的點的集合)NX1)={X2,X3,X4,X5,X6},這意味著X2、X3、X4、X5和X6與X1的相鄰。它將在相似度矩陣中獲得較大的值。

圖1-9 t-SNE案例

另一方面,X20遠離X1,這樣它將在相似度矩陣中獲得較小的值。

其次,它將根據正態分布將計算出的相似距離轉換為聯合概率。通過以上計算,t-SNE將所有數據點隨機排列在所需的較低維度上,如圖1-10所示。

圖1-10 低維度可視化效果

t-SNE將再次對高維數據點和隨機排列的低維數據點進行相同的計算。但是在這一步中,它根據t分布分配概率。這就是t-SNE的名字來源,使用t分布的目的是減少擁擠的問題。如圖1-11所示,t分布看起來很像正態分布,但尾部通常更胖,這意味著數據的可變性更高。注意,對于高維數據,該算法根據正態分布分配概率。

圖1-11 t分布

對于較低維的數據點,t-SNE將創建另一個相似度矩陣,之后使用t-SNE算法對兩個相似度矩陣進行比較,并通過一些復雜的數學運算,如KL散度,擴大兩個數據點的差異。KL散度(度量一個概率分布與另一個概率分布如何不同的度量指標)通過將兩個分布之間相對于數據點位置的值最小化,幫助t-SNE保留數據的局部結構。最后,該算法能夠得到與原始高維數據相似度較高的低維數據點。t-SNE是一種不確定性算法,導致每次運行結果都會略有變化,不會保留群集之間的距離。雖然不能在每次運行中保留方差,但可以使用超參數來保留每個類之間的距離。該算法涉及許多計算,因此,時間復雜度和空間復雜度都非常高,但是它可以巧妙地處理異常值。

注意,在現實任務中進行評估,可能需要很長時間才能得到評估結果;有時無法確定具體是什么原因導致任務表現出現差異,因此難以合理地對詞向量進行評估,需要長時間通過大量實踐不斷地總結評估的經驗。

主站蜘蛛池模板: 鄂尔多斯市| 进贤县| 九江市| 云和县| 梁河县| 普兰店市| 宁远县| 旬阳县| 河北区| 黄陵县| 寻乌县| 蒙阴县| 永春县| 黑山县| 桦南县| 景德镇市| 凤山县| 漳州市| 鸡西市| 增城市| 仪征市| 建始县| 常山县| 区。| 青川县| 焉耆| 阳高县| 基隆市| 齐齐哈尔市| 易门县| 天津市| 福清市| 清水县| 晋州市| 集安市| 大悟县| 玉屏| 桐城市| 蒙阴县| 昌乐县| 仲巴县|