论文阅读笔记(五)【ACL 2021】Answering Ambiguous Questions through Generative Evidence Fusion and Round-Trip P
通過生成性證據融合和往返預測回答模糊問題
關鍵詞: 生成性證據融合; 往返預測; 模糊問題
摘要
一般的開放域QA問題: 在開放域問答中,問題很可能是模棱兩可的,因為用戶在制定問題時可能不知道相關主題的范圍。因此,系統需要找到問題的可能解釋,并預測一個或多個可能的答案。當發現多個看似合理的答案時,系統應為每個答案重寫問題以解決歧義。所以分為兩步: 第一是找答案; 第二是預測答案; 第三是多個答案時,需要重新檢查問題;
我們的方法:第一和二是找答案和預測答案: 模型聚集和組合來自多個段落的證據,以自適應地預測模糊問題的單個答案或一組問題-答案對;我們提出了一種新的往返預測方法,以迭代方式生成我們的模型在第一次傳遞中未能找到的其他解釋,第三是:然后驗證并過濾出不正確的問答對,以獲得最終的消歧輸出;
模型:REFUEL
數據集:AMBIGQA (NQ-OPEN and TriviaQA. )
提出的往返預測是一種模型不可知的通用方法,用于回答不明確的開放域問題,它改進了我們一些基線模型。
Introduction
開放域問題是使用不同主題的段落集合回答問題的任務;
難點: 開放域問題的起源是問題的歧義性
而這個難點問題的答案就是自適應預測答案,當有多個答案時,預測一組同樣合理的答案。 當預測一組多個答案時,應該提供一個明確的問題重寫來澄清每個解釋。
SpanSeqGen模型將該問題分為兩個任務:答案預測和問題消歧;
答案預測:他們使用提示問句首先檢索和重新排序段落,然后采用BART預訓練的Seq2seq來生成所有可能的答案,條件是提示問題和前8個段落的連接。
問題消歧: 基于BART,他們首先在大規模開放領域QA數據集NQ-OPEN上預訓練一個問題生成模型,生成給出答案和前8段的問題。然后他們將其作為一個問題消歧模型進行微調,以生成基于提示問題、答案和段落的消歧問題
但是上面的模型有三個缺點: 第一是只選擇8個相關段落可能排除了信息量大的段落; 第二是NQ-OPEN上的問題生成前訓練與AMBIGQA上的問題消歧微調不匹配;第三是與地面真實數據相比,SPANSEQGEN預測的平均答案數量要小得多
針對上面的問題,第一,REFUEL使用fusion-decoder在編碼器中單獨處理每個段落,在解碼器中融合它們的編碼,比SpanSeqGen多了12倍的段落(我們的為100); 第二,我們提出了一個刪除標記的訓練前任務,通過隨機刪除每個問題的信息范圍,將NQ-OPEN轉換為一個**“模糊的”QA設置**。因此,訓練前的任務和微調任務是一致的,同時加入了基于插入的加權損失來強調新插入的標記; 第三,提出雙向預測方法,以發現REFUEL在第一遍中未能預測到的其他解釋。我們不斷地將生成的問題輸入REFUEL,直到我們的模型沒有預測到新的答案。
貢獻:
對于顯著推動在回答模糊的問題的現狀,可以總結如下:
- 我們提出了一個證據聚集的方法,可以有效地使用大量的文章,以揭示更多的候選解釋的歧義問題。
- 我們提出了一個標記刪除的前訓練任務,以減少前訓練與問題消除的微調之間的不匹配。基于插入的加權損失進一步有助于捕獲與答案相關的約束。
- 我們提出了一種雙向預測方法,以發現在第一次預測中錯過的更多解釋,并使用基于條件概率的濾波方法進一步細化。
REFUEL
該方法分為三個步驟:
2.1文章檢索與重新排序
使用DPR密集通道檢索器進行檢索。 首先,將所有的維基百科頁面分成100個標記(應該是一種標準)的段落,產生了24M個段落;然后DPR將所有的段落映射成d維的向量,計算提示問題的表示,并檢索出與問題向量最接近的N個通道(我們使用N=1000)。
輸入提示問題和N個段落的連接,我們將Bert作為我們的重新排序器,允許提示問題和段落之間的Cross-attention,通過CLS和一個線性層獲得相關分數。重排序后,QA對兒生成模型將K個通道(K = 100)作為輸入。
2.2單通道QA對生成
單道QA對生成模型的步驟包括回答預測模塊和問題消歧模塊。
首先,將重排序的段落和提示問題QpQ^pQp一塊輸入,回答預測模塊生成一個或者多個模棱兩可答案A1,...,AmA_1, ..., A_mA1?,...,Am?。 如果找到了多個貌似合理的答案,提示問題就被視為歧義問題; 這樣問題消歧模塊會為該歧義問題的每個預測答案AiA_iAi?生成消歧問題QidQ_i^dQid?。
2.3 Round-Trip Prediction
現有的工作預測的答案比實際情況少47%,因此,我們提出了雙向預測,其中包括雙向生成步驟和語言模型驗證步驟。
Round-Trip Generation:保持檢索到的相同段落,我們不斷地將生成的消除歧義的問題輸入Answer Prediction模塊,以檢查是否生成了任何新的答案,并生成相應的消除歧義的問題,直到沒有新的預測答案。就像在圖2中,(Q1d,A1)(Q_1^d, A_1)(Q1d?,A1?)和(Q2d,A2)(Q_2^d, A_2)(Q2d?,A2?)是經過第一個預測通道后,兩對經過模棱兩可的問題QpQ^pQp后的消除歧義的QA。當再次將Qd1Q_d^1Qd1?輸入到答案預測模塊時(第一輪雙向預測),我們發現除了之前預測的答案A1A_1A1?之外,還預測了一個新的答案候選人A3A_3A3?。然后我們生成相應的問題Qd3Q_d^3Qd3?。 這個循環一直持續到沒有新的預測答案
語言模型驗證: 通過往返生成(Round-Trip Generation),我們從模糊的提示問題中生成一組QA對,但其中一些是不正確的。這里我們采用一個驗證過程來過濾掉這些不正確的預測。
如何消除? 最近的工作合成QA對生成使用了EM(Exact Match (EM)驗證)方法來刪除QA對。 EM模型是:訓練一個QA模型作為驗證模型,當預測模型的答案是(a′≠a)(a' ≠ a)(a′?=a),我們會刪除預測(q, a)。然而,這種EM驗證方法只適用于事實類閱讀理解任務如SQuAD,在這個任務里QA模型具有接近人類的準確性,從而不會錯誤地過濾掉太多正確的QA對。
不是使用硬過濾,而是采用“語言驗證模塊LM”。LM驗證是一種基于條件概率的軟過濾QA對的方法。在LM驗證中,我們首先利用AMBIGQA(二義性QA數據集)中的消歧QA對訓練條件語言模型。條件語言模型被訓練來估計gold消除歧義問題的答案的可能性。一旦訓練完成,它就被用來給REFUEL生成的QA對(q, a)打分,這是給定問題q和段落的答案的可能性,
其中NaN_aNa?是生成的答案的長度,最后,我們根據LM評分對所有預測的QA對重新排序,并根據閾值Th = 6.1丟棄QA對。閾值是根據開發集調整的。
3單通道QA對生成細節
這一部分是對上一部分中第二部分的詳細解釋!
3.1 Answer Prediction(查看問題和答案的匹配度)
上面的左側圖片!
SPANSEQGEN :提示問題和排名最高的段落串聯成單個序列進行BART編碼,這受到BART最大輸入序列長度(1024子詞,相當于8個段落)的極大限制。因此,與GroundTruth相比,SPANSEQGEN發現對提示問題的解釋更少
Fusion-in-Decoder: 為了確保檢索和重新排序的段落的廣泛覆蓋,我們的答案預測模塊使用fusion - decoder方法(Izacard和Grave, 2020),這允許我們縮放處理段落的數量。
具體實現過程: 將提出的問題和它對應的每個段落concat后分別獨立地放入BARTAPBART_{AP}BARTAP?中,然后,所有經過encoder的token-level的表示被連接到一個單一序列中,BARTAPBART_{AP}BARTAP?decoder對所有通道進行關注,以聚合和合并證據。最后,BARTAPBART_{AP}BARTAP?decoder生成一個接一個的a sequence of plausible answers,由[SEP]分隔。 因為這里沒有使用交叉通道的注意力,所以才可以大大的減少復雜度,才可以比SPANSEQGEN多出12倍的輸入通道(多大100個,16000個詞)。
考慮到AMBIGQA是一個只有10k訓練樣本的小數據集,我們首先對BARTAPBART_{AP}BARTAP?在 NQ-OPEN進行預訓練,以預測一個答案,然后在AMBIGQA上對它進行微調,以預測一個或多個答案。
3.2 Question Disambiguation
如果前一個模塊產出了多個可信的答案,那么就會激活消歧模塊。 這里通過對每個預測答案生成提示問題,從而達到消歧重寫的目的。由于我們不知道哪個輸入段落是得出預測答案的關鍵證據,問題消歧模塊將答案預測階段的相同段落作為輸入。與答案預測模塊BARTAPBART_{AP}BARTAP?類似,我們的問題消歧模塊BARTQDBART_{QD}BARTQD?以同樣的方式處理輸入,但是不同的是BARTQDBART_{QD}BARTQD?encoder額外的將BARTAPBART_{AP}BARTAP?的輸出AiA_iAi?同樣作為輸入(見上圖即可得知了)。
Token-Deletion Pre-training(刪除標記的預訓練): 與Answer Prediction類似,我們也利用大規模的NQ-OPEN數據進行預訓練,生成一個可以在給定段落和答案后給出會給出問題的模型,然后對其進行微調,以便在給定提示問題、答案和段落的AMBIGQA上消除問題。然而, the question generation pre-training task中沒有所需要的輸入問題來消除歧義,導致了前訓練和微調之間的不匹配。消融術研究表明,這種預訓練方法對問題消歧幾乎沒有幫助。
為了解決前訓練和微調之間的不匹配, 我們提出了TokenDeletion前訓練任務。其思想是在訓練前構造新的合成的模棱兩可的問題,以減少不匹配。
方法:第一步:給定一個來自NQOPEN的問題QQQ,我們隨機刪除其中的一個信息跨度,產生部分問題QsQ^sQs。這個局部問題的設計是為了模擬微調階段的模糊問題QpQ^pQp。然后,第二步:Token-Deletion Pre-training(刪除標記的預訓練)目標是從部分問題QsQ^sQs、答案和段落中恢復完整的問題QQQ。通過這種方式,tokendeletion預訓練將微調階段對準。
提示問題通常需要通過添加新的約束來重寫,包括事件/實體引用、屬性、回答類型等。例如,圖1中消除歧義的問題q1在歧義提示問題之后插入“由一個組合的團隊”。因此,我們將信息性span定義為至少包含以下詞性標簽之一的span: ’ ADJ ', ’ NOUN ', ’ NUM ', ’ PROPN ', ’ SYM ', ’ VERB '。跨度長度在[1,5]中均勻采樣。
Insertion-based加權損失(基于插入的加權損失):
由于消除了歧義的問題是對歧義提示問題的一個小修改,大多數標記都可以直接從輸入中復制。這里我們引入了一種基于插入的加權損失方法,將重點放在消歧問題的新添加標記上,這可能是消歧提示問題的關鍵。給定提示問題QpQ^pQp,我們從消歧問題Qd:qinQ^d: {q^{in}}Qd:qin中找到新插入的令牌。對BARTQDBART_{QD}BARTQD?進行微調的最后損失是,所有問題標記的原始負對數可能性損失的組合,加上一個增加插入標記可能性權重的術語:
其中Lnll=∑i=1nlog?(qi∣A,Qp,Psg?)\mathcal{L}_{n l l}=\sum_{i=1}^{n} \log \left(q_{i} \mid A, Q^{p}, \text { Psg }\right)Lnll?=∑i=1n?log(qi?∣A,Qp,?Psg?),n是被消除了歧義的問題的tokens的數目,λ=3.5\lambda{ = 3.5}λ=3.5是一個超參數調整開發集(dev.set.)
4. Experiments
4.1 Experimental Setup
Dataset: AMBIGQA數據集: 為了解決開放領域QA中問題的歧義性而構建的,它從NQ-OPEN中取樣了14,042個問題,這是一個大規模的開放領域的QA數據集,每個問題只有一個答案, 并要求注釋者搜索、導航和閱讀多個維基百科頁面,以找到盡可能多的解釋,結果,每個問題都被注釋為一個答案或多個消除歧義的QA對,這取決于可以找到多少種解釋。Train、development和test集的大小是10036, 2002, 2004。在AMBIGQA中,每個問題平均有2.1個不同的答案。為了測試REFUEL在任何可能模棱兩可的問題上的泛化能力,我們還在兩個開放域QA數據集上評估了它:NQ-OPEN和TriviaQA.
Implementation Details在附錄a中。我們在https: //github.com/amzn/refuel-open-domain-qa上發布我們的模型和實驗的源代碼
評價指標: 讓(q1,a1),...,(qm,am)(q_1, a_1),...,(q_m, a_m)(q1?,a1?),...,(qm?,am?)表示m對QA預測。(q^1,a^1),…,(q^n,a^n)\left(\hat{q}_{1}, \hat{a}_{1}\right), \ldots,\left(\hat{q}_{n}, \hat{a}_{n}\right)(q^?1?,a^1?),…,(q^?n?,a^n?)是n個gold QA對。每個預測的QA對(qi,ai)(q_i, a_i)(qi?,ai?)的評估順序是對所有黃金QA對的正確性評分:ci=1(ai=a^j)f(qi,q^j)c_{i}=\mathbb{1}\left(a_{i}=\hat{a}_{j}\right) f\left(q_{i}, \hat{q}_{j}\right)ci?=1(ai?=a^j?)f(qi?,q^?j?),其中f(qi,q^j)f(q_i, \hat{q}_j)f(qi?,q^?j?)是問題的相似函數。 (q^j,a^i)(\hat{q}_{j}, \hat{a}_{i})(q^?j?,a^i?)并不會用來評估其它的預測QA對,因為它用于(qi,ai)(q_i, a_i)(qi?,ai?),總體正確性由預測與參考之間的F1計算
F1ans(all)F1_{ans}(all)F1ans?(all): 在Answer prediction子任務中,所有的例子都會被評估,在這其中,fff函數總是產出1。 這個度量表示為F1ans(all)F1_{ans}(all)F1ans?(all)。
F1ans(multi)F1_{ans}(multi)F1ans?(multi): 而對于具有多個黃金QA對的例子子集,分別在答案預測子任務和問題消歧子任務進行了評價。僅在這個子集上計算的答案預測指標記為F1ans(multi)F1_{ans}(multi)F1ans?(multi)。
BLEU和EDIT-F1: 為了評估問題消除歧義的表現,BLEU和EDIT-F1用于函數fff,被標注為F1BLEUF1_{BLEU}F1BLEU?和F1EDIT?F1F1_{EDIT-F1}F1EDIT?F1?。 EDIT-F1計算從提示問題到預測消除歧義問題的添加和刪除unigrams的F1分數。
4.2 Experimental Results
Main Results.表1顯示了開發和隱藏測試集上的性能。即使沒有雙向預測,REFUEL(無RTP)在答案預測子任務和問題消歧子任務上都比SPANSEQGEN表現得更好。此外,通過發現更多更好的QA對,往返預測確實進一步提高了性能,開發集中每個提示問題的QA對從1.55對提高到了1.72對。第4.3節對往返預測進行了全面的分析。
“REFUEL w/o RTP”是不使用往返預測的單通道預測模型。
Controlled Comparison with SPANSEQGEN
除了雙向預測外,REFUEL在輸入通道方面比SPANSEQGEN有兩個優勢:(1)我們檢索前N=1000個通道(而不是SPANSEQGEN的100個通道),在前100個通道中獲得更高的答案召回率(2)REFUEL需要K=100個輸入通道,而SPANSEQGEN最多需要1024個子單詞(K≈8)。為了建立受控和公平的比較,我們刪除了REFUEL的往返預測部分,并使用與SPANSEQGEN (N=100, K=8)相同的輸入通道給REFUEL (w/o RTP)喂食。結果如表2所示。
其中N和K分別表示的是Development集中的檢索/重排序的數量和QA輸入的段落數。
#QAs: 每個提示問題的預測QA對的平均數量;
- :我們復制的結果
結果表明: (1)在相同的設置下,我們的結果還是要好于SPANSEQGEN (2)我們的模型的效果還是得益于檢索階段的answer recall以及允許更多的輸入通道。
對其他數據集的泛化: 在NQ-Open和TriviaQA上評估了我們的模型,并且沒有在這些數據集進行微調。當REFUEL預測多個答案時,我們取第一個預測答案進行EM評估;我們還引入了一種新的Oracle EM度量,如果黃金答案與當前問題的任何預測答案相匹配,則認為預測是正確的;下表顯示,即使沒有特定于數據集的微調,REFUEL也具有競爭性的性能。當REFUEL在NQ-OPEN和TriviaQA中發現問題的多種解釋時,我們在4.4節中手動檢查消除了歧異的QA對的質量。
4.3往返預測的效果
我們將我們提出的往返預測(往返預測=往返生成+ LM 驗證)與幾種替代方法進行了比較,并研究了其對SPANSEQGEN和DPR Reader等其他模型的泛化能力。結果下表所示。
Round-Trip Generation Only:我們通過只對REFUEL進行往返生成來研究核查過程的必要性。結果表明,Round-Trip Generation可以多生成33.5%的QA對,但較低的F1ans(ALL)F1_{ans}(ALL)F1ans?(ALL)表明,當提示問題不存在歧義時,該策略可能會產生過多的QA對。因此,驗證過程對于刪除一些不正確的QA 是必要的。
LM Verification vs. EM Verification:如2.3節所述,我們比較了現有的EM Verification方法與我們的LM Verification。結果表明,EM Verification刪除了太多的QA對——剩余的QA對的數量(1.43)甚至比不做往返預測(1.55)還要少。他證實了我們在2.3節中的直覺,即EM Verification并不適合于開放領域的QA任務,因為它在開放域問題上表現性能差。
對其他模型的歸納: 我們表明,通過在我們復制的基線模型DPR Reader和SPANSEQGEN上使用往返預測,往返預測是一種與模型無關的通用方法,用于回答可能模棱兩可的開放域名問題。在雙向預測的幫助下,DPR Reader和SPANSEQGEN生成了11.7%和12.3%的QA對,這導致整體性能提高了3.7%和2.1% (Comb)。
4.4 Human Evaluation
由于在AMBIGQA中收集的答案不一定是詳盡的,所以有可能模型生成了正確的解釋,但在AMBIGQA中卻遺漏了。因此,我們雇了3個工人來評估生成消除歧義的問題和檢索段落的答案的正確性。 令(q1,a1),…,(qn,an)(q_1, a_1),…,(q_n, a_n)(q1?,a1?),…,(qn?,an?)對于同一提示問題生成的n個QA對,我們定義了兩級正確性如下: #C-QAs: (q_i, a_i)被認為是正確的,如果aia_iai?是qiq_iqi?的正確答案; #CD-QAs:(q_i, a_i)被認為是正確的;(1)aia_iai?是qiq_iqi?的正確答案并且(2)任何aj(j≠i)a_j(j≠i)aj?(j?=i)是一個qiq_iqi?的錯誤答案 #CD-QA是用來檢查消歧問題的正確性的,因為模棱兩可的問題可能有多個有效答案。我們從每個QA對的3個注釋者那里獲得大多數判斷。對于每個數據集,我們隨機抽取50個具有多個預測答案的提示問題,并在**#CD -QA中應用QA交換策略,共產生960個問題-回答-段落三元組。表5的結果顯示REFUEL(不帶RTP)在#CD -QA**上比SPANSEQGEN正確生成的QA對多113%。此外,雙向預測(RTP)可以在所有數據集中找到更正確的解釋。
總結
以上是生活随笔為你收集整理的论文阅读笔记(五)【ACL 2021】Answering Ambiguous Questions through Generative Evidence Fusion and Round-Trip P的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dlib 怎么安装vs2017_win1
- 下一篇: python分段函数图像画法_我想用Py