R-NET机器阅读理解(原理解析)
简介
斯坦福大学自然语言计算组发布SQuAD数据集,诸多团队参与其中,而微软亚研的R-NET是首个在某些指标中接近人类的深度学习模型。由于刚刚 开源CNTK版的R-NET,趁着余热解读其中的原理。阅读准备
先介绍一下SQuAD数据集的特点,SQuAD数据集包含10w个样例,每个样例大致由一个三元组构成(文章Passage, 相应问题Query, 对应答案Answer), 以下皆用(P,Q,A)表示。由于R-NET模型中多次引用 Matching-LSTM 模型和 Pointer-Net模型中的思想,所以建议准备精读的朋友先看一下 Blog(Matching-LSTM)和李宏毅老师的Ptr-Net。
结构图
![](https://i-blog.csdnimg.cn/blog_migrate/c6d58bdc4af59e6951ddb6a8afa51399.png)
原理介绍
R-NET模型一共分为四个步骤,分别为QUESTION AND PASSAGE ENCODER, GATED ATTENTION-BASED RECURRENT NETWORKS, SELF-MATCHING ATTENTION, OUTPUT LAYER, 基本结构可观察上面所示的结构图。1. QUESTION AND PASSAGE ENCODER
第一层为表示学习过程, R-NET中的方式Input = Glove + char embedding。第一种是把文章P,和问题Q中的单词替换为Glove词向量中的数据,