[NLP論文閱讀]A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS

本文是閱讀 ICLR 會議論文 “A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS” 所作筆記。

論文 GitHub:https://github.com/PrincetonML/SIF

Abstract

本文提出了一種基於無監督學習的 Sentence Embedding 方法,其效果超過了目前(截止論文發表)主流的 Sentence Embedding 方法。流程如下:

  1. 計算 Word Embedding ,通過對無標籤的語料庫;
  2. 用加權詞向量來表徵一個句子;
  3. 用 PCA/SVD 來改善它們

Introduction

Word Embedding 已經成爲了自然語言處理和信息檢索中的基石。最近的研究則主要是 Sentence Embedding ,之前已經有很多的研究方法,如詞向量的簡單組合、CNN、RNN……2016 年 Wieting et al 在 PPDB 上對標準的 Word Embedding 進行修改,訓練一個 word averaging model,但是若無修改的過程,直接對初始的詞向量進行平均操作,效果並不好。

本文提出的算法 SIF (smooth inverse frequency)

  1. 計算詞向量的加權平均值:weight(w)=aa+p(w)weight(w) = \frac{a}{a+p(w)}
  2. common component removal: remove the projection of the average vectors on there first component

優勢:

  1. 領域自適應 well-suited
  2. 加權方法的健壯性:使用不同語料庫的詞頻並不影響性能
  3. 通過調整 a 是可以到達最優解的,且選擇範圍大

Related Work

Word Embeddings

是一種詞彙的表示方法。將詞彙表示爲低維度的連續向量,具有其語義、詞彙特徵。計算方法:

  • internal representations from neural network models of text
  • low rank approximation of co-occurrence statistics

Our work:

在 Random Walk 模型中對潛在的變量進行近似推理。

Random Walk:在文章中生成缺失詞的產生式模型

Phrase/Sentence/Paragraph embeddings

Our work:

通過 Word Embedding 計算 paraphrastic sentence embedding,並且根據 paraphrase 對 word embedding 更新,初始化和訓練過程中均爲有監督的。

A Simple Method for Sentence Embedding

潛在變量生成模型(latent variable generative model)假設:語料的生成是一個動態的過程,即第 t 個單詞在第 t 步生成。每個單詞對應一個 RdR^d 空間裏的向量。

單詞 ww 的向量 vwv^w與當前時間的 discourse vector ctc^t 的內積,,表示着這個單詞與整個句子之間的關係。 並且我們假設t時刻觀測到單詞 ww 的概率爲這個內積的對數線性 (log linear) 關係:

Pr[w emitted at time t ct]exp(<ct,vw>).Pr[w \ emitted \ at \ time \ t \ | c_t] \propto exp(<c_t,v_w>) .

因爲 ctc_t 是由較小的隨機漫步得到的(ct+1c_{t+1}ctc_t 只相差一個較小的隨機向量),所以相鄰的詞是由相似的 discourse vector 得到的。同時,偶爾 ctc_t 有大的 jump,對 co-occurrence probabilities 影響不大。

通過這種辦法生成的單詞向量與 Glove 和 word2vec 很像。

Our improved Random Walk model

我們希望定義 sentence embedding 爲:對 discourse vector 的最大後驗估計(MAP)。因爲整個句子中 ctc_t 變化很小,爲了化簡,用 csc_s 代表一個句子中的所有 ctc_t

基於前文的 Simple Method 做如下改進,引入兩種平滑項,原因是:

  • 有些單詞在規定的上下文範圍之外出現
  • 有些頻率高的單詞(停止詞、連接詞)與 discourse vector 無關

兩種平滑項分別是:

  • αp(w)\alpha p(w),在對數線性模型中,p(w)p(w)ww 在整個語料庫中出現的頻率,α\alpha 是超參數,這樣即使和 csc_s 的內積很小,也有可能出現
  • c0c_0,糾正項,代表着最頻繁的 discourse vector,通常和語法聯繫起來。

修正後的模型爲:

Pr[w emitted at time t ct]=αp(w)+(1α)exp(<c~s,vw>)Zc~s,where c~s=βc0+(1β)cS,c0csPr[w \ emitted \ at \ time \ t \ | c_t]=\alpha p(w)+(1-\alpha)\frac{exp(<\tilde{c}_s,v_w>)}{Z_{\tilde{c}_s}}, \\ where \ \tilde{c}_s=\beta c_0+(1-\beta)c_S,c_0 \perp c_s

α\alphaβ\beta 都是超參數,Zc~s=wVexp(<c~s,vw>)Z_{\tilde{c}_s}=\sum_{w\in V}exp(<\tilde{c}_s,v_w>) 是歸一化常數(normalizing constant)。這樣即使一個單詞無關於 discourse vector 也可以出現,因爲來自 αp(w)\alpha p(w) 的數值和與 c0c_0 的相關性。

Computing the sentence embedding

sentence embedding 被定義爲 csc_s 的最大似然估計向量,(因爲前驗概率相同,這裏的 MLE 等同於上文的 MAP),因爲 vsv_s 是大致均與分佈在整個向量空間上的,因此這裏的歸一化項 ZcZ_c 在各個維度(不同句子?)上也是大致相同的。所以假設 Zc~sZ_{\tilde{c}_{s}} 也是大致相同的,則由修正後的模型得出句子的似然估計是:

p[scs]=wsP(wcs)=ws[αp(w)+(1α)exp(<c~s,vw>)Z]p[s|c_s]=\prod_{w \in s}P(w|c_s)=\prod_{w \in s} [\alpha p(w)+(1-\alpha)\frac{exp(<\tilde{c}_s,v_w>)}{Z}]

fw(c~s)=log[αp(w)+(1α)exp(<c~s,vw>)Z]f_w(\tilde{c}_s)=log[\alpha p(w)+(1-\alpha)\frac{exp(<\tilde{c}_s,v_w>)}{Z}]

做偏分得:

fw(c~s)=1αp(w)+(1α)exp(<c~s,vw>)/Z1αZexp(<vw,c~s>)\nabla f_w(\tilde{c}_s)=\frac1{\alpha p(w)+(1-\alpha)exp(<\tilde{c}_s,v_w>) / Z} \frac{1-\alpha}{Z}exp(<v_w,\tilde{c}_s>)

通過泰勒展開,得到:

KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲\begin{aligned}…

所以,對 c~s\tilde{c}_s 的最大似然估計:

arg maxwsfw(c~s)wsap(w)+avw,where a=1ααZarg \ max\sum_{w\in s}f_w({\tilde{c}_s}) \propto \sum_{w\in s}\frac{a}{p(w)+a}v_w,where \ a = \frac{1-\alpha}{\alpha Z}

因此,可得,最優解就是句子中所有單詞向量的加權平均,對於頻率高的單詞,其權重也更小。

最後,爲了得到句子向量 csc_s,我們需要估計 c0c_0,通過計算向量 csc_s 中的主成分(first principal component),即用 csc_s 減去 c0c_0 向量。

詳細過程:

通過證明,Word2vec 的下采樣概率和我們的權重模型是相似的。

最後論文用數據集進行了驗證,本文不再贅述,感興趣的可以取 github 開源代碼或論文後半部分閱讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章