动机
高质量的训练数据收集费时费力,虽然Lewis等人[1]使用无监督机器翻译的方法解决该问题,但是该方法有许多缺点,如生成的问题于答案之间有较多的词汇重复;答案类型局限于命名实体或者名词短语,限制学得模型的覆盖度。因此,作者提出两种方法解决上述问题。
贡献
- 提出REFQA数据集,即使用维基百科的陈述句及其对引用文档来生成<问题,上下文,答案>三元组。
- 利用现有QA模型对REFQA数据集先过滤,再改善,然后迭代执行,实验证明该方法能大幅度提升模型性能。
- 实验证明该模型比其他无监督模型在SQuAD1.1和NewsQA上的性能都要好,并且能够用于问答的少样本学习。
模型
REFQA数据集的构建包括两步,即上下文和答案生成以及问题生成。其中,问题生成依然首先需要将陈述句变成完形填空类型句子Cloze Question,然后再将其转化为自然问题。
上下文和答案生成
上下文和答案生成使用维基百科中的陈述句及其相应引用的文档。将引用的文档作为上下文,然后从对陈述句抽取子句,再从陈述句中抽取命名实体作为候选答案。特别地,成为候选答案的条件是陈述句中的必须和上下文中的相同,然后记录其在上下文中的位置。如果候选答案出现在上下文中多次,则选择上下文周围与陈述句重叠最大的位置,详见图1。
问题生成
之后采用类似Lewis等人提出的cloze问题生成方法,再利用依存重构的方法来生成自然问题,如上图所示。即先得到cloze问题的依存树,先将包含答案的右结点保留,然后将解析树的结点进行移动,即如果孩子节点的子树包含答案结点,则将孩子结点移动到第一个孩子结点。之后再对重构的树进行“中序”遍历,利用Lewis等人提出的规则方法用wh*替代答案。
之后则是迭代改善数据模型:
即先从获得的REFQA数据集中采样一部分数据初始化QA模型,在实验中采用的则是BERT-large(whole word mask)。再使用训练的QA模型对剩下分成多个集合的数据分别进行推理,得到概率必须满足置信度阈值的条件的预测答案。如果预测答案与原始答案相同,或者是原始答案的一部分,则保留原始答案,生成过滤后的三元组;若不同,则使用预测答案作为新的答案候选,然后根据上下文再找包含其的陈述句,根据该陈述句用之前的方法生成自然问题,之后将新的候选答案,新的问题以及上下文三元组作为改善的数据,和过滤的三元组数据集一起组成新的训练数据来继续训练QA模型。
文章标题
Harvesting and Refining Question-Answer Pairs for Unsupervised QA[2](ACL 2020)
参考文献
[1] Lewis P, Denoyer L, Riedel S. Unsupervised question answering by cloze translation[J]. arXiv preprint arXiv:1906.04980, 2019.
[2] Li Z, Wang W, Dong L, et al. Harvesting and Refining Question-Answer Pairs for Unsupervised QA[J]. arXiv preprint arXiv:2005.02925, 2020.
If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !