詞嵌入現(xiàn)在已經(jīng)成為任何基于深度學(xué)習(xí)的自然語言處理系統(tǒng)的標(biāo)配組件。然而,Glockner等最近的工作(arXiv:1805.02266)表明,當(dāng)前重度依賴無監(jiān)督詞嵌入的模型,難以學(xué)習(xí)詞對之間的隱含關(guān)系。而詞對之間的隱含關(guān)系,對問答(QA)、自然語言推理(NLI)之類的跨句推理至關(guān)重要。
例如,在NLI任務(wù)中,給定一個假設(shè)“打高爾夫球過于昂貴”(golf is prohibitively expensive),要推斷出猜想“過去打高爾夫球很便宜”(golf is a cheap pastime),需要了解“昂貴”(expensive)和“便宜”(cheap)是反義詞。而現(xiàn)有的基于詞嵌入的模型很難學(xué)習(xí)這種關(guān)系。
有鑒于此,華盛頓大學(xué)的Mandar Joshi、Eunsol Choi、Daniel S. Weld和Facebook AI研究院的Omer Levy、Luke Zettlemoyer最近提出了詞對嵌入(pair2vec)技術(shù),可以改善現(xiàn)有模型在跨句推理上的表現(xiàn)。
詞對嵌入表示
直覺
詞對嵌入的直覺很簡單,正如上下文隱含了單詞的語義(詞嵌入),上下文也為詞對之間的關(guān)系提供了強力線索。
詞對(斜體)及其上下文(取自維基百科)
不過,總體上來說,詞對一起出現(xiàn)在同一上下文的頻率不高。為了緩解這一稀疏性問題,pair2vec學(xué)習(xí)兩個復(fù)合表示函數(shù)R(x, y)和C(c),分別編碼詞對和上下文。
表示
R(x,y)是一個簡單的4層感知器,輸入為兩個詞向量,以及這兩個詞向量的分素乘積:
其中,x和y為經(jīng)過歸一化的基于共享查詢矩陣Ea的嵌入:
C(n)基于查詢矩陣Ec嵌入每個token ci,然后將嵌入序列傳入一個單層的雙向LSTM,再使用注意力池化加以聚合:
上面所有的參數(shù),包括Ea和Ec,都是可訓(xùn)練的。
目標(biāo)
一方面,優(yōu)化目標(biāo)需要使在數(shù)據(jù)中觀測到的一同出現(xiàn)的(x, y, c)對應(yīng)的R(x, y)和C(c)相似(內(nèi)積較大);另一方面,又需要使詞對和其他上下文不相似。當(dāng)然,計算所有其他上下文和詞對的相似性的算力負(fù)擔(dān)太大了,因此,論文作者采用了負(fù)采樣技術(shù),轉(zhuǎn)而比較隨機采樣的一些上下文。
上式中的CN為隨機取樣的上下文。
這種做法其實和詞嵌入一脈相承。詞嵌入同樣面臨計算所有上下文(softmax)過于復(fù)雜的問題。因此,word2vec、skip-gram等詞嵌入技術(shù)使用了層次softmax(使用二叉樹結(jié)構(gòu)保存所有詞,從而大大縮減計算量)。后來Mikolov等提出,負(fù)采樣可以作為層次softmax的替代方案。相比層次softmax,負(fù)采樣更簡單。
不過,還記得我們之前提到的詞對稀疏性問題嗎?這種直接借鑒詞嵌入負(fù)采樣的方案,也會受此影響。所以論文作者改進了負(fù)采樣技術(shù),不僅對上下文c進行負(fù)采樣,還對詞對中的單詞x和y分別進行負(fù)采樣。這一三元負(fù)采樣目標(biāo),完整地捕捉了x、y、c之間的交互關(guān)系:
論文作者證明(見論文附錄A.2),目標(biāo)收斂于:
上式中,P表示分素互信息(PMI),分母Zx,y,c為邊緣概率乘積的線性混合:
另外,負(fù)采樣時,除了從均勻分布中取樣外,還額外從最相似(根據(jù)余弦相似度)的100個單詞中均勻取樣。這一類型取樣(typed sampling)方法可以鼓勵模型學(xué)習(xí)具體實例間的關(guān)系。比如,使用California(加州)作為Oregon(俄勒岡州)的負(fù)樣本有助于學(xué)習(xí)“X is located in Y”(X位于Y)這樣的模式適用詞對(Portland, Oregon)(波特蘭是俄勒岡州的城市),但不適用詞對(Portland, California)。
pair2vec加入推理模型
在將pair2vec加入現(xiàn)存跨句推理模型時,論文作者并沒有用pair2vec直接替換傳入編碼器的詞嵌入,而是通過復(fù)用跨句注意力權(quán)重,將預(yù)訓(xùn)練的詞對表示插入模型的注意力層。
上圖展示了跨句注意力模型的典型架構(gòu)(左半部分)和pair2vec是如何加入這一架構(gòu)的(右半部分)。簡單解釋一下,給定兩個序列a和b,對序列a中的單詞ai,模型基于雙向LSTM編碼ai,同時基于序列b的雙向LSTM狀態(tài)創(chuàng)建相對于ai的注意力加權(quán)表示(圖中加粗的箭頭表示語義對齊)。在此基礎(chǔ)上,加上注意力加權(quán)的詞對表示ri(ai, b)。
試驗
數(shù)據(jù)
論文作者使用了2018年1月的維基百科數(shù)據(jù),其中包含九千六百萬句子。基于詞頻限制詞匯量至十萬(預(yù)處理階段移除)。在經(jīng)過預(yù)處理的語料庫上,論文作者考慮了窗口大小5以內(nèi)的所有詞對,并基于詞對概率(閾值為5 × 10-7)降采樣實例。降采樣可以壓縮數(shù)據(jù)集大小以加速訓(xùn)練,word2vec等詞嵌入也采用降采樣。上下文從詞對左邊的一個單詞開始,到詞對右邊的一個單詞為止。另外,論文作者用X和Y替換了上下文中的詞對。
超參數(shù)
詞對和上下文均使用基于FastText初始化的300維詞嵌入。上下文表示使用的單層雙向LSTM的隱藏層尺寸為100. 每個詞對-上下文元組使用2個上下文負(fù)樣本和3個增強負(fù)樣本。
預(yù)訓(xùn)練使用隨機梯度下降,初始學(xué)習(xí)率為0.01,如果損失在30萬步后沒有下降,那么將學(xué)習(xí)率縮小至原學(xué)習(xí)率的10%。batch大小為600。預(yù)訓(xùn)練了12個epoch(在Titan X GPU上,預(yù)訓(xùn)練需要一周)。
任務(wù)模型均使用AllenNLP的實現(xiàn),超參數(shù)取默認(rèn)值。在插入pair2vec前后沒有改動任何設(shè)置。預(yù)訓(xùn)練的詞對嵌入使用0.15的dropout.
問答任務(wù)
在SQuAD 2.0上的試驗表明,pair2vec提升了2.72 F1. 對抗SQuAD數(shù)據(jù)集上的試驗說明pair2vec同時加強了模型的概括性(F1分別提升7.14和6.11)。
均使用ELMo詞嵌入
自然語言推理
在MultiNLI數(shù)據(jù)集上,加入pair2vec后,ESIM + ELMo的表現(xiàn)提升了1.3.
Glockner等提出了一個領(lǐng)域外NLI測試集( arXiv:1805.02266),說明除了使用WordNet特征的KIM外,多個NLI模型在比SNLI更簡單的新測試集上的表現(xiàn)反而要差不少,說明這些模型的概括性有問題。而加入pair2vec后的ESIM + ELMo模型達到了當(dāng)前最先進水平,刷新了記錄。
順便提下,KIM的做法是現(xiàn)有研究中最接近pair2vec的。KIM同樣在ESIM模型中加入了詞對向量,但是它的詞對向量是基于WordNet手工編碼得到的。而pair2vec使用的是無監(jiān)督學(xué)習(xí),因此可以反映WordNet中不存在的關(guān)系(例如個人-職業(yè)),以及WordNet中沒有直接聯(lián)系的詞對(例如,bronze(青銅)與statue(塑像))。
詞類比
為了揭示pair2vec加入的額外信息是什么,pair2vec能夠更好地捕捉哪類聯(lián)系,論文作者在詞類比數(shù)據(jù)集上進行了試驗。
詞類比任務(wù)是指,給定詞對(a, b)和單詞x,預(yù)測滿足a : b :: x : y的單詞y。論文作者使用的是BATS數(shù)據(jù)集,該數(shù)據(jù)集包括四種關(guān)系:
百科語義(encyclopedic semantics),例如Einstein-physicist(愛因斯坦-物理學(xué)家)這樣的個人-職業(yè)關(guān)系。
詞典語義(lexicographic semantics),例如cheap-expensive(廉價-昂貴)這樣的反義詞。
派生形態(tài)(derivational morphology),例如oblige(動詞,迫使)與obligation(名詞,義務(wù))。
屈折形態(tài)(inflectional morphology),例如bird-birds(鳥的單數(shù)形式和復(fù)數(shù)形式)。
每種關(guān)系各包含10個子類別。
之前我們說過,詞類比任務(wù)是要預(yù)測滿足a : b :: x : y的單詞y,而相關(guān)詞嵌入的差很大程度上能夠反映相似關(guān)系,例如,queen(后) - king(王) ≈ woman(女) - man(男)很大程度上意味著queen : king :: woman : man。所以,詞類比問題可以通過優(yōu)化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嵌入,α為線性插值系數(shù),α=0時等價于原3CosAdd法,α=1等價于pair2vec。
下圖顯示了在FastText中插入pair2vec的結(jié)果,黃線表示派生形態(tài),棕線表示詞典語義,綠線表示屈折形態(tài),藍線表示百科語義。
我們可以看到,在所有四個類別上,在3CosAdd上增加pair2vec都取得了顯著的提升,其中百科語義(356%)和詞典語義(51%)提升尤為突出。
下表顯示了提升最明顯的10個子類別,α*為最優(yōu)插值參數(shù)。
從上表我們可以看到,在FastText嵌入提供的信號十分有限的關(guān)系上,提升尤為顯著。論文作者還觀察到,某些情形下pair2vec和FastText存在協(xié)同效應(yīng),比如,noun+less關(guān)系中,3CosAdd原本評分為4.8,pair2vec自身評分為0,但3CosAdd加上pair2vec后,評分為16。
填槽
為了進一步探索pair2vec如何編碼補充信息,論文作者嘗試了填槽(slot filling)任務(wù):給定Hearst式的上下文模式c、單詞x,預(yù)測取自整個詞匯表的單詞y。候選單詞y的排序基于訓(xùn)練目標(biāo)R(x,y)·C(c)的評分函數(shù),采用固定的關(guān)系樣本,并手工定義上下文模式和一小組候選詞x。
下表顯示了評分最高的三個y單詞。
斜體表示正確匹配
上表說明,pair2vec可以捕捉詞對和上下文間的三邊關(guān)系,而不僅僅是單個單詞和上下文之間的雙邊關(guān)系(詞嵌入)。這一巨大差別使pair2vec可以為詞嵌入補充額外信息。
消融測試
為了驗證pair2vec各組件的有效性,論文作者也在SQuAD 2.0的訓(xùn)練集上做了消融測試。消融測試表明,增強采樣和使用較深的復(fù)合函數(shù)效果顯著。
結(jié)語
pair2vec基于復(fù)合函數(shù)表示,有效緩解了詞對的稀疏性問題?;跓o監(jiān)督學(xué)習(xí)預(yù)訓(xùn)練的pair2vec,能夠為詞嵌入補充信息,從而提升跨句推理模型的表現(xiàn)。
-
編碼器
+關(guān)注
關(guān)注
45文章
3753瀏覽量
136682 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5548瀏覽量
122337 -
自然語言處理
+關(guān)注
關(guān)注
1文章
625瀏覽量
13938
原文標(biāo)題:pair2vec 基于復(fù)合詞對嵌入加強跨句推理模型
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論