Unsupervised Commonsense Question Answering with Self-Talk 閱讀筆記

來源 ACL 2020

本文提出了一種無監督的常識答案選擇方法,這種方法可以生成並且整合來自預訓練語言模型的知識

任務

multiple-choice question answering tasks. 每個樣本包含上下文cc、問題qq和幾個答案選項ai=1ka^k_{i=1}。作者一共選取了5個數據集進行實驗。示例如下:
在這裏插入圖片描述

Model

作者設計了三種模型進行實驗,下面依次介紹。

LM-only Baseline

作者把每個答案選項aia_i與上下文cc,問題qq進行結合,組成選項opti=combine(c,q,ai)opt_i=combine(c,q,a_i). optiopt_i是一句自然語言形式的文本,每個候選答案的得分score(ai)=CE(opti)score(a_i)=CE(opt_i). CECE(cross-entropy loss)的定義如下:
CE(t1...tn)=1/ni=1nlog2pLMs(tit1...ti1)CE(t_1...t_n)=-1/n \sum_{i=1}^nlog_2 p_{\Bbb L \Bbb M_s}(t_i|t_1...t_{i-1})
LMs\Bbb L \Bbb M_s是預訓練語言模型,CECE值最低的就是正確的答案。

Baseline Model with External Knowledge

每個實例都有一個clarification list: CL={cl1,...,clm}CL=\{cl_1,...,cl_m\}。每個clarification都是一個與問題相關知識的文本片段(怎麼來的在後面介紹)。因爲(作者假設)在回答某個問題時只依賴於一個clarification,所以某個候選答案的得分就是最支持該答案的clarification的分數:
score(ai)=minclCLCE(opti+cl)y=argminiscore(ai)score(a_i)=min_{cl\in CL}CE(opt_i+cl) \\y=argmin_iscore(a_i)
作者通過下圖所示的方法從三個不同類型的知識庫(ConceptNet, Google Ngrams, COMET)中生成clarification list:
在這裏插入圖片描述

Self-talk Model

這個方法的思路和上一個一樣,只不過生成clarification的方法不同。即通過用預訓練語言模型生成clarification達到從預訓練語言模型中提取知識的目的。生成clarification的過程分爲下面幾步:
在這裏插入圖片描述

  1. 根據上下文和問題前置(question prefixes 事先定義好的)生成clarification question
    每個prefix生成5個問題
  2. 生成答案(也就是clarification)
    作者使用context、clarification question和answer prefix的拼接作爲prompt來生成答案。爲每個問題都保留10個回答。

Result

不如有監督訓練的模型,但在無監督的方法中算比較好的

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