对话系统(三)Reading Wikipedia to Answer Open-Domain Questions

1. 论文研读笔记

1.1 研究动机

本周的论文让人兴奋,陈丹琦大神的大作早就想拜读一下。从NLP的角度来看,是从Manning的丹琦大神,算是少林武当嫡传弟子,我辈海沙派外门弟子正该全面研究拜读,说不定能学个正宗入门心法,哈哈。 话不多少,回归主题,这篇文章的工作来到了开放域问答,问答的基础是基于wiki。 这篇文章一个很大的亮点是,只基于wiki,而不考虑外部知识库的辅助 。从单变量的角度看,就是可以直接反映机器对于某一种语料的直接阅读理解能力。

1.2 研究方法

本文的架构十分的清晰,系统DrQA 主要包含两个部分,一部分是文献检索,这部分主要是从wiki中抽取和问题最匹配的top的文档,另一部分是一个阅读理解的神经网络架构,主要完成任务是在给定的文章中,找到给定问题的答案。其架构整体如下图所示:
overview of DrQA
文章检索部分,作者指出基本的倒排表在这个任务上的表现已经足够的好,文章还采用了基于TD-IDF权重的词袋向量模型来比较文章和问题。在此基础上作者采用了bigram哈希进行了优化,从实验结果上来看,作者的方法比wiki内建的搜索提升10%+。 (题外话:这一块的细节,作者在文章中基本略去,可能是比较成熟的工作,后面我会通过review代码以及对于Manning教授的CS276进行follow来弥补这一块的细节。 我个人其实也反思这个问题,早一批互联网研究和开发的前辈,和NLP有关的第一任务,可能就是搜索,现在由于搜索引擎的巨头固化,分布式搜索也要大量很好用的组件,比如es, 导致我们可能忽略这一块的任务。个人觉得其实垂直和任务相关的搜索,依然是产品平台可以利用AI提升的部分,只是需要我们NLPer花上一些时间去积累。)

机器阅读部分,从架构上来看,是当时非常流行的Bi-LSTM + attention。作者采用了三层的Bi-LSTM ,attention部分也是做了问题和段落的对齐。这里主要的Trick,我觉得是做段落编码是,使用的段落的特征向量。这里主要包含三个部分:1)词嵌入,即femb(pi)=E(pi)f_{emb}(p_i) = E(p_i)femb(pi)=E(pi);2)精确匹配,fexactmatch(pi)=II(pi∈q)f_{exact_match}(p_i) = II(p_i \in q)fexactmatch(pi)=II(piq) 。这里其实使用的三个二进制位,分别表示origin (原始文本匹配),low-case(小写匹配)和 lemma-forma(词典基本词素匹配)。3)人工特征,文章中用的是位置,实体和词频三个特征。
剩下的问题和文章的对齐采用的attention和问题的编码都和传统做法一致。

这里最后简单介绍一下,阅读理解或者说问答任务的另一个关键设计,就是预测。和分类任务不同,预测主要是预测一个span,即起始和结尾两个部分的token,形式化表达如下:
Pstart(i)∝exp(piWsq)P_{start}(i) \propto exp (p_iW_sq)Pstart(i)exp(piWsq)
Pend(i)∝exp(piWeq)P_{end}(i) \propto exp (p_iW_eq)Pend(i)exp(piWeq)

1.3 实验结果

作者的实验部分,设计也非常的清晰。主要是三个方面的比较,首先是验证文章检索部分的性能,其结果如下:
Document retrieval results
第二部分主要是机器阅读理解部分在SQUaD等数据集上的表现,文章中给出的结果是70%的准确匹配和79%的F1,这是当时的STOA。当然现在可能是Bert等预训练模型超过。

第三部分则是系统整体表现:
Evaluation results
作者另外非常细致的对比了之前的段落表达的各个处理对于系统性能指标的影响,做了模型简化测试,可以看出对齐和精确匹配,虽然可能功能 有冗余,但是如果 同时去掉,系统性能会大幅度下降

Feature ablation analysis of the paragraphrepresentations

1.4 创新点

主要体现在以下几个方面:
1)利用wiki的原生检索,而不是简单的训练集,这样的目的是可以适应不断变化的语料库,比如wiki。
2)检索部分和机器阅读部分的每一部分都基本是当时的STOA
3)远程标注和多任务学习在机器阅读领域的应用

1.5 个人点评

这篇文章总体上架构非常清晰,将对于较大的语料的阅读理解工作很好的拆分成两个部分,问题的相关文章检索,以及机器阅读。检索部分在基本倒排表的基础上,有用TF-IDF的词袋向量和bigram哈希的优化,性能比wiki内建的搜索提升10%+。机器阅读部分用的是3层Bi-LSTM+利用问题的对齐attention,特色在于对于段落的编码上,采用了词嵌入,表示origin (原始文本匹配),low-case(小写匹配)和 lemma-forma(词典基本词素匹配)的精准匹配以及是(位置,实体和词频)的特征组合。预测上采用对于span的首尾分别预测的方法。在当时达到了SQuAD测试的STOA。 从现在的角度看,除了Bert等预训练模型可以对于机器阅读部分提升之外,这个机器阅读的架构和思路依然可以沿用。当然,正如文章最后所说,设计端到端的模型肯定是更好的选择,但对于如此巨大的语料库,直接端到端似乎目前也不现实。

2. 模型调试心得

2.1 模型地址

2.2 模型运行环境

2.3 数据集选择与下载

2.4 模型运行步骤

2.5 问题与解决方法汇总

2.6 个人点评

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值