0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自然语言任务方案思考:句子相似度和匹配

深度学习自然语言处理 来源:深度学习自然语言处理 作者:CS的陋室 2021-01-13 09:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

0 小系列初衷

自己接触的项目大都是初创,没开始多久的项目,从0到1的不少,2020年快结束,感觉这个具有一定个人特色的技术经验可以在和大家分享一下。

计划篇章:

(已完成)文本分类篇。针对NLP文本分类任务。

(已完成)序列标注(NER)篇。针对命名实体识别、序列标注任务。

文本匹配篇。针对语义相似度计算、向量匹配等问题。

人工特征学习篇。针对多特征的机器、深度学习方案。

开始我把这个标题叫做语义匹配,后来感觉还是不能叫这个名字,应该把问题放大为句子相似度和匹配问题。

1 语义匹配的场景

语义匹配的核心其实是评价两个query之间的相似度,可以看看现在常用的场景:

搜索领域,语义向量召回是一个比较新潮的召回方式,灵活性更高,下游的精排部分也可以通过语义相似度来进行排序。

智能客服,之前的阿里小蜜的文章也提过,对于长尾的结果,可以通过向量召回的方式来进行处理。

对话领域,可以说是智能客服的眼神,闲聊类的,可以通过语义匹配完成闲聊的回复,当然多轮也有多轮的玩法。

可以看到,各种领域,其实语义匹配的舞台非常大,了解这方面的方案对NLP技术栈的了解非常有用。

2 方法选型

2.1 文本层面的相似

最简单的方法往往就是最浅层的方案,所以还是文本层面的相似,方法逐步升级是这样的:

编辑距离,这应该是最严格的一种相似了。

cqr,分子是句子1和句子2词汇的交集词汇量,分母是句子1和句子2的并集词汇量。

加权的cqr,可以做一个简单的词权重,然后做加权的cqr。

BM25。传统搜索的常用方法。

文本层面的方法,在搜索领域已经非常成熟,BM25已经具有很高的准度,结合上游常用的一些改写,其实已经能够达到很好的效果,这也是经典搜索最常用的一套范式。

2.2 向量表征作召回

向量召回是当前比较流行的一种新的搜索技术,这里以来两个关键技术点,向量索引和句子表征技术。

向量索引的是指就是一种向量最近邻的搜索方案,最常用的场景就是KNN,而在我们的场景中,就是把句子表征成一个向量,构建索引,新来一个句子,用同样的放哪个还是构建一个向量,就可以完成相似度召回,常用的构建索引方式推荐两种,这两种都已经有开源工具支持。

annoy,一种基于树的构造方法。

hnsw,一种基于图的构造方法,这应该是目前我已知速度最快的方法了。

说完了向量索引,就要说向量表征了,只有足够好的向量表征,上面说的向量召回,召回的东西才会足够好,为什么我说好呢,就是因为这里涉及的好的维度多:

准确率足够高,召回的内容真的是和句子足够接近。

有比较强的泛化能力,这也是语义向量召回相比传统搜索的相似召回最突出的优势,只要语义足够接近,“查询”和“查看”就可能匹配到,“幂幂”和“杨幂”也能打中,这样能降低我们挖掘数据带来的成本。

好的相似度匹配能识别关键词,只需要模型端到端处理,不需要单独抽关键词。

那么,这个语义表征,一般都是什么方法呢,这里也是提几个:

word2vector预训练。如果语料不足甚至没有语料,我们其实可以用开源的预训练好的w2v词向量作为基线,取均值就能拿到句向量。

如果有一些平行样本,可以开始考虑用一些平行预料(sentence1,setence2,label)进行finetuning,说白了就是两个向量分别去词向量后均值,最终用余弦或者欧氏距离计算相似度就行。

数据量足够后,就可以开始在上面搭积木了,CNN、LSTM之类的都可以尝试,当然经验之谈,self-attention可以尝试。

数据量再多点,我们就可以上bert之类的大家伙了。

现在的语义相似度,更多是通过优化交互特征来提升相似度计算的效果,但是在向量召回这里,由于目前只能支持简单的相似度召回,两个query只有在计算相似度的最后一步才能够见面,因此query之间的交互特征是无法提取的,所以很多现在流行的方法是用不了的。

2.3 语义相似度

如果语义相似度要被用在后续的精排,无论是搜索、对话甚至是推荐,在经历初筛之后,我们往往有更多时间和经历来比对剩余的结果和用户query之间的相似程度,此时我们就可以使用交互特征逐一匹配,完成最后的精排,这些方案往往在大量比赛中就有提到,以DSSM为基,升级很多方案,包括很多人知道的EISM等,当然比赛的经验也告诉我们,模型本身还可以加入更多的文本特征来协助衡量语义相似度,因此在用语义相似度模型的同时,可以加入一些人工特征来协助优化,这也是推荐系统的wide&deep中所提到的深浅层特征均用的思想。

这里给一篇蚂蚁金服比赛的文章吧,大家可以根据这个思路去参考优化:https://blog.csdn.net/u014732537/article/details/81038260

3 优化手段

当然,上面的方式是让大家用最快的速度去完成一个demo或者说baseline,然后我们需要一系列的手段进行优化,在这里也给大家介绍一些有用的方案。

如果你的场景里需要一些英文,可以加入一些英文文本去finetuning,开放域的。

针对问答场景,由于用户的问题都有明显意图,因此做一些词权重、attention的操作有利于效果提升,包括提槽,当然在浅层模型的情况下,词的归一化也有好处。

通过传统的搜索,用ES召回之类而方式,可以召回很多文本接近但是语义遥远的case,通过人工标注的样本对效果的提升很有好处。

同样是hard case挖掘,用自己的语义模型做召回,召回在阈值附近的case,做一下人工的复核,这样做样本也对效果提升有好处,这其实用的是主动学习的思想。

4 小结

做完搜索,后来又开始做向量表征和召回,感觉就很奇妙,能够理解传统搜索和相对新潮的向量表征召回之间的关系,这两者之间的关系还是挺微妙地,互相借鉴的过程中能够产生一些火花,例如向量检索之前可以召回一些相似的、标准的query然后来检索,这样能大幅提升准确率,也一定程度降低了对模型深度的要求。(隐约感觉是时候写一篇有关模型和规则特征之间关系的文章了?)

责任编辑:xj

原文标题:任务方案思考:句子相似度和匹配

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语义
    +关注

    关注

    0

    文章

    22

    浏览量

    8793
  • 自然语言处理

    关注

    1

    文章

    629

    浏览量

    14563

