发表于ACL2018
开放领域问答任务中,以往模型主要注重建模passage和question之间的关系,却很少关注候选答案实体。本文采用收集-筛选框架,先从各个passage中选出候选答案集合,再根据候选答案集合筛选最后的答案。我认为也算是一种“从粗到细”的方法。
模型:
1.收集候选答案集合
用BiLSTM对question和passage分别建模,再利用两两内积算相似度矩阵,用question加权平均表示passage每一个位置,再和原位置表征拼接,过BiLSTM。最后利用线性变换对答案开始和结束位置分别打分,归一化得到概率。
2.答案筛选
BiLSTM+最大池化对question表征rq
word embedding+exact match+rq作为passage每个单词表征,过BiLSTM得到Sp
每个candidate的word embedding作为Sc,根据开始和结束embedding过tanh函数得到rc
candidate两两间通过tanh计算相似度,用加权平均相互表征得到rc_
最终再对passage表征:
Sp
Sp和Sc两两内积算相似度矩阵,用Sc加权平均得到Sp每个位置表征Sp_
与candidate的距离
rc
rc_
上述特征拼接,过BiLSTM+max_pooling,最后softmax输出选择概率
候选答案集合的选择对结果影响很大,但是数据只有正确答案,没有中间的候选答案集合。本文采用强化学习来训练,选择候选答案和最终输出是action,根据与答案集合的匹配度计算reward。