word2vec的原理,詞向量計算句子的機率是多少?

leyingfei

Embedding問題一直是NLP領域裡十分熱門問題。近年來,有很多工作是利用RNN、CNN等神經網絡對詞進行組合(composition operators )以得到句子表示,但這大部分都是監督學習,針對特定領域的特定需求,得到的句子向量的通用型不強。

NIPS'15 的論文,來自 Ryan Kiros等人提出的skip-thought vectors受Word2vec中skip-gram的啟發,把詞級別的Embedding擴展到句子級別Embedding,模型稱為skip-thought,得到的句子向量稱為skip-thought vectors.

這篇論文的優點主要有2點:

1)skip-thought是無監督的通用式句子表示方法,利用書中文本的連續性,訓練一個編碼器-解碼器模型,試圖重建一個句子段落的周圍句子,使得語義和句法上相似的句子有相似的向量表示。

2)skip-thought的另一個貢獻是 vocabulary mapping。介紹了一種簡單的詞彙擴展方法,將未被視為訓練的單詞編碼,使得詞彙量可以擴大到一百萬個單詞。對於沒在訓練集出現的詞,通過mapping from word embedding pre-trained from word2vec,用一個沒有正則的 L2 學得映射矩陣W,使得任意的詞向量都能在skip-thought中有一個合適的表示。Embedding問題一直是NLP領域裡十分熱門問題。近年來,有很多工作是利用RNN、CNN等神經網絡對詞進行組合(composition operators )以得到句子表示,但這大部分都是監督學習,針對特定領域的特定需求,得到的句子向量的通用型不強。

NIPS'15 的論文,來自 Ryan Kiros等人提出的skip-thought vectors受Word2vec中skip-gram的啟發,把詞級別的Embedding擴展到句子級別Embedding,模型稱為skip-thought,得到的句子向量稱為skip-thought vectors.

這篇論文的優點主要有2點:

1)skip-thought是無監督的通用式句子表示方法,利用書中文本的連續性,訓練一個編碼器-解碼器模型,試圖重建一個句子段落的周圍句子,使得語義和句法上相似的句子有相似的向量表示。

2)skip-thought的另一個貢獻是 vocabulary mapping。介紹了一種簡單的詞彙擴展方法,將未被視為訓練的單詞編碼,使得詞彙量可以擴大到一百萬個單詞。對於沒在訓練集出現的詞,通過mapping from word embedding pre-trained from word2vec,用一個沒有正則的 L2 學得映射矩陣W,使得任意的詞向量都能在skip-thought中有一個合適的表示。


skip-thought的結構是一個encoder-decoder模型,encoder負責把詞序列編碼成一個句子向量,decode用來生成該句子的上下文向量。encoder 輸出一個向量,decoder 在這個向量的基礎上生成一個句子。有關encoder和decoder的結構選擇上論文中也做了幾個選擇實驗,包括 ConvNet-RNN, RNN-RNN,LSTM-LSTM,加入attention mechanism 等。

skip-thought在8個任務上使用線性模型對向量進行評估:語義關聯、釋義檢測、圖像句子排序、問題類型分類和4個情緒和主觀性數據集分類問題。實驗結果表明:skip-thought可以產生高度通用的穩健的句子表示,並在實踐中表現良好。

下圖就對句子進行向量表示之後,根據cosine相似度計算出來的句子結果:



分享到:


相關文章: