网站首页 公文大全 个人文档 实用范文 讲话致辞 实用工具 心得体会 哲学范文 总结范文 范文大全 报告 合同 文书 信函 实用
  • 汇报体会
  • 节日庆典
  • 礼仪
  • 毕业论文
  • 评语寄语
  • 导游词
  • 口号大全
  • 其他范文
  • 百花范文网 > 实用范文 > 其他范文 > 基于SA-BiLSTM的中文问句相似度计算方法

    基于SA-BiLSTM的中文问句相似度计算方法

    时间:2023-01-21 13:05:21来源:百花范文网本文已影响

    黄晓洲,段隆振,周玲元

    (1. 南昌大学信息工程学院,江西 南昌 330029;
    2. 南昌航空大学经济管理学院,江西 南昌 330063)

    文本匹配是自然语言理解中的一个核心问题,许多自然语言理解任务都可以抽象为文本匹配问题。具体到自动问答任务,则是问句和答案的语义相似性匹配问题。

    自动问答最典型的应用之一就是智能客服问答系统。随着互联网的发展,不断增加的用户量使得传统的人工客服行业面临着很大的挑战。智能客服系统因此诞生,智能客服问答系统以简捷、快速的方式回答着用户提出的大量重复的问题。但所提问题存在着特征稀疏性强、上下文相关性弱、问法多样性、错别字、口语化严重等特点,导致不能准确地返回对应的答案。如何提高智能客服问答系统对中文句子的相似度计算能力是当下的研究热点之一。句子相似度的研究任务是衡量两个句子的相似程度[1]。传统的句子相似度计算一般采用基于特征的方法。例如抽取两个句子的TF-IDF,BM25以及词法等特征,再使用传统的机器学习方法如线性回归,支持向量机等进行训练。如翟社平等[2]通过统计词形、词序、句长等特征,使用层次分析法设置不同的权重,综合考虑语义、词序相似度来计算句子之间的相似度。基于统计特征的句子相似度计算方法只能提取出较为浅层的句子含义,容易受词语,错别字的影响,泛化性能不佳。有利用句子语义的相似度计算方法。如闫红[3]等在知网的词汇语义基础上,加入对义关系、符号义原和定义信息等额外的特征来计算词语的相似度。基于语义的句子相似度方法能够很好的处理语义问题,但准确率受语义资源质量和规模的影响。随着深度学习技术的快速发展,深度学习技术在计算视觉,自然语言处理等多个领域应用并取得了巨大的成功。2013年,微软提出DSSM[4],率先将深度学习技术引入到文本检索任务中,开启了文本匹配方向的深度学习时代。使用深度学习来计算2个句子的相似度是目前常用的方法。黄江平等[5]在Word2Vec词向量的基础上,通过句子变换矩阵来度量句子间的语义距离。李晓等[6]使用Word2Vec进行句子语义上的相似度计算,并将句子的结构信息添加到句子相似度计算中。Yin等[7]使用卷积神经网络(Convolutional Neural Networks,CNN)模型来提取句子的特征,模型虽然简单,但是却有着很好的性能。Mueller等[8]将Siamese网络应用于句子之间的相似度计算,该模型使用孪生循环神经网络学习语义结构化的表示空间,使得简单的度量足以捕获句子相似度。Neculoiu等[9]提出利用双向长短时记忆神经网络(Bidirectional Long Short Term Memory,Bi-LSTM)同时获取上下文的信息,提取更深层的句子特征。然而,上述方法都是基于词的映射方式。由于中文词语之间无明显分割符,词向量映射方法的性能很大程度上依赖于分词的准确性。

    为了提高模型识别的准确率,一些新的方法被不断的提出,注意力机制就是其中代表之一。2014年,Bahdanau等首次将注意力机制应用到自然语言处理领域进行机器翻译,相比于传统神经完了翻译模型准确率有了较大的提升。2017年,谷歌团体提出一种自注意力机制[10](self-attention mechanism)应用于机器翻译,取得不错的效果。自注意力机制又称内部注意力,通常不会使用其它额外的信息,同时能关注本身关键的特征进而从句子中抽取相关信息。2019年,冯兴杰[11]等人提出一种多注意力CNN的问题相似度计算模型,使用2个不同的注意力同时关注词汇间的语义信息和句子间的整体语义信息。2020年,胡艳霞[12]等人提出一种多头注意力机制的句子语义相似度计算模型,使用多头注意力机制和Tree-LSTM提高模型的识别率。上述这些方法均使用注意力机制,虽然使用的注意力机制各有不同,但都是将提取的特征赋予相同的权重,无法较好的关注问句中稀疏特征中关键的特征。

    为解决传统词向量性能依赖于分词的准确性,解决普通注意力机制无法关注问句稀疏特征中关键特征的问题。本文在Bi-LSTM基础上加入Self-Attention机制,提出一种新的问句相似度计算模型SA-BiLSTM(Self-Attention BiLSTM)。该模型采用字向量表示作为输入,使用自注意力机制减少外部参数依赖,动态的调整问句中不同特征的权值,更擅长捕捉问句的内部相关性。

    为了有效的避免中文分词带来的影响以及更好的获得问句中的关键特征,本文提出一种基于字向量表示并结合Self-Attention机制的BiLSTM的问句相似度模型SA-BiLSTM。使用改进后的模型,可以解决中文分词带来的影响并且可以更完整的保留稀疏特征的问句中的信息。SA-BiLSTM模型共分6层,主要包含字向量输入层、双向长短时记忆网络层以及Self-Attention层,具体的SA-BiLSTM模型结构如图1所示。

    图1 SA-BiLSTM模型结构图

    2.1 字向量表示

    2003年,Begio等首次使用神经网络对词进行分布式的表示,即词向量。2013年,Mikolov等提出的Word2Vec模型包括CBOW(Continuous Bag-of-Words)和Skip-gram(Continuous Skip-gram)两种训练模型,可在海量的数据集上进行词向量训练。CBOW原理是用一个词语的上下文作为输入,来预测这个词语本身;
    而Skip-gram则是用一个词语作为输入,来预测它周围的上下文词语。但无论CBOW模型还是Skip-gram模型都是将文本分词处理后将词语映射到多维空间中,依赖于分词的准确性。例如,“乒乓球拍卖完了”,可以切分为“乒乓球拍/卖/完了”和“乒乓球/拍卖/完了”等多种不同的切分方式。这是由于中文词语之间并无明显的分隔符号,导致基于分词的向量化方法存在着局限性。而字作为中文文本最小组成单位,字本身包含了丰富的语义信息,使用字向量进行分析能够获得更好的语义信息。而且常用汉字数量较词语数量低几个数量级,也可以在一定程度上降低矩阵维度及稀疏性。本文使用Skip-gram模型训练字向量,为了对比不同粒度向量在模型上的效果,额外训练了词向量,分词工具使用jieba分词。

    2.2 循环神经网络

    2.2.1 LSTM

    1997年,Hochreiter提出LSTM模型,它解决了RNN(Recurrent Neural Network,循环神经网络)模型存在着无法“长期记忆”和梯度爆炸、梯度消失等问题。LSTM的原理是通过门(Gates)的结构来实现,使用门机制可以实现选择性地让信息通过。LSTM有3个门:遗忘门ft、输入门it和输出门ot和Ct记忆单元实现历史信息的更新和保留。具体内部结构如图2所示。

    图2 LSTM内部结构图

    遗忘门起控制内部状态信息的作用,通过计算上一时刻的输出与本时刻的输入的加权和,由sigmoid函数将其转化为一个0到1的数决定是否遗忘。0代表完全抛弃,1代表全部保留。其计算如式(1)所示。

    ft=σ(Wf·[ht-1,xt]+bf)

    (1)

    输入门控制信息的输入,决定着此时刻哪些信息需要被存储。其具体的计算过程如式(2)、式(3)所示。

    it=σ(Wi·[ht-1,xt]+bi)

    (2)

    Ct=ft×Ct-1+it×(tanh(Wf·[ht-1,xt]+bC))

    (3)

    输出门起控制输出信息的作用,决定着此时刻的任务输出,其具体的计算过程如式(4)、式(5)所示。

    ot=σ(Wo·[ht-1,xt]+bo)

    (4)

    ht=ot·tanh(Ct)

    (5)

    其中,Wi,Wf,Wo分别为输入门、遗忘门、输出门的权重矩阵;
    bi,bf,bo为输入门、遗忘门、输出门的偏置矩阵;
    σ、tanh为激活函数。

    2.2.2 Bi-LSTM

    由于LSTM存在着语义依赖问题,无法充分的提取出问句包含的所有特征,故本文使用双向长短时记忆神经网络。双向长短时记忆神经网络由两个单向的长短时记忆神经网络组成的。在每一个时刻t,输入会同时提供给这两个方向相反的长短时记忆神经网络,而输出则是由这两个单向长短时记忆神经网络共同决定。具体的计算过程为:

    1) 前向LSTM层从1时刻到t时刻正向计算一遍,得到并保存每个时刻向前隐含层的输出。

    2) 后向LSTM层沿着时刻t到时刻1反向计算一遍,得到并保存每个时刻向后隐含层的输出。

    3) 最后在每个时刻结合前向层和后向层的相应时刻输出的结果得到最终的输出,其计算式如(6)-(8)所示

    ht=f(w1·xt+w2·ht-1)

    (6)

    htb=f(w3·xt+w5·ht+1)

    (7)

    ot=g(w4·ht+w6·htb)

    (8)

    其中,xt为t时刻字向量的输入,w1和w3分别为输入门到前向和后向单元的权值矩阵,w2和w5分别为前向隐含层到前向隐含层和后向隐含层到后向隐含层的权值矩阵,w4和w6分别为前向单元后向单元到输出门的权值矩阵。ht-1、ht+1分别为t-1,t+1时刻的隐含层权值矩阵,ht、htb、ot分别为t时刻的前向隐含层、后向隐含层权值矩阵以及输出门的权值矩阵。

    2.3 Self-Attention机制

    自注意力机制是注意力机制的改进,其减少了对外部信息的依赖,使得模型能够学习到内部本身的相关特征。

    Self-Attention函数本质上是一个由诸多Query和Key以及Value组成的映射函数。其中Query(Q),Key(K),Value(V)三个矩阵均来自同一输入矩阵,其计算公式,如式(9)所示。

    (9)

    本文在字向量表示方法的基础上结和Self-Attention机制和Bi-LSTM网络进行中文问句相似度计算。将训练数据采用字向量化表示,输入模型迭代训练,最后输出为预测值。实验环境如表1所示。

    表1 实验环境

    3.1 实验数据

    数据集采用CCKS2018-Task3(微众银行智能客服问句匹配大赛)提供的语料来进行试验。CCKS2018-Task3是微众银行提供的自动问答系统语料,该数据集的训练集、验证集、测试集分别有100000个句子对、10000个句子对、10000个句子对。实验时,从训练集中随机抽取80000个句子对,与测试集和验证集构成8:1:1的比例,保证训练集、验证集以及测试集不会存在重复的句子。

    实验数据样例如表2所示。标签0表示两个句子意思不同,标签1表示两个句子意思相同。

    表2 实验数据样例

    由表2可知,这些数据都是用户的提问语句,具有错别字、上下文相关性弱、内容短、指代缺失以及口语化严重等特点。在该数据集上进行实验,模型的识别难度增加,更能验证本文提出模型的有效性。

    3.2 评价标准

    本文采用国际通用评价标准,精确率(Precision)、召回率(Recall)和F1值对实验结果进行评价。精确率是指在所有被预测为正的样本中实际为正样本的概率;
    召回率是指在实际为正的样本中被预测为正样本的概率;
    F1值是精确率和召回率的调和均值。其相关计算如式(10)~式(12)所示。

    (10)

    (11)

    (12)

    其中,TP,TN,FP,FN含义如表3所示。

    表3 混淆矩阵表

    3.3 实验参数设置

    深度学习模型的超参数设置非常重要,字向量表示层主要参数为字向量维度、滑动窗口大小,BiLSTM层主要参数有隐藏层单元数、Dropout值等,其余参数如表4所示。本文使用Adam算法进行模型的训练,损失函数选用交叉熵损失函数,交叉熵的计算公式如式(13)

    (13)

    其中,L为损失值、x为样本、n为样本总数、y为实际的标签、a为预测的标签。

    表4 实验参数表

    本文选择字向量维度(200、300、400)、选择隐藏层单元数(90、100、110)、神经元丢弃率(10%、20%、30%)进行试验取优,实验结果如下表5、6、7所示。

    表5 字向量维度不同时的结果对比

    表6 隐藏层单元数不同时的结果对比

    表7 隐藏层神经元丢弃率不同时的结果对比

    通过对比表5中的F1的值,可以知道选择字向量的维度为300时,模型可以取得最优的效果。通过对比表6中的F1的值,可以发现选择隐藏层单元数选择为100时,模型可以取得最好的值。通过对比表7中的F1的值,不难发现当BiLSTM隐藏层中神经元的丢弃率为0.2时,模型的性能达到最优。

    3.4 对比实验设置

    为了验证SA-BiLSTM模型的有效性,本文构建了6种不同的模型在相同环境下进行对比实验。模型中词向量或字向量使均用Skip-gram模型在维基百科中文语料(zhwiki-latest-pages-articles.xml.bz2,1.75GB)上进行预训练得到,为了保证对比实验单一变量原则,均采用同一类预训练的词向量或字向量。

    1) Word2Vec-TextCNN。Kim[13]提出将卷积神经词运用到自然语言处理领域。使用Word2Vec训练得到词向量,使用卷积神经网络进行特征的提取。

    2) Word2Vec-LSTM。纪明宇等[14]提出的方法,使用词向量并结合长短时记忆网络捕捉句子中的特征。

    3) Word2Vec-BiLSTM。文献[9]提出的方法使用词向量作为模型的输入,使用双向长短时记忆网络捕捉句子的上下文的特征。

    4) Character-BiLSTM。基于字的文本向量表示,使用双向长短时记忆网络捕捉句子的上下文的语义信息。

    5) Character-ATT-BiLSTM。基于字的文本向量表示,使用BiLSTM捕捉问句的上下文的语义信息,使用 Attention机制,获取问句局部的关键特征。

    6) Character-SATT-BiLSTM。本文提出的模型,使用字向量表示方法对文本向量化表示,并结和Self-Attention和Bi-LSTM网络的问句相似度计算模型。

    3.5 实验结果与分析

    本文算法与其它对比算法分别在相同数据集上的实验结果如表8所示。

    表8 不同方法之间对比实验结果

    1) 通过对比第1、2组实验结果可知,使用循环神经网络的效果优于使用卷积神经网络。

    2)通过对比第2、3组的实验结果可知,由于BiLSTM增加了后向传播层,可以同时考虑句子的上下文信息,实验结果往往比LSTM更好。

    3) 通过对比第3、4组的实验结果可知,因本文使用的数据集来源于智能客服问答,因此语料库句子存在错别字、上下文相关性弱、特征稀疏、口语化严重等特点。故使用字向量以更细粒度的方式提取问句的稀疏特征,保留更多的细节信息。同时,也可以降低因分词错误产生的影响,在数据集上的F1值分别较word2vec-BiLSTM算法提高2.73%。

    4)通过对比第4、5组的实验结果可知,通过加入注意力机制,能很大程度上获取句子的局部信息,模型的F1值提高2.34%。

    5) 通过对算法5、6的实验结果可知,使用Self-Attention机制相比标准的Attention机制有不错的性能提升。因为Self-Attention不需要依赖外部信息,仅通过自身的信息来更新学习参数,同时由于Self-Attention是每个词都要计算在句子中的Attention,所以不管它们中间有多长距离,最大的路径长度也都是只是1,因此可以捕获长距离依赖关系,最终的F1值较标准的注意力机制提高了1.42%。

    本文提出一种新的中文问句相似度计算模型SA-BiLSTM。对问句进行字向量化作为BiLSTM的输入,利用BiLSTM提取中文问句的上下文语义特征,使用Self-Attention机制对特征进行动态调整。实验结果证明SA-BiLSTM模型在中文问句相似度计算上的有效性。然而,本文算法仅仅考虑了问句的特征稀疏性,未来将会使用更多的句子特征进行建模,并且由于BiLSTM的结构比较复杂,训练的时间较长,将来也会考虑使用其它的较为简单的网络模型作为基本框架进行训练,以减少训练的时长和参数量。

    猜你喜欢 语义向量注意力 真实场景水下语义分割方法及数据集北京航空航天大学学报(2022年8期)2022-08-31向量的分解新高考·高一数学(2022年3期)2022-04-28让注意力“飞”回来小雪花·成长指南(2022年1期)2022-04-09聚焦“向量与三角”创新题中学生数理化(高中版.高考数学)(2021年1期)2021-03-19如何培养一年级学生的注意力甘肃教育(2020年22期)2020-04-13A Beautiful Way Of Looking At Things第二课堂(课外活动版)(2016年2期)2016-10-21向量垂直在解析几何中的应用高中生学习·高三版(2016年9期)2016-05-14“吃+NP”的语义生成机制研究长江学术(2016年4期)2016-03-11向量五种“变身” 玩转圆锥曲线新高考·高二数学(2015年11期)2015-12-23情感形容词‘うっとうしい’、‘わずらわしい’、‘めんどうくさい’的语义分析人间(2015年21期)2015-03-11

    相关热词搜索:问句 中文 计算方法

    • 范文大全
    • 说说大全
    • 学习资料
    • 语录
    • 生肖
    • 解梦
    • 十二星座

    推荐访问

    中文 中文专业学生面试自我介绍怎么说 中文专业学生面试自我介绍模板 中文专业学生面试自我介绍范文 中文专业毕业生面试自我介绍范文 中文专业毕业生面试自我介绍范本 中文专业面试题目 中文化 中文参考文献如何翻译成英文 中文参考文献引用格式 中文参考文献怎么变成英文参考文献 中文参考文献怎么翻译成英文的格式 中文参考文献怎么转换成英文 中文参考文献标点符号要求 中文参考文献格式 中文参考文献的英文版怎么找 中文参考文献转英文格式 中文参考文献逗号是英文吗 中文商务信函写作范文 中文大学自我介绍 中文搜索引擎 中文歌词 中文演讲 中文演讲名篇 中文演讲比赛演讲稿 中文演讲比赛演讲稿在我心中的英雄1等奖 中文演讲稿3分钟 中文演讲稿3分钟简单好背的 中文演讲稿一分钟 中文演讲稿五分钟 中文演讲稿优秀范文 中文演讲稿子 中文版 中文祝贺信范文 中文签证邀请函模板下载_中文签证邀请函模板 中文简历注意事项 中文系 中文系10硕党支部计划 中文系发展党员工作总结自查报告 中文系实习心得体会3篇 中文系应届生求职面试自我介绍 中文系讲座心得体会 中文系面试 中文系面试自我介绍 中文翻译 中文自我介绍大学生面试 中文自我介绍怎么写 中文自我介绍研究生面试 中文论文参考文献格式 中文设备销售合同怎么写 中文设备销售合同模板