Skip to content

Match-LSTM and Answer Pointer

📅 发表于 2018/05/09
🔄 更新于 2018/05/09
👁️ 次访问
📝 0 字
0 分钟
机器阅读理解
#机器阅读
#论文笔记
#Match-LSTM
#Pointer Net

最初的Match-LSTM阅读理解模型。

论文地址:Machine Comprehension Using Match-LSTM and Answer Pointer

背景

阅读理解任务

后面会详细补充。

传统解决问答的方法:语言分析、特征工程等,具体包括句法分析、命名实体识别、问题分类、语义分析等。

Squad数据集

  • 答案是文章中出现的任意长度片段
  • Wiki文章为主
  • 众包人工标注产生
  • 每个问题3人标注,降低了人工标注误差
  • 数量较大:500多篇文章,2万多个段落,10万个问题
  • 鼓励用自己的语言提问

Match-LSTM

1. 文本蕴含任务

一个前提集合P,一个假设H。去预测P里是否能蕴含出H。

2. Match-LSTM

有K个前提{P1,,PK},1个假设H。假设的长度为m。遍历假设的每一个词汇hi

  • hi处,利用注意力机制,综合K个前提,得到一个向量pi

  • 聚合匹配[hi,pi]一起,给到LSTM

其实类似于Attention-Based NMT的解码过程。

Pointer-Net

从一个输入序列中,选择一个位置作为输出。

  • 序列模型:选择多个位置,就组成一个序列
  • 边界模型:选择开始和结束位置,中间的片段是答案

模型

段落P有m个单词,问题Q有n个单词。

LSTM编码层

单向LSTM编码

Hp=LSTM(P),Hq=LSTM(Q)

取每一时刻的隐状态,得到对文章和问题的编码。HpRm×h,HqRn×hh是编码的维度。

Match-LSTM层

这一层实际上是一个LSTM,输入依次是P中的各个单词pi。每一时刻,利用注意力机制计算相对应的Q的编码。

问题--前提,段落--假设,看问题蕴含P的哪些部分

先计算注意力权值

Gi=tanh(WqHq+(Wphip+Wrhi1r+bp)eQ)αi=softmax(wTGi+beQ)

利用注意力机制,计算所有Q基于当前pi注意力,把注意力和hip拼接起来

zi=[hip,Hqαiattention]

把match后的结果,输入到LSTM,

hir=LSTM(zi,hi1r)

定义从右向左,得到hir。最终,拼接两个方向的向量,得到

Hr=[Hr,Hr]Rm×2h

Answer-Pointer层

输入Match-LSTM层对Passage的编码结果Hr,输出一个序列。

序列模型

不断生成一个序列a=(a1,a2,),表示P中的位置。

在P的末尾设置一个停止标记,如果选择它,则停止迭代。新的H¯rR(m+1)×2h

1、计算注意力权值βkβk,j表示,选pj作为ak的概率

Fk=tanh(VH¯r+(Wahk1a+ba)e(m+1))βk=softmax(vTFk+ce(m+1))

2、使用注意力机制得到当前时刻需要的Hr的信息,结合上一时刻的隐状态,输入到LSTM中

hka=LSTM(H¯rβkTattention,hk1r)

答案的概率计算如下:

p(aHr)=kp(aka1,,ak1,Hr)p(ak=ja1,,ak1,Hr)=βk,j

目标函数:

n=1Nlogp(anPn,Qn)

边界模型

不用预测完整的序列,只预测开始和结束位置就可以了。

p(aHr)=p(asHr)p(aeas,Hr)
总访客数:   ·   总访问量:
PLM's Blog @ 2016 - 2025