天天看點

論文A simple but tough-to-beat baseline for sentence embedding

轉載自https://blog.csdn.net/sinat_31188625/article/details/72677088

論文原文:A simple but tough-to-beat baseline for sentence embedding

引言

在神經網絡泛濫的時候,這篇文章像一股清流,提出了一個無監督的句子模組化方法,并且給出了該方法的一些理論解釋。通過該方法得到的句子向量,在STS資料集上取得了不輸給神經網絡的效果。

句子模組化算法

作者将該算法稱之為WR。 

W表示Weighted,意為使用預估計的參數給句中的每個詞向量賦予權重。 

R表示Removal,意為使用PCA或者SVD方法移除句向量中的無關部分。 

論文A simple but tough-to-beat baseline for sentence embedding

輸入: 

預訓練的詞向量{vw:w∈Vvw:w∈V},例如word2vec、glove等 

待處理的句子集合 SS 

參數a(論文中建議a的範圍: [1e−4,1e−3][1e−4,1e−3]) 

詞頻估計{p(w):w∈Vp(w):w∈V}

輸出: 

句子向量{vs:s∈Svs:s∈S}

實驗結果

論文A simple but tough-to-beat baseline for sentence embedding

這是文中的第一個實驗——句子相似性評價。 

實驗使用的資料集都是公共資料集,在這些資料集上方法都取得了不輸給RNN和LSTM的表現。

但是在情感分析方面,該方法不及RNN和LSTM,作者分析的了可能原因: 

1. 算法使用的詞向量(word2vec, glove等)大都基于分布式假說——擁有相近上下文的單詞具有相近的意思,但是這些詞向量對句子中的antonym problem(我的了解是句子中會出現轉折)的感覺能力有限。 

2. 對于預估計詞頻來确定權重的方式,在情感分析中可能不是很有效。例如,單詞”not”在情感分析中是非常重要的,但是在确定權重時,采用的詞頻估計會導緻其難以在情感分析中發揮作用。

實驗複現

作者在Github上開源了該算法代碼,于是我在此基礎上,對作者的實驗繼進行複現,實驗代碼在我的github上

實驗結果:(黃色背景的資料為論文中資料,用來和我的實驗資料進行比較) 

論文A simple but tough-to-beat baseline for sentence embedding
論文A simple but tough-to-beat baseline for sentence embedding
論文A simple but tough-to-beat baseline for sentence embedding
論文A simple but tough-to-beat baseline for sentence embedding
論文A simple but tough-to-beat baseline for sentence embedding
論文A simple but tough-to-beat baseline for sentence embedding

部分資料存在缺失,可能是忘記記錄了,但是實驗效果和論文基本一緻。

總結

這種句子的模組化方式非常高效且便捷。由于這是一種無監督學習,那麼就可以對大規模的語料加以利用,這是該方法相比于一般有監督學習的一大優勢。 

通過對實驗的複現,發現運作一次程式隻需要十幾分鐘,并且主要的運作耗時都在将詞向量模型載入記憶體這個過程中,這比動不動就需要訓練幾周的神經網絡模型确實要好很多,并且在這個詞相似性任務中,與神經網絡旗鼓相當。