【论文笔记】Learning to ask good questions: Ranking clarification questions using Neural Expected Value

这是ACL2018的一篇Best papers.
解决的是论坛提问中对posts的信息补全的问题
用到的数据是StackExchange的数据

场景

论坛求助中的一些posts并不完善,有些问题直接开问,并没有包含如 自己系统版本号,环境 等信息的说明,这种问题很难得到确切的回答。

作者通过NN的方法想办法去补全这些信息在问题中,应用场景可能就是,当作者要发布的时候,系统会自动提示作者需要补全哪些信息。

大致思路

作者受到 EVPI 的启发 (EVPI是衡量, 得到了信息X,会对我有多大的帮助的指标)
设计了这样一个函数:

EVPI(qi|p)=ajAP[aj|p,qi]U(p+aj)

来衡量:
p 是 post, qi 是候选集 Q 中的一个问题, aj 是针对qi 的一个回答。

P[aj|p,qi] 是对于 p , qi , 得到答案aj 的概率。

U(p+aj) 是得到 aj , 对 p 有效的程度

生成候选集

作者先通过Lucene(一个文本检索系统) 找到与目标post p 最相近的10个 posts, 看这些posts 下面有哪些 clarifying questions (就是发布一个post之后,被问到的需要补全信息的问题,如what is the version of your os?) 组成一个问题集 Q
那对于一个问题, 其中有哪些是posts针对问题重新编辑了,这些编辑进去的信息也被组成一个集合 A , 称为答案集。

所以问题就是,一个post p 对应一个问题集Q
同时对于每个qi , 也对应一个答案集 A

以下一些数学标记,结合全文来看:
F() 就是一个前馈神经网络,
^ 是指对text的所有词向量平均得到的向量表示;
¯ 是对text的每个词向量输入lstm之后的隐藏状态层做平均得到的向量表示

Answer modeling

因为有候选集,所以就要衡量一下 对于p , qi , 得到答案aj 的概率。

dist(Fans(p¯,qi¯),aj^)=1cos_sim(Fans(p¯,qi¯),aj^)

这里用 Fans(p¯,qi¯) 来做一个 answer 的 representation 来和真实的answer做距离,这里其实我不太理解为什么这个函数能够表征一些答案的信息

这个的概率为:
P[aj|p,qi]=exp(dist(Fans(p¯,qi¯),aj^))

这里的值域也感觉有待商榷,好像不是 [0,1]

优化loss函数就是:

lossans(pi,qi,ai,Q)=dist(Fans(pi¯,qi¯),aj^)+λjQ(dist(Fans(pi¯,qi¯),aj^)cos_sim(qi^,qj^))

后半部分是把所有问题和当前问题qi 的相似度做权重考虑所有问题。

可用性计算

这里直接用这个函数来衡量:

U(pi+aj)=σ(Futil(pi¯,pj¯,aj¯))

σ 表示概率的意思

其实这是一个有监督的二分类问题,就是: 有帮助(y=1 ),没有帮助(y=0 ) 两个类别。

所以这部分的损失函数就用交叉熵来衡量:
lossutil(yi,pi¯,qj¯,aj¯)=yilog(σ(Futil(pi¯,pj¯,aj¯)))

总损失函数

就是综合考虑两部分损失

ijlossans(pi¯,qi¯,ai¯,Qi)+lossutil(yi,pj¯,qj¯,aj¯)

理解

作者把问题分解为两部分,其实模型本身很简单,也没有用到复杂的NN,也只是LSTM,由于刚刚接触,对QA这类问题也没有很深的理解,只是记录一下。

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