word2vec、glove、cove、fastext以及elmo對於知識表達有什麼優劣?
查看原文 >>太久沒輸出乾貨了,今天來輸出一波。這個話題太大了,就談一點,glove模型的致命缺陷。
glove模型的損失函數:
在glove模型中,對目標詞向量和上下文向量做了區分,並且最後將兩組詞向量求和,得到最終的詞向量。模型中最大的問題在於參數 也是可訓練的參數,這會帶來什麼問題呢?
看下面的證明:
也就是說,對於glove訓練處的詞向量加上任意一個常數向量後,它還是這個損失函數的解!這就是很大的問題了,一旦在詞向量上加上一個很大的常數向量,那麼所有詞向量之間就會非常接近,從而失去了詞向量的意義。實踐中可以發現,對於glove生成的詞向量,停用詞的模長遠大於word2vec詞向量的模長。如果下一步,你不過濾停用詞,直接把幾個詞向量加起來求和用作其他任務時(如文本分類),停用詞的詞向量在求和詞向量中佔得比重還比較大,這明顯很不合理。
可以看出glove這個模型,有借鑒推薦系統中的FM(Factorization Machines)的思想,在推薦系統中,參數 代表用戶對特定商品的偏好,用一個偏移量來描述是合理的,但直接應用到詞向量中,就不是很合理了。word2vec裏是沒有參數 ,所以大家會覺得word2vec效果好些,應用更加普及。
找規律,寫詞語:
1.生死、優劣:天地、黑白、老少、前後(前後是反義詞)
2.明白、抬舉:奔騰、長久、醜陋、疼痛(前後是近義詞)差別不大,本質都是一樣,只是求解方法和模型構造略有差異,都是詞向量技術。現實工程情況,是你是否能找到高質量的訓練數據。
佔個坑,雖然關注的人少不過覺得是個好問題,看什麼時候有時間寫答案
大家可以針對一兩個瞭解熟悉的表達自己的觀點,不必對比全部。
推薦閱讀: