ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

m10

2022-07-29 19:00:24  阅读:174  来源: 互联网

标签:候选 真实 答案 损失 m10 模块 向量


1、抽取式mrc模型

【Tracing Origins: Coreference-aware Machine Reading Comprehension的三个模型】

【pku博士论文】

 整体由 2个模块组成,左边模块用于确定答案的大致位置:

通过bert得到上下文每个单词的开始向量(红色)和结束向量(蓝色),通过bert的cls得到问题向量1(红色)和问题向量2(蓝色),对于开始:计算问题向量1和上下文的每个词的内积,最大的那个词就是预测答案的开始词,结尾操作类似,这样就得到了预测答案。

损失没有采用交叉熵,作者做了更改,损失=开始的损失+结尾的损失,只讲开始的损失,结尾类似

设文档为{w1,w2,w3,....wn},真实答案的开始是w2,传统的真实分布是{0,1,0,0,..0},作者认为应该做个软化,越靠近w2的值越大,定义了一个评分函数计算文档每个单词的得分,然后通过softmax之后得到真实分布p1,然后和预测的开始位置的分布p'计算KL散度作为答案开始的损失,仿照F值的定义,具体定义如下:

此处,真实答案的开始位置是 s,结束位置是 e,第 i 的单词的评分 f(i) 意义是以第 i 个词为开头,真实答案的结尾e的新答案与真实答案的重合度,显然当i =真实答案的开头位置s,则评分最高,为1,当 i 在其他位置,则评分相对较低,pc计算新答案与真实答案的准确率,rc计算召回率,f 是调和平均值

 右边是答案重排模块,在训练阶段(训练该模块的意义是能够通过问题知道答案大概张什么样子),根据真实答案在哪,采用 前前后后\子集 的位置生成一堆的候选答案,候选答案向量aij表示为{起始单词的开始向量 || 终点单词的结尾向量 },然后用问题向量q计算每个候选答案aij的得分sij:

 

再通过一层softmax得到候选答案的分布概率,然后看真实答案在哪,就计算交叉熵(-log ),总损失就是两个模块的损失

答案重排模块的训练阶段:得到第一个模块的预测答案后,采用 前前后后\子集 的位置生成一堆的候选答案,计算得分最高的候选答案为最终的答案

 

标签:候选,真实,答案,损失,m10,模块,向量
来源: https://www.cnblogs.com/pjishu/p/16533234.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有