前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器是如何做阅读理解的?

机器是如何做阅读理解的?

作者头像
CodeInHand
发布2018-04-16 10:19:00
2.2K0
发布2018-04-16 10:19:00
举报
文章被收录于专栏:Pytorch实践Pytorch实践

机器阅读理解

斯坦福有个很重要的比赛,就是让机器完成阅读理解题目,即给定一篇文章,让机器理解文章含义进行题目回复。每年这一比赛都是国际性的,引来了业界、学术界的广泛关注。其中微软、谷歌、腾讯、阿里等大型互联网公司每年都有参与。本文将从技术的角度,深入浅出、以口语性质的方式给大家传递机器进行阅读理解的过程。

SQuAD比赛简介

SQuAD全称是"Stanford Question Answering Dataset",是用于机器阅读理解的一款数据集,也是斯坦福大学主办的机器阅读理解比赛。目前该数据集,有500+篇文章,总共有100000+组QA对数据。参赛队伍的目标是,理解文章、得到问题的回复结果。答案正确与否的主要评价指标有两个:EM值和F1值,直观理解为EM值表示答案与正确答案是否完全匹配,F1值表示答案之间的重合度。18年最新的比赛排行如下:

目前科大讯飞的哈工大联合实验室排名第一,谷歌大脑并联,阿里巴巴和微软名次紧跟其后。

特定模型说明

本文将要介绍的是排名第三的国防科大与复旦大学的模型。论文在17年发表[1]。该文章大致将机器做阅读理解的过程分为三个步骤:第一:就是机器通读一遍全文,即对article进行序列编码;第二:就是机器带着问题再读文章,也就是机器带着Question的编码,再从头对article进行阅读,即Question与article进行交互;第三:就是机器找寻答案,通过带着问题读文章以后,紧接着就是在文章中找寻能够回答问题的答案了。模型结构如下:

  1. encoder 编码,也就是将文本信息转换为机器能够理解的信息。目前对article编码的主要模型是Bi-LSTM模型,即获取文章的序列信息。选取的特征一般为 word-embedding和character-level embedding进行拼接,再添加一下额外的特征,例如词性、实体等。分别对文章和问题进行编码。
  2. Interaction Interaction就是交互的意思,也就是带着问题去读文章。可以看到图中模型的交互方式,是计算问题与文章各个词语和各个子序列之间的相关性矩阵,并通过该矩阵求Attention获取不同词层面的问题表达。再使用SFU模块将问题信息与篇章信息进行混合。图中有一个self-align模块,是因为篇章信息太长了,需要弄清楚篇章前后之间的关系。然后反复迭代Iterative过程就是让 机器反复去读文章。
  3. Pointer 读完文章后最关键的还是去寻找答案。Pointer Network的作用就是去文章寻找答案的过程。该模型引入了Memory,可以理解为让模型记忆一下你找到问题答案的起始位置,然后再去寻找问题答案的结束位置,Memory就是记忆位置,便于计算已知起始位置寻找结束位置的条件概率。

目前用于机器阅读理解的深度学习框架很是单一,一般就是不断的Attention,再加上不断的迭代,去寻找答案。目前这种基于数据的阅读理解很受限制,感觉还是要跳出深度学习框架,才能真正地去做好理解。认知智能是一个很漫长的过程,还有待进一步的发展。

参考文献

[1]Hu M, Peng Y, Qiu X. Reinforced Mnemonic Reader for Machine Comprehension[J]. 2017.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CodeInHand 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 机器阅读理解
    • SQuAD比赛简介
      • 特定模型说明
        • 参考文献
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档