Paper: Unsupervised Commonsense Question Answering with Self-Talk
Link: arxiv.org/pdf/2004.0548NLP中的很多任务都需要引入背景知识,也就是一些基本常识,去年EMNLP主会上的一篇文章提出一个新方法来引入commonsense——‘self-talk’,简单来说就是提出问题回答问题。模型本身并不复杂,在结果上和之前的baseline相比稍好一些,但也不是碾压式超越。不过这篇文章重点在于提出了一个新的思路,一个更符合人类思考方式的思路。目前主流的方法是预训练语言模型和引入知识库,这篇文章中作者提出了一个无监督模型,用一个LM(language model)给答案打分,以及一个LM作为知识源。整个过程是基于提问的发现学习。我们来看下图中的例子,这个问题是,因为Brett在大学期间找了份实习然而Ian没有,所以谁在毕业后更慢找到了实习。(这是个选择题,选项是Brett和Ian)。1) 作者对于不同的QA任务提前整理了question prefix,如图中的‘What is the purpose of’2) 然后对于每个prefix使用Nucleus采样生成五个问题,一个问题最长是6个token,例如图中生成的’What is the purpose of internship?’3) 接下来对每一个问题生成多个答案,每一个question prefix都对应一个answer prefix,例如‘What is the purpose of’ 对应’The purpose of is’, 结合文本,第二步得到的问题和answer prefix得到十个答案。在得到背景知识后,背景知识和文本加起来(如下图)一起预测答案,损失函数最小的就是被选中的答案。下图是实验结果,一共是在六个benchmark上进行评测,标注颜色部分是作者的实验结果部分,除了上述的方法,作者一开始还介绍了LM baseline和external knowledge baseline,self-talk是针对这两个baseline的一个融合和改进。以上是这篇论文的主体内容了,这篇长论文在后面还探讨了有用的clarification和不利的clarification,有兴趣的朋友可以仔细去看看~