把数据集刷穿是什么体验?MetaQA已100%准确率
文 | 煉丹學(xué)徒
編 | 小軼
開始煉丹以來,估計很多小伙伴都和我一樣幻想過直接把數(shù)據(jù)集做到 100% 準(zhǔn)確率,然后大吼一聲:這數(shù)據(jù)集,我做到頭了!
然而愿望終究是愿望。大多時候,看著自己手頭上用了渾身解數(shù)才提了零點幾個點的數(shù)據(jù)集,只想把它換掉。體諒到我們沒吃過豬肉——最近清華大學(xué)李涓子組發(fā)表了一篇多跳問答工作TransferNet,怕是可以帶大家看看豬跑了。
把數(shù)據(jù)集刷穿究竟是一種什么體驗?出于好奇心,煉丹學(xué)徒帶大家一起看一看。
論文題目:
TransferNet: An Effective and Transparent Framework for Multi-hop Question Answering over Relation Graph
論文鏈接:
https://arxiv.org/pdf/2104.07302.pdf
Arxiv訪問慢的小伙伴也可以在 【夕小瑤的賣萌屋】訂閱號后臺回復(fù)關(guān)鍵詞 【0518】 下載論文PDF~
多跳問答
任務(wù)定義
簡單來說多跳問答是指:針對一個文本問題,在給定關(guān)系圖上通過多個關(guān)系邊找到答案的過程。
詳細定義如下:
記關(guān)系圖為 ,圖中實體為 ,關(guān)系邊為 ;一共有 個實體。 可以表示為 的矩陣。這個矩陣中的 表示頭實體 到尾實體 之間的關(guān)系,是標(biāo)簽格式關(guān)系圖里定義的關(guān)系標(biāo)簽,或者文本格式關(guān)系圖里檢索出來的句子。多跳問答則是:給定問句,從中的話題實體作為起點,經(jīng)過某些邊,達到目標(biāo)答案實體 的過程。
舉例說明
這個例子里,提問“ 比爾蓋茨的夫人創(chuàng)建了哪個組織 ”(醒醒,比爾蓋茨和夫人已經(jīng)離婚了)。我們首先定位到話題實體“ 比爾蓋茨 ”,然后通過“ 的夫人 ”找到實體“ 梅琳達”,再通過“ 創(chuàng)建 ”關(guān)系找到答案“ 比爾及梅琳達·蓋茨基金會 ”。
我們看到:關(guān)系圖里左邊的例子是標(biāo)簽格式的關(guān)系圖(也稱作知識圖譜,是人工定義的實體和關(guān)系圖),右邊的例子是文本格式的關(guān)系圖,可以從文本庫中通過實體名字的共現(xiàn)檢索出來。標(biāo)簽格式的更準(zhǔn)確,標(biāo)注代價更大,文本格式的則相反。
主流做法
常見的多跳問答有兩個主流做法。
第一種主流做法,是從起始的實體開始預(yù)測 關(guān)系-實體序列 ,最終得出答案。好處是:從起點實體到目標(biāo)回答實體的關(guān)系路徑是顯式預(yù)測出來的,推理過程可解釋。壞處是:我們的監(jiān)督語料只有答案的目標(biāo)實體,而從起點實體到目標(biāo)實體的路徑是沒有的,因此是弱監(jiān)督問題,搜索空間太大,存在收斂問題,因此雖然預(yù)測結(jié)果可解釋,但是可能效果不如第二種主流做法。其次,第一種主流做法往往針對標(biāo)簽格式的關(guān)系圖提出,如果給定的知識是檢索出來的文本,很多技術(shù)無法使用。
第二種主流做法是把起始實體和附近的關(guān)系圖喂給模型,直接使用 圖神經(jīng)網(wǎng)絡(luò) (GNN, Graph Neural Networks)預(yù)測目標(biāo)實體作為回答。好處是:監(jiān)督學(xué)習(xí)的場景,直接讓模型去從附近的關(guān)系網(wǎng)絡(luò)預(yù)測目標(biāo)答案,效果比較好。目前SOTA的方法就是這么做的。缺點是:如何從起始實體預(yù)測到目標(biāo)實體的推理過程是黑箱,模型可能在小區(qū)域的圖關(guān)系里進行了復(fù)雜的運算。
TransferNet
看完主流做法,我們直覺地想到:
能否提出一個多跳問答的解法,既可以像第一種做法中預(yù)測出來關(guān)系路徑一樣可解釋,又像圖神經(jīng)網(wǎng)絡(luò)一樣得到不錯的結(jié)果。
如果可以同時解決標(biāo)簽格式,又可以解決文本格式的關(guān)系圖問答,就更好了!
TransferNet就針對這兩個痛點設(shè)計了模型:
思路
對于 個實體 , 的關(guān)系 的圖 ,問題 ,首先把起始話題實體的分?jǐn)?shù)置為1,其他實體分?jǐn)?shù)置為0,將此分?jǐn)?shù)記為 。在每一跳后都預(yù)測當(dāng)前關(guān)系得分,根據(jù)關(guān)系的預(yù)測概率,更新當(dāng)前第t跳結(jié)束后的實體得分,直到最大跳數(shù)。預(yù)測該問題的跳數(shù),按跳數(shù)的概率加權(quán)每一跳 得分作為實體的最終得分。
首先把起始話題實體的分?jǐn)?shù)置為1,其他實體分?jǐn)?shù)置為0,將此分?jǐn)?shù)記為
每一跳后都給當(dāng)前關(guān)系打分。根據(jù)關(guān)系得分,更新當(dāng)前第t跳結(jié)束后的實體得分,直到最大跳數(shù)。
預(yù)測該問題的跳數(shù),并按跳數(shù)的概率加權(quán)每一跳 得分作為目標(biāo)實體的最終得分。
流程
下述所有都是可訓(xùn)的參數(shù)
0)初始化:每個實體的分?jǐn)?shù),初始t=0,只有問題q中的主體實體分?jǐn)?shù)為1,其他實體都為0。并將問題先過一遍編碼器獲得一個初始問題編碼 和單詞隱狀態(tài)序列
1)問題編碼:用 和 獲得每一跳時的 ,真正后面用的時候用的每一跳時候的問題編碼是這個。
可以簡單的理解為,第t跳時,用對應(yīng)的特定函數(shù)去計算對的注意力,然后把加權(quán)過來代表此跳的問題編碼。
3)關(guān)系得分:使用當(dāng)前跳問題的編碼 計算關(guān)系得分 。對于標(biāo)簽關(guān)系圖和文本關(guān)系圖,計算的方法是不一樣的。這一步中,其實就是用 去計算每個關(guān)系的分?jǐn)?shù),然后匯總到 所有實體的關(guān)系矩陣中:
4)實體得分:通過3)中計算得到的實體-實體的關(guān)系得分,上一條的每個實體分?jǐn)?shù),計算此跳結(jié)束后每個實體的分?jǐn)?shù)。重復(fù)上述步驟,直到超參最大跳數(shù)。
5)總路徑得分:在4)中,我們得到了每一跳后的實體分?jǐn)?shù)。然后我們預(yù)測一下這個問題q是一個幾跳的問題。此處跳數(shù)的預(yù)測也是概率加權(quán)使用的。
此處,即為問題跳數(shù)的概率分布。最終,里分?jǐn)?shù)最高的實體作為答案進行輸出。
細節(jié)
在流程4)中,由 和 計算 時,分?jǐn)?shù)可能會超過 1,這會導(dǎo)致梯度爆炸和 錯誤的優(yōu)化方向。為了保證 中所有實體的分?jǐn)?shù)都可以保持在 ,TransferNet 采用截斷函數(shù) Trunc 施加在每次 的計算之后。
在流程3)中,需要由問題編碼 計算關(guān)系分?jǐn)?shù)矩陣 。對于標(biāo)簽格式的關(guān)系圖,因為關(guān)系 是固定的,所以可以直接計算每種關(guān)系的分?jǐn)?shù) ,如果關(guān)系之間不是互斥的,則可以把 替換為 。則實體關(guān)系分?jǐn)?shù)矩陣中實體 和 之間的關(guān)系分?jǐn)?shù)由連接他倆之間的所有關(guān)系分?jǐn)?shù)求和或者求極大值得到。對于文本格式的關(guān)系圖,假設(shè)實體 和 有 個句子 r,則關(guān)系分?jǐn)?shù)矩陣 的計算與標(biāo)簽格式的類似,為:
此處,為元素對應(yīng)位置的點乘。
文本類型的關(guān)系圖中,可能文本的描述在處理成關(guān)系后存在偏差。比如,Harry Potter, <sub> was published in <obj>,XXX文本關(guān)系,如果XXX是United Kingdom,那么<sub> was published in <obj>表達的意思是在何處發(fā)表;如果XXX是1997,那么<sub> was published in <obj>描述的是在何時發(fā)表的關(guān)系。為了區(qū)分這種相同文本,不同含義的情況,TransferNet提出額外的語言遮蓋預(yù)測。所提出的遮蓋預(yù)測分?jǐn)?shù)如下:
是所提出的遮蓋預(yù)測分?jǐn)?shù)。在流程5)中,把文本類型的預(yù)測結(jié)果修改為 。 為元素對應(yīng)位置的點乘。
實驗
數(shù)據(jù)集
MetaQA:將wiki-movies的單跳問答拓展到多跳問答的數(shù)據(jù)集,包含400k問題,最多三跳,包含43k實體,9種關(guān)系,135k三元組數(shù)據(jù)圖。TransferNet也使用了基于WikiMoviews的文本關(guān)系圖問答數(shù)據(jù)集。
WebQSP:基于Freebase,包含一跳和兩跳問答,使用標(biāo)簽格式的關(guān)系圖,1.8m實體,572關(guān)系類型,5.7萬條關(guān)系三元組。
CompWebQ:WebQSP的延伸版本。
標(biāo)簽類型關(guān)系圖結(jié)果
我們期待的刷穿數(shù)據(jù)集就出現(xiàn)在上表的TransferNet結(jié)果MetaQA多跳問答。
文本類型關(guān)系圖結(jié)果
上表中,左側(cè)是純文本格式,右側(cè)是在純文本數(shù)據(jù)基礎(chǔ)上,隨機選取50%的標(biāo)簽類型數(shù)據(jù)添加進關(guān)系圖。所提升的效果,是因為文本數(shù)據(jù)集中,存在關(guān)系的部分缺失。
可解釋性
因為在每一跳的更新里,對目標(biāo)實體進行0~1的評分,因此分?jǐn)?shù)越高,我們越確定這一跳的實體確信度。其次,每一跳的更新也是通過關(guān)系矩陣進行的,其關(guān)系路徑是可解釋的。
總結(jié)
本篇論文我們一起看了多跳問答的新工作TransferNet。論文思路清楚,效果提升明顯。此外,我們跟TransferNet一起體驗了一把數(shù)據(jù)集刷穿的感覺~
希望小伙伴們可以向TransferNet學(xué)習(xí),一起刷穿數(shù)據(jù)集。
尋求報道、約稿、文案投放:
添加微信xixiaoyao-1,備注“商務(wù)合作”
后臺回復(fù)關(guān)鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復(fù)關(guān)鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
總結(jié)
以上是生活随笔為你收集整理的把数据集刷穿是什么体验?MetaQA已100%准确率的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 训练效率低?GPU利用率上不去?快来看看
- 下一篇: 重磅!吴恩达家的NLP课程发布啦!