阅读理解系列之Stochastic Answer Network (SAN)

今天终于开始技术博客的第一章,从阅读理解的非预训练model开始,第一篇SAN for SQUAD 2.0

阅读理解系列之Stochastic Answer Network (SAN)

一、摘要

SAN for SQUAD 2.0 主要包含两个组件:

a span detector and a binary classifier for judging whether the question is unanswerable,and both components are jointly optimized.

也就是一个跨度检测器和一个线性分类器,其中线性分类器用来判断当前问题是否有答案(毕竟这是SQUAD2.0相比于 1.1的最大改变之处,也为阅读理解提供了难度),跨度检测器用来检测答案的span。整个模型可以看作,整体包含五(四)层。

二、 模型架构

以下是模型的整体架构图


模型分为两部分:左边的上半部分也就是刚才所写的跨度检测器(a span detector),也就是SAN Answer Module,右边的上半部分也就是线性分类器(a binary classifier),而且模型包括两种不同的layers。

几个关键点:

共享层(不局限于某个特定的下游任务)包括:

a lexicon encoding layer, contextual encoding layer and memory generation layer

特定下游任务层:包括 SAN ANswer Module 和 a binary classfier

整个模型是共同学习的

下面详细介绍整个模型的各个层级

1.lexicon encoding layer(也就是词典编码层)

事先将question划分位Q={q_0,q_1,q_2,..,q_m-1} ,passage/paragraph划分为P={p_0,p_1,p_2,...,p_m-1},answer 计算为 A={abegin , aend},A也就是P中的一个字串,当问题无法回答时,A指向段落的最后一个标记。

第一步,将Q and P映射到欧氏空间(所有model的第一步都大差不差),这里采用的是300-dim的glove word emdedding、16-dim part-of-speech(POS) tagging embeddings, 8-dim named-entity embeddings and 4-dim hard-rule features

最后就是通过两层的position-wise Feed- Forward Networks (FFN)将questrion and passager映射到同一纬度。最后分别将Q和P转换为矩阵:Eq=R d*m

Eq=Rd*m

2.Contextual Encoding Layer(上下文编码层)

使用两层的BiLSTM作为上下文信息编码层

为了避免过拟合将600-dimensional CoVe vectors和lexicon embeddings进行concat 作为contextual encoding layer的最后输入,

然后将600-dimensional CoVe vectors与第一层的输出进行concat作为第二层的输入。

最后通过两层的BiLSTM的输出得到最终的Hq∈ R4d×mfor questions and Hp∈ R4d×nfor passages.

3.Memory Generation Layer

本层的主要作用的是将前面得到的Hq、 Hp进行融合从而产生一个 working memory,在此层中使用attenion机制来计算qustion and passage之间的相似度:

先得到question-aware passage representation:


Up= concat(Hp, HqC)

然后对passage进行self-attention:


本层的数学公示建议去看论文。😂

最后也是通过一层BiLSTM形成了最后的M = BiLSTM([Up];ˆUp]).

4.Span detector

这一层对于有答案的文章来说其实也就是最后一层,该层输出最后答案的span。

本文中使用的是multi-turn answer module 来进行 span detector

输入初始状态s0(s0是Q每个token的加权之和),最后通过一个线性函数来找begin and end point of answer spans at each reasoning step t ∈ {0, 1, . . . , T − 1}


需要注意的是最后的预测span是每个时间步骤t的平均和;

论文中采用了随机的dropout机制

5.Unanswerable classifier

针对SQUAD 2.0中的不可回答问题,特有的一个机制。

论文中仅仅采用了一层的神经网络来作为线性分类器。公式如下:

Pu= sigmoid([s0; m0]W4)

Pu也就是最后判断问题是否可回答的概率值。

6.Objective

目标函数包括两部分:

Ljoint= Lspan+ λLclassifier

span loss function:


线性分类器的目标函数:


y=1时表示问题不可回答,y=0时表示问题可回答

三、实验


从实验结果来看,SAN在2.0上的确取得了当今非预训练模型几乎最好的成绩,至于实验细节,论文写的还是很详细的。

实验细节

分词: spaCywordembedding:GloVe300-Dcharacterencoding:

利用CNN训练, embedding size设为20.windows设为1,3,5hidden size设为{50,100,150}

word embedding和character embedding拼接, 

最终的lexicon embedding就是600维.

LSTM hiddensize:128

注意力层的projectionsize:256 。dropout:0.2   batchsize:32  optimizer:Adamax     learningrate:0.002

但自己在对于代码的复现中并没有在2.0上取得像论文一样的实验效果,(可能哪儿参数不对?欢迎大家给我留言讨论😁)

四、个人感悟

就整篇文章看完,个人觉得 SAN的模型其实十分简单,而且整个的训练时间也不长.实力点赞!!

SAN与其他模型主要的区别在于,它的预测输出结果,并不是最后直接输出,而是每个时间步骤迭代的结果,最后取平均得到最后输出,这点的确很特别。。。

下期预告:QANET

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 193,812评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,626评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,144评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,052评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,925评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,035评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,461评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,150评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,413评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,501评论 2 307
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,277评论 1 325
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,159评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,528评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,868评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,143评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,407评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,615评论 2 335