文章目录
写在前面
这是南京邮电大学一名专硕硕士毕业论文,发表在2020年4月。论文关键词有四个:关键词提取,文本分类,语义匹配,自动问答。
0. 摘要
目前常用的
答
案
选
择
方
法
\color{red}{答案选择方法}
答案选择方法中问答匹配结果的好坏取决于句子特征向量的构建,直接用于对句子建模容易缺失词汇之间的语义信息,对匹配度的计算影响较大。这篇论文针对当前主流答案选择方法中的缺陷提出
基
于
改
进
的
比
较
对
齐
语
义
信
息
的
答
案
选
择
技
术
\color{red}{基于改进的比较对齐语义信息的答案选择技术}
基于改进的比较对齐语义信息的答案选择技术。
基于改进的比较对齐语义信息的答案选择技术分为“粗匹配”和“细匹配”两个步骤。通过分析当前问句与答案语义匹配情况,先对问句与答案进行“粗匹配”,主要通过改进的基于三种影响力的关键词提取技术提取问句关键词,这三种影响力分别是:
①词汇位于文本的
相
对
位
置
\color{green}{相对位置}
相对位置;②词汇在文本中出现的
频
度
\color{green}{频度}
频度;③词汇节点之间的
相
似
度
\color{green}{相似度}
相似度。
在卷积神经网络文本分类模型中用提取出的关键词和关键短语代替原文本进行分类,获取问句所属类别的候选答案集。在候选答案选择时,选取比较对齐语义匹配模型,对框架的
预
处
理
层
\color{green}{预处理层}
预处理层、
注
意
力
层
\color{green}{注意力层}
注意力层和
比
较
对
齐
层
\color{green}{比较对齐层}
比较对齐层进行改进,利用改进后的模型对问句与候选答案集进行“细匹配”,获取匹配得分最高的答案作为正确答案。
这篇文章提出的基于改进的比较对齐语义信息的答案选择技术应用到保险咨询系统进行了测试验证,系统能够从已有的数据库中抽取出比较符合客户问句意图的答案并成功返回给客户。相较于现有答案选择技术,这个系统的答案选择技术的语义匹配的准确率有所提高。
1. 绪论
1.1 研究背景与意义
传统的搜索引擎不能让用户高效获取准确的关键信息,问答系统(Question Answering System,QAS)是一种让用户以自然语言的形式提问,系统直接返回给用户准确、简洁答案的应用。
按领域问答系统可以分为
开
放
领
域
\color{red}{开放领域}
开放领域的问答系统和
限
定
领
域
\color{red}{限定领域}
限定领域的问答系统。限定领域的问答系统可以在有限的领域内利用这个领域的专业资源,回答用户问题的准确定和实用性有了极大地提高。
按照实现技术,问答系统可以分为基于
生
成
式
\color{red}{生成式}
生成式问答系统和基于
检
索
式
\color{red}{检索式}
检索式问答系统。但生成式的模型更可能难以保证回答语句的完整和通畅。所以更多研究的是基于检索式的。
对于匹配任务,早期主要是基于机器学习模型,需要依赖人工构造的规则特征。这些基于机器学习的模型通常会定义包括词法、句法、语法等相关特征并借助机器学习分类器、贝叶斯分类、支持向量机等分类方法得到问句与候选答案之间的匹配结果。这种基于特征构造的方式是一种浅层学习模型。
深度学习技术在自动问答系统中的应用还不够成熟,基于深度学习模型的问答系统在实际应用中也并不理想。
问答系统的体系结构一般包含三个部分:①问句意图分析;②信息搜索;③答案提取。问句意图分析是问答系统的前提,其中对问句的语义分析、关键词提取较为重要;问答匹配是信息搜索的重点。针对用户提出的问题抽取候选答案句,是针对自然语言文本形式进行答案定位,是问答系统中最核心、最困难的一步。
这篇论文研究的目的是构建一个在限定领域基于深度学习的问答模型来深入分析问题的意图和深层语义特征,并尝试探究问答系统中问答匹配与选择的问题。
1.2 深度学习在NLP中的研究热点
- 词嵌入技术
词嵌入技术是一种迁移学习,能够提升自然语言处理中很多任务的表现,例如文本分类任务,最常用的模型是Word2Vec和GloVe,都是基于分布假设的无监督方法。 - 语义特征学习
利用词嵌入技术用向量表示词和句子,通过卷积神经网络、循环神经网络以及组合神经网络进行深层次学习句子的语义特征,得到的文本语义特征可以应用到各种场景中的自然语言处理任务。 - 序列到序列建模
序列到序列的网络结构善于从不同的输入序列到任意长度的输出序列建模。
深度学习模型在问答系统答案匹配任务上研究:
①基于卷积神经网络的问答匹配
②基于循环神经网络的答案匹配
问答系统中的两项重要技术:
①问句分类技术
②关键词提取技术
1.3 主要研究内容
这篇论文提出了基于改进的比较对齐语义信息的答案选择技术,答案选择技术有两部分:问题理解和答案选择;在问题理解部分分两小步:获取关键词和问句分类。
2. 自动问答系统的相关理论和技术
2.1 深度学习神经网络
深度学习是一种基于特征学习和深度神经网络的机器学习算法。
2.1.1 卷积神经网络
1998年纽约大学Yann Le Cun提出CNN。CNN特有的局部连接和共享权值技术上能够有效减少权值的数量优化神经网络结构,同时也能够降低过拟合。
CNN由输入层、一个或多个隐藏层和输出层组成。输入层用词向量表示的句子矩阵作为神经网络的输入。隐藏层的作用是学习文本的局部语义特征,通常由卷积层和最大池化层和全连接层组成。输出层是分类计算,通常是一个softmax函数,返回的是对应每个类别的概率,从而划分文本的类型信息并完成分类。
当CNN应用在对文本的处理时,经过预处理,将文本中由词语转换成词向量组成句子向量输入到卷积神经网络中。在卷积层,通过卷积核学习文本局部语义特征,能捕捉到多个连接词语之间的特征,并且在同一类特征计算过程中共享权值。卷积核可以根据实际情况设置不同长度的多个卷积核,宽度与词向量长度保持一致,如下图所示:
在上图中,不同长度的卷积核会获取不同长度的输出,但经过池化层后又会得到相同的长度,最后将所有池化的特征值组合到一起,这样的网络组合可以有效解决输入长度不等的问题。
2.1.2 循环神经网络和长短期记忆网络
全连接神经网络或者卷积神经网络只能处理单一的数据,并且无法考虑连续数据的上下文相关性和连贯性。
这篇论文主要介绍主要的两种循环神经网络框架:双向循环神经网络(BRNN)、长短期记忆网络。
BRNN是由两个反方向的单向RNN组成,可以有效的解决上下文语义问题,基本结构如下:
缺点:该网络结构只能对完整的序列进行处理,一些需要实时工作的NLP任务可能并不适用。
长短期极意网络(LSTM)是RNN的一种改进,能够有效解决RNN无法捕捉长时间段间隔的两个输入的依赖关系和梯度消失的危险。在LSTM中引入记忆细胞,隐藏层通过遗忘门、输入门和输出门这三个门控用来控制调整记忆细胞的状态,实现上下文信息的存储和更新。基本结构如下:
2.1.3 注意力机制
它是一种在编码器-解码器结构中使用到的机制。
编码器-解码器(Encoder-Decoder)结构中的编码(Encoder)就是将输入的句子转化成一个定长的向量,解码(Decoder)就是将编码器生成的定长向量再转化成句子。常用结构如下:
引入注意力机制改进的编码器-解码器结构:
2.2 词汇表示
词汇表示是用数值型数据表示词汇。目前有三种主要表示方法:One-hot编码、基于SVD(奇异值分解)的方法、Word2Vec模型。
2.2.1 One-hot 编码
它是借用二进制代码为语料库中的词语进行编码,这种编码方式能很快地将词语转换成一张索引表,然后通过词语对应的编码能够在词典中找到对应的词语。
2.2.2 基于SVD的方法
通过遍历巨大的语料库,统计两个词之间以某种共现形式共现的次数,将统计值保存到一个矩阵X中,然后利用奇异值分解。
2.2.3 Word2Vertor模型
它是Google利用深度学习的思想提出的一款开源词向量化工具,通过对神经网络模型训练的到词汇的连续向量空间表示,具有相似含义的单词向量相互靠近。有两个重要的模型:连续词袋(CBOW)模型、Skip-gram模型,结构如下:
2.3 关键词提取技术
从指定的文本中抽取一组能够表达文本中心思想或者代表文本主题的重要词汇或短语,是文本核心的最小单元。提取关键词一般分为三个步骤:选择候选关键词、候选词语的关键性度量和关键词输出。
2.4 语义匹配技术
两种主流的匹配方式:①直接对句子建模,生成两个句子序列的向量,通过神经网络模型对两个句子进行特征提取和相似度计算,根据相似度得分排序,选择最相关的那一对作为语义匹配度最高的序列对返回。对句子直接建模的框架如下:
②不直接对句子建模,而是从句子的组成部分词入手,对两个序列的内部语义信息比较匹配,这种模型称为比较对齐语义匹配模型。模型如下:
3. 基于改进的关键词技术优化神经网络分配模型的实现
3.1 基于三种影响力的关键词提取
目前用于文本关键词提取的算法主要有:①基于TFIDF的关键词提取算法;②基于主题的关键词提取算法;③基于TextRank的关键词提取算法。这篇论文采用前面三种典型的关键词提取算法与本文提出的改进的关键词提取算法分别进行实验对比。
数据集采用“163 Chinese News Dataset 2011”(163中文新闻数据集),数据集是从news.163.com爬取下来的13703条新闻,每篇新闻包括新闻正文和一组关键短语,关键短语是由163.com编辑者手动注释。停用词表采用中科院自然语言处理开放平台发布的中文停用词表,该停用词表包括了1208个停用词。
实验执行步骤如下:
(1)读取数据集源文件,将文本中的回车换行和各种标点符号用空格代替;
(2)加载自定义停用词表stopword.txt;
(3)采用jieba分词对文本进行分词和词性标注。
(4)遍历文本,采用代码中定义的rand函数筛选出指定词性的词语、对候选词语进行得分迭代计算;
(5)根据图中每个词的得分,进行降序排序,得到top-k个候选关键词;
(6)对这top-k个候选关键词根据算法中规定的优化方案,得到最终的关键词并将结果输出。
实验结果:
- 提取3个关键词的实验结果
- 提取5个关键词的实验结果
3.2 基于关键词技术的神经网络分类
实验步骤:
(1)对分词后的问句根据关键词提取模型规定的词性保留类别进行词性筛选,得到候选关键词;
(2)利用基于三种影响力对问句候选关键词进行关键词提取,由于数据集中的问句大多数比较简短,大多数词汇的频度都为1,对于词汇在文本中出现的频度影响力效果不明显,这个影响力比较适用于较长文本的关键词提取,因此在本实验中可以忽略不计;
(3)对提取出来的关键词按照改进的关键词提取技术的要求进行优化,即根据1-gram、2-gram、3 -gram对单个关键词进行组合,然后根据词性组合筛选规则进行筛选,获取关键词和关键短语;
(4)由Word2Vec模型训练得到问句关键词词向量,将问句的关键词词向量组合成卷积神经网络模型的输入矩阵;
(5)在卷积神经网络模型中进行训练问句的词向量矩阵,卷积神经网络结构:卷积层(由大小为2和3的两类卷积核组成)、Max-Pooling层、全连接层和输出层。用训练集12889个问句对卷积神经网络模型进行训练,测试集2000个问句进行测试。
在本实验中,将基于三种影响力关键词技术的神经网络分类模型与传统卷积神经网络模型进行对比,根据模型准确率对这两个模型的分类效果进行评估。准确率是指模型分类的正确的样本数,与总的样本数的比值。两种模型的准确率对比结果如下:
通过上述对比,可以发现改进的基于三种影响力关键词技术的神经网络分类模型的分类效果更好。基于三种影响力关键词技术的神经网络分类模型先对问句进行关键词提取,高度凝练了问句的中心思想,去掉了一些与主题无关的词汇噪音,有效的提高了分类的效果。
4. 基于改进的比较对齐语义信息的答案选择技术的实现
4.1 数据集准备
使用InsuranceQA语料库,这个数据集规模比较大,是一个来自保险行业的非事实性的问答数据集。由于InsuranceQA语料库的数据量远大于WikiQA和TreeQA,并且答案更长,所含信息量更多,因此InsuranceQA语料库更加有难度。这个语料库的构成如表所示:
储存数据的格式为json文件,每条数据由问句序号、问句的中文表达、问句的英文表达、问句所属类别、正确答案序号列表和错误答案序号列表组成,正确答案1到5个,错误答案200个。这里的错误答案都是通过对问题检索与问题相关的,但不是正确的答案。
4.2 评价指标
MAP适用于候选答案集中有多个准确答案的情况,表示问题集中所有问题的AP平均值,AP表示在答案排序中正确答案的平均准确率。
MRR表示答案集中得分最高的正确答案排名的倒数。
4.3 四个模型的实验对比
实验环境:
实验结果分析:
5. 保险咨询系统设计实现与评测
这一部分主要是利用前面提出的改进的比较对齐语义信息的答案选择技术构建保险咨询系统。首先分析保险咨询系统的需求,然后对系统的总体架构、各模块功能以及系统流程进行介绍,最后通过系统性能测试和用户满意度测试,验证了这个系统能够正确理解用户意图,并将准确的答案返回给用户。
6. 总结展望
(仅展望部分)
在自动问答答案选择技术的研究中仍存在一些问题和需要进一步优化的方法:
(1)关键词提取算法的继续优化
(2)分类模型的进一步扩展
(3)语义匹配的改进