漫谈语义(文本)匹配

作者简介:Neo,二范数智能AI团队成员,研究方向为信息检索、知识图谱构建、医疗数据挖掘与分析,对机器学习、NLP等领域有浓厚兴趣。

1、背景

自然语言处理是人工智能领域的重要分支,以文本处理智能化为任务导向正在驱动学术界和工业界对其进行更为深入的探索,而语义匹配(文本匹配任务)就是自然语言处理中最为典型的任务。以电商场景为例,广为关注的问答系统、信息检索、对话系统等领域均离不开文本匹配任务的发展,下面,将围绕语义匹配主题进行探讨。

2、文本匹配介绍

自然文本匹配的发展经历着从传统方法到深度神经网络方法的演变。

传统方法更多是在关注词形和词汇层面的匹配问题,主流的算法有TF-IDF、 BM25 等,它们在搜索引擎的原理中使用较为广泛。如 BM25 算法通过计算候选项对查询字段的覆盖程度来得到两者之间的匹配得分,得分越高的网页则匹配度越高。而类似TF-IDF这类方法,通过建立倒排索可使查询变得很快,但实际上解决的只是词汇层面的相似度问题。在应用中,基于传统方法的语义匹配有着较大的局限,无法解决更深层的语义或知识缺陷,下面简单分析原因:

传统方法的局限性:

1)文本的多义、同义问题:

相同的词在不同语境下, 可以表达不同的语义, 例如苹果既表示水果, 也表示一家科技公司。同理,相同的语义也可由不同的词表达, 例如的士、taxi都表示出租车。

2)文本的语法结构问题:

相同的词组成的短语或句子, 不同的语序可表达不同的语 义, 例如深度学习和学习深度。更进一步, 还存在句法结构问题, 例如从北京到上海高铁和从上海到北京高铁虽然含有的词语完全相同, 但其语义完全不同。而北京队打败了广东队和广东队被北京队打败,两者的语义又完全相同。

3)文本匹配语境的非对称问题

文本匹配类的任务, 并不单单是文本相似度问题。一方面不一定要求语言上的相似, 例如网页搜索任务中 query 端的语言表述形式和网页端往往具有很大的差别, 至少在长度上就差距很大。另一方面也不一定要求语义上的相同, 例如问答任务中, 待匹配的两段文本并不要求同义, 而是看候选答案是否真正回答了问题。

之后出现的基于深度学习的方法则在一定程度上开始解决这些问题。

解决思路:

上述的传统方法的局限性提醒我们需要关注语义层面的匹配,而这一方面的匹配, 需要经历语义表示、相似度计算的步骤。

1)语义表示

语义表示则是如果把文本转化为计算机可以识别的语言,传统时代是无意义的高维度离散型向量;进入神经网络时代后,有意义的低维度稠密词向量开始占据主流,尤其以bert横空出世以后,预训练模型开始成为NLP多个任务的sota模型。

2)相似度计算

相似度计算则是对于上一阶段的语义表示进行度量,下表对目前广泛使用的度量方法进行总结:

漫谈语义(文本)匹配_第1张图片

基于字符和基于词语,各进行举例如下:

  • 基于字符,以最长公共子序列为例分析:

漫谈语义(文本)匹配_第2张图片

  • 基于词语,以欧式距离和余弦相似度为例分析:

欧氏距离衡量的是空间各点的绝对距离, 跟各个点所在的位置坐标直接相关;

而余弦相似度衡量的是空间向量的夹角, 更加体现在方向上的差异, 而不是位置。

当一对文本的长度差距很大、但内容相近时, 如果使用词频或词向量作为特征, 它们在特征空间中的的欧氏距离通常很大;

你可能感兴趣的:(知识图谱,人工智能,nlp,python)