原文标题:任务方案思考:句子相似度和匹配

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    云知声论文入选自然语言处理顶会EMNLP 2025

    近日,自然语言处理(NLP)领域国际权威会议 ——2025 年计算语言学与自然语言处理国际会议(EMNLP 2025)公布论文录用结果,云知声提交的《面向门诊病历生成的高质量医患对话合成技术
    的头像 发表于 11-10 17:30 513次阅读
    云知声论文入选<b class='flag-5'>自然语言</b>处理顶会EMNLP 2025

    SGS为TCL华星自然光MNT显示颁发高自然相似 Performance Tested Mark

    华星27"自然光MNT显示颁发"高自然相似Performance Tested Mark",这是继2025年9月1日TCL华星12.1"教育平板显示获得全球首张SGS高
    的头像 发表于 10-19 20:26 241次阅读
    SGS为TCL华星<b class='flag-5'>自然</b>光MNT显示颁发高<b class='flag-5'>自然</b>光<b class='flag-5'>相似</b><b class='flag-5'>度</b> Performance Tested Mark

    HarmonyOSAI编程自然语言代码生成

    安装CodeGenie后,在下方对话框内,输入代码需求描述,将根据描述智能生成代码,生成内容可一键复制或一键插入至编辑区当前光标位置。 提问示例 使用ArkTs语言写一段代码,在页面中间部分
    发表于 09-05 16:58

    【HZ-T536开发板免费体验】5- 无需死记 Linux 命令!用 CangjieMagic 在 HZ-T536 开发板上搭建 MCP 服务器,自然语言轻松控板

    )进行调试或控制,不仅门槛高,还容易记错命令。 解决方案 :MCP(Machine Control Protocol)服务器可将自然语言指令转换为底层操作,结合 Cangjie Magic 的自然语言
    发表于 08-23 13:10

    太阳光模拟器光谱匹配测量:关键技术与标准解读​

    为多领域提供高标准的模拟解决方案。下文Luminbox将带大家了解光谱匹配测量的关键技术与标准。光谱匹配测量的关键技术luminbox光
    的头像 发表于 07-24 10:23 505次阅读
    太阳光模拟器光谱<b class='flag-5'>匹配</b><b class='flag-5'>度</b>测量:关键技术与标准解读​

    太阳光模拟器性能的影响参数:光谱匹配、光谱覆盖率及光谱偏离率

    的影响。​ 一、光谱匹配SMD:衡量光谱相似的核心指标太阳光模拟器与AM1.5G的光谱对比图光谱匹配
    发表于 07-21 15:35

    云知声四篇论文入选自然语言处理顶会ACL 2025

    近日,第63届国际计算语言学年会ACL 2025(Annual Meeting of the Association for Computational Linguistics,简称ACL)论文接收
    的头像 发表于 05-26 14:15 1042次阅读
    云知声四篇论文入选<b class='flag-5'>自然语言</b>处理顶会ACL 2025

    基于LockAI视觉识别模块:C++多模板匹配

    多模板匹配是一种在图像中同时寻找多个模板的技术。通过对每个模板逐一进行匹配,找到与输入图像最相似的区域,并标记出匹配最高的结果。本实验提供
    的头像 发表于 05-14 14:37 1335次阅读
    基于LockAI视觉识别模块:C++多模板<b class='flag-5'>匹配</b>

    基于LockAI视觉识别模块:C++模板匹配

    )计算相似。 找到匹配结果中的最大值及其位置。 根据相似阈值判断匹配是否成功。 绘制矩形框标
    发表于 05-13 14:40

    小白学大模型:从零实现 LLM语言模型

    在当今人工智能领域,大型语言模型(LLM)的开发已经成为一个热门话题。这些模型通过学习大量的文本数据,能够生成自然语言文本,完成各种复杂的任务,如写作、翻译、问答等。https
    的头像 发表于 04-30 18:34 1062次阅读
    小白学大模型:从零实现 LLM<b class='flag-5'>语言</b>模型

    东芝硬盘如何优化存储

    自然语言处理、推荐系统和图像识别同时开跑,每个任务的训练速度呈指数级下降,大量时间浪费在等待数据加载上。像极了早高峰挤地铁——谁都别想快!
    的头像 发表于 04-11 11:17 815次阅读

    自然语言提示原型在英特尔Vision大会上首次亮相

    在英特尔Vision大会上,Network Optix首次展示了自然语言提示原型,该方案将重新定义视频管理,为各行各业由AI驱动的洞察和效率提速。
    的头像 发表于 04-09 09:30 790次阅读

    ​VLM(视觉语言模型)​详细解析

    视觉语言模型(Visual Language Model, VLM)是一种结合视觉(图像/视频)和语言(文本)处理能力的多模态人工智能模型,能够理解并生成与视觉内容相关的自然语言。以下是关于VLM
    的头像 发表于 03-17 15:32 7572次阅读
    ​VLM(视觉<b class='flag-5'>语言</b>模型)​详细解析

    语言模型的解码策略与关键优化总结

    的技术参考。主要涵盖贪婪解码、束搜索、采样技术等核心解码方法,以及温度参数、惩罚机制等关键优化手段。大型语言模型的技术基础大型语言模型是当代自然语言处理技术的核心
    的头像 发表于 02-18 12:00 1068次阅读
    大<b class='flag-5'>语言</b>模型的解码策略与关键优化总结

    【「基于大模型的RAG应用开发与优化」阅读体验】+Embedding技术解读

    理和理解这些数据。在自然语言处理中,Embedding常用于将文本数据中的单词、句子或文档映射为固定长度的实数向量,这些向量包含了丰富的语义信息。RAG技术是一种结合信息检索与文本生成能力的技术,它通过
    发表于 01-17 19:53