本篇文章是我在读期间,对自然语言处理中的文本相似度问题研究取得的一点小成果。如果你对自然语言处理 (natural language processing, NLP) 和卷积神经网络(convolutional neural network, CNN)有一定的了解,可以直接看摘要和LSF-SCNN创新与技术实现部分。如果能启发灵感,应用于更多的现实场景中带来效果提升,那才是这篇文章闪光的时刻。如果你没有接触过NLP和CNN,也不在担心,可以从头到尾听我娓娓道来。有任何问题,欢迎交流。
LSF-SCNN,即基于词汇语义特征的跳跃卷积模型 (Lexical Semantic Feature based Skip Convolution neural network ),基于卷积神经网络模型引入三种优化策略:词汇语义特征 (Lexical Semantic Feature, LSF)、跳跃卷积 (Skip Convolution, SC)和K-Max均值采样 (K-Max Average Pooling, KMA) ,分别在词汇粒度、短语粒度、句子粒度上抽取更加丰富的语义特征,从而更好的在向量空间构建短文本语义表达模型,并广泛的适用于问答系统 (question answering)、释义识别 (paraphrase identification) 和文本蕴含 (textual entailment)等计算成对儿出现的短文本的相似度的任务中。
人类的语言,是人类独有的进化千百万年后形成的信息表达方式。相比于具有原始信号输入的图像(像素)和语音(声谱),符号化的自然语言属于更加高层认知的抽象实体。因此,自然语言处理的第一步也是至关重要的一步就是怎样将符号化的自然语言表示成计算机可以理解的数值形式。
对于自然语言的理解,在语言粒度上遵循着自底向上从字、词、句、段落最后到篇章的研究思路。在对最小粒度的字的符号化表达上,基本可以分为两种:one-hot representation和word distributed representation。
在大多数NLP的任务中,如情感分类、机器翻译、问答系统等,都需要以自然语句作为输入。那么,怎样以词向量为基础,表达一个短语或一句话的语义呢?短语或者句子能否也通过向量的形式表达?答案是肯定的。在深度学习框架下,有许多神经网络,如卷积神经网络CNN[2]、递归神经网络Recursive NN[3]、循环神经网络Recurrent NN[4]等,都可以将词向量序列有效的编码成短语或句子向量。
通过神经网络学习到的短语或句子向量就可以进一步应用于以短文本相似度计算为核心的多种任务中,如问答系统中的答案选择问题 (Answer Selection,AS),即从输入问题的特定候选答案列表中,筛选可以回答问题的正确答案,本质是一个二分类问题(预测为正确的答案标记为1,错误的答案标记为0。)再如,释义识别任务,即判断两句话是否表达同一种语义。
目前,基于CNN模型的短文本相似度的计算方法可以大致分为两类:一类是基于Siamese结构的神经网络模型,先分别学习输入的文本对儿的句子向量表达,再基于句子向量计算相似度;另一类是直接以词语粒度的相似度矩阵作为输入,学习并计算文本相似度。下面将分别展开介绍。
这里列举最近两年比较有代表性的两篇文章。
如下图所示,是Severyn发表在2015年SIGIR上的文章[5],并用于TREC上的两个NLP任务:答案选择和微博检索。以答案选择任务为例,从左至右,作者采用上下并行的双通道浅层CNN模型来分别学习输入的问题和答案的句子向量表达,然后经过相似度矩阵M计算相似度,全连接层和隐藏层进行特征整合和非线性变换,最后softmax层来输出输入候选答案被预测为正确或者错误的概率。左半部分的双通道CNN即可理解为学习从词向量到句子向量的表达模型。
如下图所示,是Wang发表在2016年COLING的文章[6],同样应用于答案选择任务,并在两个公认基准数据集WikiQA和QASent上进行了测试。文章的核心想法是采用双通道CNN来抽取输入问题和答案之间的相似性与不相似性,整合成最终的句子向量并计算相似性。
如下图,Meng在其文章中[7]直接基于词向量计算输入文本对儿在单词粒度上的相似度(计算方式有多种:欧式距离、余弦距离、参数化的相似矩阵),并以此为后续深层卷积神经网络的输入,最终学习得到的向量经过全连接层和softmax层进行预测。
有了前面在深度学习框架下,文本向量学习的背景和基于CNN短文本相似度的现有方法的总结和介绍,终于进入本篇文章的重头戏,LSF-SCNN模型的介绍。LSF-SCNN模型延续了基于Siamese结构神经网络模型构建短文本表达模型的总体思路[5],但通过引入三种优化策略:词汇语义特征 (Lexical Semantic Feature, LSF)、跳跃卷积 (Skip Convolution, SC)和K-Max均值采样 (K-Max Average Pooling, KMA) ,分别在词汇粒度、短语粒度、句子粒度上抽取更加丰富的语义特征,并在答案选择AS计算短文本相似度问题上取得了非常好的效果。
下图展示了LSF-SCNN的整体框架图,自底向上,LSF-SCNN模型由3个模块组成:(1)对于输入的问题和候选答案,我们利用词汇语义特征技术为每个单词计算LSF特征值,以此来表征问题与答案之间的语义交互特征。LSF特征会和词嵌入拼接在一起构成词语粒度上更加丰富的特征表达,表达词的向量再次拼接构成句子矩阵。(2)问题和候选答案的句子矩阵经过跳跃卷积层和K-Max均值采样层,最终形成对问题和答案各自的向量表达,记作Xq和Xa 。(3)Xq和Xa会根据学习得到的相似度计算矩阵M得到一个相似度分数。最后,相似度分数和Xq、Xa整合一起作为分类器的输入,最终得到输入候选答案a被预测为正确答案和错误答案的概率。接下来,我将一一介绍三个优化技术的实现细节。
SC技术实现可以参考[8]。Lei的文章应用于情感分类 (sentiment classification) 和新闻分类 (news categorization) 任务,而本文应用于答案选择任务。
本文在两个公认标准数据集QASent和WikiQA设计全面的实验。下图展示了两个数据集的一些统计信息。
两个数据集有以下两方面区别:
下面两个表格分别展示了LSF-SCNN模型与前人方法在QASent和WikiQA两个数据集上的效果对比,由此可见,LSF-SCNN模型相比于当前最好的方法,在MAP和MRR两个指标上,对QASent数据集提升了3.5%,对WikiQA数据集提升了1.2%。答案选择问题的baseline比较高,所以LSF-SCNN的提升效果还是非常显著的。
本文主要介绍了LSF-SCNN模型,即基于词汇语义特征的跳跃卷积模型 (Lexical Semantic Feature based Skip Convolution neural network ),基于卷积神经网络模型引入三种优化策略:词汇语义特征 (Lexical Semantic Feature, LSF)、跳跃卷积 (Skip Convolution, SC)和K-Max均值采样 (K-Max Average Pooling, KMA) ,分别在词汇粒度、短语粒度、句子粒度上抽取更加丰富的语义特征,从而更好的在向量空间构建短文本语义表达模型,并在答案选择 (Answer Selection) 问题上进行了实验验证。
其中词汇语义特征LSF技术可以更广泛的应用于基于神经网络结构学习文本对儿间向量表达的相关任务。跳跃卷积SC技术和K-Max均值采样技术更广泛的使用于存在卷积层和采样层的神经网络结构中。三种技术既可以根据需要单独使用,也可以相互助益共同提升模型整体效果。
原文:https://dl.acm.org/citation.cfm?spm=5176.100239.blogcont157756.28.rldvdc&id=3054216 本文转载于全球人工智能微信公众号
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。