自然语言处理系列三十五》 语义相似度》基于深度学习的语义相似度算法原理

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书 《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

文章目录

自然语言处理系列三十五

基于深度学习的语义相似度算法原理

在自然语言处理(NLP)领域,计算语义相似度是一个长期存在的挑战,尤其是在搜索、推荐系统以及机器翻译等应用场景中。以下是对基于深度学习的语义相似度计算方法------DSSM及其变种CNN-DSSM和LSTM-DSSM的详细介绍。

8.2 基于深度学习的语义相似度

8.2.1 DSSM (Deep Structured Semantic Models)

在搜索引擎和搜索广告中,语义相似度计算是至关重要的,特别是在召回和排序阶段。传统的文本相似度方法(如BM25)往往无法有效地捕捉语义相关性,例如"从北京到上海的机票"与"携程网"的关联性。

DSSM 提供了一个新的框架来解决这个问题。它将查询和文档表示为低维语义向量,并利用cosine相似度来衡量这些向量之间的距离。DSSM的基本结构包括三个层次:输入层、表示层和匹配层。该模型能够直接使用字符级别的输入,减少了对分词的依赖并提高了泛化能力。此外,它通过统一的监督式训练流程避免了无监督模型映射所带来的误差。

优点:

  • 使用字符向量减少了对分词的依赖,并增强了模型的泛化能力。
  • 采用统一的监督训练流程,提高了模型的准确性。

缺点:

  • 采用了词袋模型,这导致了语序信息的丢失。
  • 端到端的模型使得结果不可控。
8.2.2 CNN-DSSM (Convolutional Neural Network-based DSSM)

为了克服DSSM中词袋模型的局限性,CNN-DSSM 引入了卷积神经网络(CNN)。CNN-DSSM在输入层和表示层加入了卷积和池化操作,从而能够提取局部和全局的上下文信息。

优点:

  • 通过卷积层和池化层有效地保留了上下文信息。

缺点:

  • 对于相隔较远的上下文信息,CNN-DSSM可能无法很好地捕捉到它们之间的联系。
8.2.3 LSTM-DSSM (Long Short-Term Memory-based DSSM)

LSTM-DSSM 利用了长短时记忆网络(LSTM)来处理CNN-DSSM在处理长距离依赖关系方面的不足。LSTM能够更好地捕捉序列中的长期依赖关系。

优点:

  • LSTM能够有效地处理长距离依赖关系。

缺点:

  • 未在本文中具体提及,但通常LSTM模型相比其他模型可能会更加复杂且计算成本更高。

精华摘要

尽管DSSM及其变种在语义相似度计算方面提供了强大的工具,但它们也有一些限制。比如,DSSM作为一种端到端的模型,在某些情况下可能无法提供足够的控制,特别是在需要高准确性的场景中。另外,DSSM是一种弱监督模型,这意味着它需要大量的训练数据才能达到良好的性能,这对于大多数非搜索引擎业务来说可能难以实现。因此,在实际应用中,可能需要结合监督学习的方法和其他无监督特征提取技术来弥补这些缺陷。

词频-逆文档频率(TF-IDF)

TF-IDF是Term Frequency - Inverse Document Frequency的缩写,即"词频-逆文档频率"。它由两部分组成,TF和IDF。下一篇文章详细介绍。

总结

此文章有对应的配套新书教材和视频:

【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。

全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。

本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。

【配套视频】
自然语言处理NLP原理与实战 视频教程【陈敬雷】

视频特色:《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理,以及源码级别的应用操作实战,直接讲解自然语言处理的核心精髓部分,自然语言处理从业者或者转行自然语言处理者必听视频!

上一篇:自然语言处理系列三十四》 语义相似度》同义词词林》代码实战
下一篇:自然语言处理系列三十六》词频-逆文档频率(TF-IDF)

相关推荐
咕咕吖4 分钟前
对称二叉树(力扣101)
算法·leetcode·职场和发展
-Nemophilist-22 分钟前
机器学习与深度学习-1-线性回归从零开始实现
深度学习·机器学习·线性回归
九圣残炎36 分钟前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
lulu_gh_yu42 分钟前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
苏格拉真没有底1 小时前
playground.tensorflow神经网络可视化工具
ai编程
丫头,冲鸭!!!1 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
Re.不晚1 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
为什么这亚子2 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
2 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
~yY…s<#>2 小时前
【刷题17】最小栈、栈的压入弹出、逆波兰表达式
c语言·数据结构·c++·算法·leetcode