pair2vec 基於複合詞對嵌入加強跨句推理模型
論文pdf: ofollow,noindex"> https:// arxiv.org/pdf/1810.0885 4.pdf
編譯:weakish
詞嵌入現在已經成為任何基於深度學習的自然語言處理系統的標配元件。然而,Glockner等最近的工作(arXiv:1805.02266)表明,當前重度依賴無監督詞嵌入的模型,難以學習詞對之間的隱含關係。而詞對之間的隱含關係,對問答(QA)、自然語言推理(NLI)之類的跨句推理至關重要。
例如,在NLI任務中,給定一個假設“打高爾夫球過於昂貴”(golf is prohibitively expensive),要推斷出猜想“過去打高爾夫球很便宜”(golf is a cheap pastime),需要了解“昂貴”(expensive)和“便宜”(cheap)是反義詞。而現有的基於詞嵌入的模型很難學習這種關係。
有鑑於此,華盛頓大學的Mandar Joshi、Eunsol Choi、Daniel S. Weld和Facebook AI研究院的Omer Levy、Luke Zettlemoyer最近提出了詞對嵌入(pair2vec)技術,可以改善現有模型在跨句推理上的表現。
詞對嵌入表示
直覺
詞對嵌入的直覺很簡單,正如上下文隱含了單詞的語義(詞嵌入),上下文也為詞對之間的關係提供了強力線索。

不過,總體上來說,詞對一起出現在同一上下文的頻率不高。為了緩解這一稀疏性問題,pair2vec學習兩個複合表示函式R(x, y)和C(c),分別編碼詞對和上下文。
表示
R(x,y)是一個簡單的4層感知器,輸入為兩個詞向量,以及這兩個詞向量的分素乘積:

其中,x和y為經過歸一化的基於共享查詢矩陣 的嵌入:

C(n)基於查詢矩陣 嵌入每個token
,然後將嵌入序列傳入一個單層的雙向LSTM,再使用注意力池化加以聚合:

上面所有的引數,包括 和
,都是可訓練的。
目標
一方面,優化目標需要使在資料中觀測到的一同出現的(x, y, c)對應的R(x, y)和C(c)相似(內積較大);另一方面,又需要使詞對和其他上下文不相似。當然,計算所有其他上下文和詞對的相似性的算力負擔太大了,因此,論文作者採用了負取樣技術,轉而比較隨機取樣的一些上下文。

上式中的CN為隨機取樣的上下文。
這種做法其實和詞嵌入一脈相承。詞嵌入同樣面臨計算所有上下文(softmax)過於複雜的問題。因此,word2vec、skip-gram等詞嵌入技術使用了層次softmax(使用二叉樹結構儲存所有詞,從而大大縮減計算量)。後來Mikolov等提出,負取樣可以作為層次softmax的替代方案。相比層次softmax,負取樣更簡單。
不過,還記得我們之前提到的詞對稀疏性問題嗎?這種直接借鑑詞嵌入負取樣的方案,也會受此影響。所以論文作者改進了負取樣技術,不僅對上下文c進行負取樣,還對詞對中的單詞x和y分別進行負取樣。這一三元負取樣目標,完整地捕捉了x、y、c之間的互動關係:

論文作者證明(見論文附錄A.2),目標收斂於:

上式中,P表示分素互資訊(PMI),分母 為邊緣概率乘積的線性混合:

另外,負取樣時,除了從均勻分佈中取樣外,還額外從最相似(根據餘弦相似度)的100個單詞中均勻取樣。這一型別取樣(typed sampling)方法可以鼓勵模型學習具體例項間的關係。比如,使用California(加州)作為Oregon(俄勒岡州)的負樣本有助於學習“X is located in Y”(X位於Y)這樣的模式適用詞對(Portland, Oregon)(波特蘭是俄勒岡州的城市),但不適用詞對(Portland, California)。
pair2vec加入推理模型
在將pair2vec加入現存跨句推理模型時,論文作者並沒有用pair2vec直接替換傳入編碼器的詞嵌入,而是通過複用跨句注意力權重,將預訓練的詞對錶示插入模型的注意力層。

上圖展示了跨句注意力模型的典型架構(左半部分)和pair2vec是如何加入這一架構的(右半部分)。簡單解釋一下,給定兩個序列a和b,對序列a中的單詞 ,模型基於雙向LSTM編碼
,同時基於序列b的雙向LSTM狀態建立相對於
的注意力加權表示(圖中加粗的箭頭表示語義對齊)。在此基礎上,加上注意力加權的詞對錶示
。
試驗
資料
論文作者使用了2018年1月的維基百科資料,其中包含九千六百萬句子。基於詞頻限制詞匯量至十萬(預處理階段移除)。在經過預處理的語料庫上,論文作者考慮了視窗大小5以內的所有詞對,並基於詞對概率(閾值為5 × 10-7)降取樣例項。降取樣可以壓縮資料集大小以加速訓練,word2vec等詞嵌入也採用降取樣。上下文從詞對左邊的一個單詞開始,到詞對右邊的一個單詞為止。另外,論文作者用X和Y替換了上下文中的詞對。
超引數
詞對和上下文均使用基於FastText初始化的300維詞嵌入。上下文表示使用的單層雙向LSTM的隱藏層尺寸為100. 每個詞對-上下文元組使用2個上下文負樣本和3個增強負樣本。
預訓練使用隨機梯度下降,初始學習率為0.01,如果損失在30萬步後沒有下降,那麼將學習率縮小至原學習率的10%。batch大小為600。預訓練了12個epoch(在Titan X GPU上,預訓練需要一週)。
任務模型均使用 AllenNLP 的實現,超引數取預設值。在插入pair2vec前後沒有改動任何設定。預訓練的詞對嵌入使用0.15的dropout.
問答任務
在SQuAD 2.0上的試驗表明,pair2vec提升了2.72 F1. 對抗SQuAD資料集上的試驗說明pair2vec同時加強了模型的概括性(F1分別提升7.14和6.11)。

