语义相似度

什么是语义相似度?|开发者指南

语义相似度是指两段文本、短语、句子或更大块文本之间在意义上的重叠或相似程度,即使它们的措辞不同。

语义相似度的应用

语义相似度有多种应用,如:

搜索引擎优化

回答问题:语义相似度可以作为一种模糊逻辑来回答与用户提出的问题类似的问题。通常,当用户搜索他们想要的确切解决方案时,他们的问题描述并不准确。语义相似度能够找到所有与用户提出的问题接近的回答。

检索信息:搜索过程找到与查询主题相关的信息,然后根据它们与查询的相关性对结果进行排名。搜索可以包括大数据数据库和其他本地及远程信息源。许多搜索引擎都使用特定类型的 AI 技术。例如,微软最近宣布 Microsoft Edge 使用 AI 技术检索信息。

翻译

语义相似度的另一个应用是在翻译过程中确保所要表达的意思正确传达到目标语言。这一领域广泛使用 AI 技术。

原创性评估 - 抄袭检测

语义相似度用于识别彼此表达类似意义但措辞不同的句子或短语。一个具体的应用是检测剽窃——检测作者是否只是改写了源文本。教师和其他人也可以使用语义相似度来检测内容是否存在剽窃情况。

NLP 与文本表示

自然语言处理(NLP)关注计算机与人类语言之间的交互,以使机器能够理解、解释和生成人类语言。

文本表示是 NLP 的一个基本方面,因为它涉及将原始文本转换成可以被机器学习算法处理和理解的格式。正确的文本表示对于情感分析、机器翻译、文档分类和语义相似度测量等任务至关重要。它是搜索引擎运作的关键。以下是 NLP 中一些关键的文本表示方法。

词袋模型 (BoW)

BoW

是一种简单的文本表示方法,将文档视为单词的集合,忽略语法和单词顺序。它从所考虑的全部文本中创建一个独特单词的词汇表,并将每个文档表示为一个向量,其中每个元素对应于词汇表中单词的计数或存在。词袋模型直接简单,但缺乏上下文和语义意义。

TF-IDF

TF-IDF 是对 BoW 模型的一种改进,考虑了文档中单词相对于整个语料库的重要性。它根据单词在文档中的频率与在整个语料库中的频率之比,为文档中的每个单词分配一个权重。在文档中频繁出现但在语料库中很少出现的单词获得较高的权重。

词 Embedding

词 Embedding 是高维空间中词语的密集、连续值向量表示。像 Word2Vec、GloVe 和 FastText 这样的方法通过考虑词语在大型语料库中出现的上下文来学习 Embedding 。这些 Embedding 捕捉了词语之间的语义关系。词 Embedding 用于词类比、词汇相似度和文本分类等任务。

乍一看,类比和相似度之间似乎没有或几乎没有区别。然而,它们之间是有区别的,这将影响两段文本的关系。 类比是对两个在许多方面不同但在一个或多个特征上具有某些相似度的事物或概念的比较。它是通过将复杂的东西与更简单或更熟悉的东西进行类比来解释或理解的一种方式。类比通过将它们与更容易理解的概念联系起来,帮助传达抽象或复杂的想法。

另一方面,相似度指的是两个或多个事物或概念之间的相似或类似程度。它关注于使它们相似的共有特征或品质,即使它们并不是以类比中的相同方式直接相关或可比的。 总之,类比是一种比较形式,用于通过将复杂的想法类比为更简单的概念来解释,而相似度则是识别两个或多个事物之间的共同特征或特点,无论它们是否直接相关或用于比较。

上下文 Embedding

上下文 Embedding 是捕捉上下文中单词含义的单词表示。谷歌开发了 BERT(双向编码器表示来自 Transformer)。另一个生成模型是 GPT(生成预训练 Transformer)。虽然这些模型相似,但基本方法不同,考虑了句子中单词的周围上下文。然而,这两个模型通过在大量文本数据上预训练来捕捉意义和句子结构的细微差别。其目的是创建丰富的表示。

子词表示(Subword Representations)

在某些情况下,所考虑的文本使用复杂的构造,包括前缀、词根和后缀,或很少使用的词汇元素。在这种情况下,上下文 Embedding 不够,子词表示将单词分解成更小的单元,例如字符 n-gram 或字节对编码。这对于处理生词和形态丰富的语言特别有用。

句子 Embedding

句子 Embedding 旨在捕捉整个句子或短语的含义。像 InferSent 和 Universal Sentence Encoder 这样的方法使用各种技术,包括递归神经网络(RNN)、卷积神经网络(CNN)和注意力机制。

文档 Embedding

文档 Embedding 使用向量来表示整个文档。像 Doc2Vec 这样的技术扩展了单词 Embedding 的概念,以捕捉整个文档的上下文和含义。

混合模型

一些方法结合了不同层次的文本表示来创建混合模型。例如,将词 Embedding 和句子 Embedding 等技术一起使用,创建了能够捕捉局部和全局上下文的混合模型。

文本表示方法的选择取决于几个因素。这些包括手头的任务、可用训练数据的数量以及希望捕捉的语言信息的期望水平。更多最新的模型,如 [BERT](https://zilliz.com.cn/blog/nlp models-nlp-zilliz) 和 GPT,由于能够有效捕捉上下文和语义,已在各种 NLP 任务中实现了最先进的性能。混合模型有几种类型:

集成学习算法(Ensemble Method)

集成方法结合了多个模型的输出来做出最终预测。对于语义相似度,这可能涉及结合使用不同类型特征或技术的模型的分数。

机器学习融合(Machine Learning Fusion)

像决策树、随机森林或神经网络这样的机器学习技术可以学习根据训练数据中的模式来结合各个模型的得分。

规则融合(Rule-Based Fusion)

通过使用预定义的规则,您可以以特定方式结合不同模型的输出,以捕捉相似度的不同方面。

元特征(Meta-Feature)

一些混合模型使用元特征,如单个模型的置信度得分,来指导最终相似度得分的计算。

排序学习(Learning to Rank)

在某些情况下,混合模型被训练为根据人工注释的相似度得分对文本对进行排名。然后,这些模型可以用来对新的文本对进行排名。

因此,混合模型通常是通过顺序应用几种特定方法来实现的。混合体中的每种方法都专注于所评估文本的特定方面。

计算语义相似度

计算语义相似度的常见方法包括:

余弦相似度

测量向量空间中两个向量之间角度的余弦值。值越高,语义越相似。

基于词 Embedding 的方法

使用预训练的词 Embedding 来根据向量距离计算相似度。

连体网络(Siamese Network)

深度学习架构,学习预测两个输入是相似还是不相似的。

基于注意力的模型 (Attention-Based Model)

这些模型关注两个句子中的特定单词,强调用于比较的重要部分。

语义相似度模型的挑战

由于语言、上下文、成语表达和文化差异的细微差别,实现准确的语义相似度计算是具有一定难度。此外,不同语言和主题领域中方法的有效性可能会有所不同。

语义相似度模型评估

工程师必须使用适当的性能测试数据集和指标来评估语义相似度模型的性能。常见的评估指标包括皮尔逊相关系数(Pearson correlation)、斯皮尔曼等级相关系数(Spearman's rank correlation)和均方误差。