自然語言推理
在MultiNLI資料集上,加入pair2vec後,ESIM + ELMo的表現提升了1.3.

Glockner等提出了一個領域外NLI測試集( arXiv:1805.02266),說明除了使用WordNet特徵的KIM外,多個NLI模型在比SNLI更簡單的新測試集上的表現反而要差不少,說明這些模型的概括性有問題。而加入pair2vec後的ESIM + ELMo模型達到了當前最先進水平,重新整理了記錄。

順便提下,KIM的做法是現有研究中最接近pair2vec的。KIM同樣在ESIM模型中加入了詞對向量,但是它的詞對向量是基於WordNet手工編碼得到的。而pair2vec使用的是無監督學習,因此可以反映WordNet中不存在的關係(例如個人-職業),以及WordNet中沒有直接聯絡的詞對(例如,bronze(青銅)與statue(塑像))。
詞類比
為了揭示pair2vec加入的額外資訊是什麼,pair2vec能夠更好地捕捉哪類聯絡,論文作者在詞類比資料集上進行了試驗。
詞類比任務是指,給定詞對(a, b)和單詞x,預測滿足a : b :: x : y的單詞y。論文作者使用的是BATS資料集,該資料集包括四種關係:
- 百科語義(encyclopedic semantics),例如Einstein-physicist(愛因斯坦-物理學家)這樣的個人-職業關係。
- 詞典語義(lexicographic semantics),例如cheap-expensive(廉價-昂貴)這樣的反義詞。
- 派生形態(derivational morphology),例如oblige(動詞,迫使)與obligation(名詞,義務)。
- 屈折形態(inflectional morphology),例如bird-birds(鳥的單數形式和複數形式)。
每種關係各包含10個子類別。
之前我們說過,詞類比任務是要預測滿足a : b :: x : y的單詞y,而相關詞嵌入的差很大程度上能夠反映相似關係,例如,queen(後) - king(王) ≈ woman(女) - man(男)很大程度上意味著queen : king :: woman : man。所以,詞類比問題可以通過優化cos(b - a + x, y)求解(cos表示餘弦相似度,a、b、x、y為詞嵌入)。這一方法一般稱為3CosAdd法。
論文作者在3CosAdd中加入了pair2vec,得到α·cos(ra,b, rx,y) + (1-α)·cos(b - a + x, y)。其中r表示pair2vec嵌入,α為線性插值係數,α=0時等價於原3CosAdd法,α=1等價於pair2vec。
下圖顯示了在FastText中插入pair2vec的結果,黃線表示派生形態,棕線表示詞典語義,綠線表示屈折形態,藍線表示百科語義。

我們可以看到,在所有四個類別上,在3CosAdd上增加pair2vec都取得了顯著的提升,其中百科語義(356%)和詞典語義(51%)提升尤為突出。
下表顯示了提升最明顯的10個子類別,α*為最優插值引數。

從上表我們可以看到,在FastText嵌入提供的訊號十分有限的關係上,提升尤為顯著。論文作者還觀察到,某些情形下pair2vec和FastText存在協同效應,比如,noun+less關係中,3CosAdd原本評分為4.8,pair2vec自身評分為0,但3CosAdd加上pair2vec後,評分為16。
填槽
為了進一步探索pair2vec如何編碼補充資訊,論文作者嘗試了填槽(slot filling)任務:給定Hearst式的上下文模式c、單詞x,預測取自整個詞彙表的單詞y。候選單詞y的排序基於訓練目標R(x,y)·C(c)的評分函式,採用固定的關係樣本,並手工定義上下文模式和一小組候選詞x。
下表顯示了評分最高的三個y單詞。

上表說明,pair2vec可以捕捉詞對和上下文間的三邊關係,而不僅僅是單個單詞和上下文之間的雙邊關係(詞嵌入)。這一巨大差別使pair2vec可以為詞嵌入補充額外資訊。
消融測試
為了驗證pair2vec各元件的有效性,論文作者也在SQuAD 2.0的訓練集上做了消融測試。消融測試表明,增強取樣和使用較深的複合函式效果顯著。

結語
pair2vec基於複合函式表示,有效緩解了詞對的稀疏性問題。基於無監督學習預訓練的pair2vec,能夠為詞嵌入補充資訊,從而提升跨句推理模型的表現。