文本匹配任务(下)

news2024/12/23 19:17:28

文本匹配任务

  • 1.文本匹配-深度学习
    • 1.1表示型
      • 1.1.1训练方式一
      • 1.1.2训练方式二(Triplet Loss)
    • 1.2交互型
    • 1.3交互型和表示型对比
  • 2.对比学习
    • 2.1图像中
    • 2.2NLP中
  • 3.真实场景-海量向量查找
    • 3.1CD树
      • 3.1.1空间切割
      • 3.1.2Annoy

1.文本匹配-深度学习

简介: 深度学习实现文本匹配任务主要包含,表示型和交互型两种实现逻辑;表示型:就是将输入表示为向量;交互性,就是对输入直接输出一个匹配的判断结果。

1.1表示型

释义: 表示型方案,模型是将输入转化为向量,目标是使得向量尽可能表示出词的含义。这个模型可以称为一个解码器Decoder。通过模型表达的向量,再使用相似度计算的算法,求出相似度分数。
示意图:
在这里插入图片描述
解释:

1.上面图示中,有两个Encoder;其实可以看成一个。
2.除了Encoder部分外,matching layer是对表示的向量进行分类的,也很重要,除了通过余弦函数、欧式距离外,还可以通过一层网络进行计算。

1.1.1训练方式一

步骤:

1.对于两个匹配的样本,预期输出分值为1。
2.对于两个不匹配的样本,预期输出分值为0。
3.本质上相当于2分类任务。
4.对于输入进行匹配任务的两个向量,在进行matching layer计算输入时,也可以尝试实验不同的方案和组合

举例如下:
在这里插入图片描述
介绍:
上述举例方案采用的是BERT模型;并且在实验中,进行matching layer输入:u、v、|u-v|的效果最好。

1.1.2训练方式二(Triplet Loss)

训练目标: 使具有相同标签的样本在embedding空间尽量接近。使具有不同标签的样本在embedding空间尽量远离。

示意图
在这里插入图片描述
介绍: 左侧表示随机化时,正样本与负样本相对匹配样本的距离。匹配样本也称为锚点、原点。Triplet Loss还可用于图像识别,即人脸核验等操作。

原理释义:

1.输入是一个三元组<a, p, n>
2.a:anchor 原点
3.p:positive 与a同一类别的样本
4.n:negative 与a不同类别的样本
5.在embedding空间中,三元组损失函数如下:
6. 𝐿=max⁡(𝑑(𝑎, 𝑝)−𝑑(𝑎, 𝑛)+𝑚𝑎𝑟𝑔𝑖𝑛, 0)
7. 最小化L,则d(a,p)->0,d(a,n)->margin
8.d代表余弦距离margin代表正样本和负样本的区别度;一般取0.1

1.2交互型

释义: 即输入两个匹配文本,交由大模型对两个文本间的关系进行打分。类似二分类任务。

示意图如下:
在这里插入图片描述
注意:虽然这里图上展示是使用的两个embedding layer;但是实际是同一个。

1.3交互型和表示型对比

表示型
优点:训练好的模型可以对知识库内的问题提前计算向量,在实际查找过程中,只对输入文本做一次向量化。就可以完成计算。而交互性对知识库中的内容,每来一次输入的问题,都需要全部匹配知识库内容计算一次。
缺点:在向量化的过程中不知道文本重点

交互型
优点:通过对比把握句子重点。而表示型不可以(举例:明天可能要下雨。明天一定要下雨。明天可能要下雪。)
缺点:每次计算需要都需要两个输入。

2.对比学习

训练目标: 和表示型训练任务一样,为了训练一个Encoder编码器。将输入表示成合理的向量。

思想原理: 表示型、交互型编码器训练都离不开标注数据(负样本、正样本),标注的数据需要耗费大量的人力;对比学习考虑通过对未标注的数据,自动的添加轻微遮挡,来构建正样本,而不同的原始数据之间构成负样本,就可以完成训练并且无须手动标注了。

2.1图像中

示意图:
在这里插入图片描述
释义:

1.这里将猫的图片,加上不同的滤镜,就构成了两张相似的正样本材料,即可进行训练。
2.除了数据上的处理外,后面的模型层的训练和构成逻辑和表示型、交互型一致。
3.不同原始材料之间就构成负样本。

2.2NLP中

示意图:
在这里插入图片描述
释义:

1.在NLP中,同样是对一条输入,进行语义相似的调整,取构建正样本,不同原始材料之间构成负样本。
2.语义相似度的自动调整,有不同的方案。
3.语义相似的调整a:,在字符的时候,就对输入的文本行调整,替换同义词、近义词、加停用词等。
4.语义相似的调整b:在字符转化成向量后,在网络中调整;比如在BERT层之后,Pooling层前,加入Dropout层;向量就会有一定几率省略或者增大;这样就有过Dropout层向量和没有过两个,进行下一步的训练。或者在embedding时,将其中随机抽掉几行向量,也可以得到两个训练的样本。
5.这样的调整训练是有一定效果的;结合着部分标注数据来做,相对于只用标注数据做,有一定优化效果。而且标注数据需求要小些。

注意: 这种方案的思想本质是希望通过无监督、或自监督的方式,能够用海量的数据进行模型训练,而不依赖于人的标注。

3.真实场景-海量向量查找

备注: 下面介绍的2种算法,只是作为一种思想的了解;真实的场景中,都是根据数据情况,调研选择成熟的框架来实现即可。

3.1CD树

备注: 在这里介绍的是一种典型或者基础的算法,纯数学的一种应用,只做一个简单的介绍。

3.1.1空间切割

示意图介绍:

1.左侧是切割的示意图,右侧是根据切割的方式构建的树。
2.每一个点代表知识库中需要匹配的向量,这里使用2维向量举例。

在这里插入图片描述
相似度计算举例

1.现在有向量(3,5),需要查找一个相似度最高的向量。
2.根据横纵坐标,简单的比较可以得到,横坐标3;位于(2,3)(4,7)之间;纵坐标5,位于(5,4),(4,7)之间。所以向量(3,5)快速匹配到最下方的节点(4,7)上。
3.计算(3,5)到(4,7)的距离S1;和(3,5)到(4,7)切割平面的距离D1;由图可知,D1<S1
4.说明可能存在点,在(4,7)平面的右侧,可能存在一个点,使得距离更接近(3,5);这一侧最近的节点为(5,4)
5.重复3,4步骤;完成(2,3)点的计算,最后计算(7,2)根节点,距离比之前的计算都大了,则根据点右侧无须计算;停止
6.在已有的计算向量中,使用相似度计算(余弦、欧式距离等),选出最相似的向量即可。

切割逻辑:

1.首先根据X或者Y寻找所有知识库向量的中位数。这里根据X,找到(7,2)
2.计算所有点的X轴的方差,和Y轴的方差,X轴>Y轴;所以X=7的平面切割。
3.下一步寻找Y轴的中位数,左侧则找到(5,4)。
4.计算Y=7的平面左侧三个数(2,3)(5,4)(4,7)X轴的方差,和Y轴的方差;Y轴>X轴;所以切割Y=4。
依次计算,最后完成切割。

3.1.2Annoy

方法逻辑: 分割过程相当于Kmeans聚类,通过不断的进行2聚类,将平面拆分切割。重复分割过程,直到每个空间内的点个数小于设定值。下面通过图示大概表示过程。

下面图片表示过程:

一
二
三
最后组成一个CD树:
在这里插入图片描述

注意: 上线介绍的方法都属于比较古老的内容,当前RAG使用的检索方案是通过较为复杂的优化的。可以达到上亿数据,在10ms内完成检索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2109589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EasyExcel 文件导出 - 合并某些列值相同的行

文章目录 EasyExcel 文件导出 - 合并某些列值相同的行最终效果实现思路创建单元格合并的策略类使用 EasyExcel 文件导出 - 合并某些列值相同的行 在数据处理与文件导出的过程中&#xff0c;我们常常会遇到各种特定的需求。今天&#xff0c;我们就来探讨一下使用 EasyExcel 进行…

VsCode 联想路径配置

问题&#xff1a;举一个例子&#xff0c;引入文件 import store from ‘./store’&#xff0c;在输入 ./st 后会提示store。 配置路径别名后 webpack: {// 配置别名alias: {// 使用 表示 src 文件所在路径: path.resolve(__dirname, src)}}项目配置路径后输入 import store f…

JVM面试真题总结(一)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ Java主要是解释执行还是编译执行?请说明理由 Java既是解释执行的…

828华为云征文|部署私有云和文档管理系统 Kodcloud

828华为云征文&#xff5c;部署私有云和文档管理系统 Kodcloud 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 产品优势1.3 对比Flexus L实例和ECS 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 Kodcloud3.1 Kodcloud 介绍3.2 Docker 环境…

Google数字车钥匙:引领汽车互动新纪元

在科技的浪潮中&#xff0c;Digital Car Key正以一种全新的姿态重塑我们与汽车的互动。告别传统的钥匙束缚&#xff0c;只需轻触手机应用&#xff0c;即可轻松掌控汽车。这一创新解决方案不仅大幅提升了安全性&#xff0c;更带来了前所未有的便捷&#xff0c;无论是城市通勤还是…

SSM校园兼职网站—计算机毕业设计源码25557

摘 要 当今人类社会已经进入信息全球化和全球信息化、网络化的高速发展阶段。丰富的网络信息已经成为人们工作、生活、学习中不可缺少的一部分。人们正在逐步适应和习惯于网上贸易、网上购物、网上支付、网上服务和网上娱乐等活动&#xff0c;人类的许多社会活动正在向网络化发…

Kafka【九】如何实现数据的幂等性操作

为了解决Kafka传输数据时&#xff0c;所产生的数据重复和乱序问题&#xff0c;Kafka引入了幂等性操作&#xff0c;所谓的幂等性&#xff0c;就是Producer同样的一条数据&#xff0c;无论向Kafka发送多少次&#xff0c;kafka都只会存储一条。注意&#xff0c;这里的同样的一条数…

C++ 在给定斜率的线上找到给定距离处的点(Find points at a given distance on a line of given slope)

给定二维点 p(x 0 , y 0 )的坐标。找到距离该点 L 的点&#xff0c;使得连接这些点所形成的线的斜率为M。 例子&#xff1a; 输入&#xff1a; p (2, 1) L sqrt(2) M 1 输出&#xff1a;3, 2 1, 0 解释&#xff1a; 与源的距离为 sqrt(2) &#x…

【C++二分查找】2594. 修车的最少时间

本文涉及的基础知识点 C二分查找 LeetCode2594. 修车的最少时间 给你一个整数数组 ranks &#xff0c;表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。 同时给你一个整数 cars &#xff0c;表示总共需要修…

论文阅读笔记《面向集群协同的两点相对定位技术》

邓廷祥,任鹏,程甲,等.面向集群协同的两点相对定位技术[J].兵工学报,2023,44(S2):22-34. 摘要 无人机精确定位的三个难题&#xff1a; GNSS难以提供稳定准确的位置信息、难以部署辅助锚点、传统的相对定位方法大多存在节点数量限制。 本文针对上述问题&#xff0c;提出了一种GN…

Django 中的用户界面 - 创建速度计算器

在 Django 中创建一个用户界面来计算速度&#xff0c;可以通过以下步骤完成。这个速度计算器将允许用户输入距离和时间&#xff0c;计算并显示速度。 一、问题背景 一位 Django 新手希望使用 Django 构建一个用户界面&#xff0c;以便能够计算速度&#xff08;速度 距离/时间…

为什么 2!=false 和 2!=true 返回的都是true

前言 今天突然想起一个奇怪的问题&#xff0c;记录一下&#xff0c;我在控制台执行内容如下&#xff1a; 由上图可见&#xff0c;2 ! false 和 2 ! true 返回的值竟然都是true&#xff0c;那么为什么呢&#xff0c;请看下文&#xff1a; 1 ! 操作符的作用 ! 是“不等于”操作…

用了这个编程助手,“数学建模”真的太简单了~

目录 一、ChatGPT在数学建模中的价值1、学习和指导2、模型评估和改进3、算法设计和优化4、解释和文档生成 二、作为编程手如何正确使用ChatGPT1、阅读代码及优化代码2、执行脚本3、生成单测 三、编程手备战建模大赛的一些建议1、明确&#xff1a;如何去问一个问题2、程序设计能…

生日贺卡录放音芯片,多段音频录音ic生产厂商,NVF04M-32minute

可以录音播放的生日贺卡与传统的纸质贺卡相比&#xff0c;它有着创意以及个性的特点&#xff0c;仅需少量的电子元器件&#xff0c;即可实现录音功能&#xff0c;搭配上文字&#xff0c;让声音存储在生日贺卡里&#xff0c;让贺卡也变得有温度&#xff0c;祝福我想亲口对TA说。…

【计算机网络】描述TCP建立连接与断开的过程

一、TCP连接的建立与断开 1、建立连接——三次握手 1、A的TCP向B发出连接请求报文段 其首部中的同步位SYN 1&#xff0c;并选择序号seq x&#xff0c;表明传送数据时的第一个数据字节的序号是 x 2、B的TCP收到连接请求报文段后&#xff0c;如同意&#xff0c;则发回确认。 B …

Android 15 正式发布到 AOSP ,来了解下新特性和适配需求

其实在年初的时候就整理过《2024 &#xff0c;Android 15 预览版来了》 和《提前窥探 Android 15 的新功能与适配》的相关内容&#xff0c;而随着时间进度推进&#xff0c;近日谷歌也正式发布了 Android 15 的正式版&#xff0c;虽然没什么「大亮点」&#xff0c;但是作为开发者…

PDF 全文多语言 AI 摘要 API 数据接口

PDF 全文多语言 AI 摘要 API 数据接口 PDF / 文本摘要 AI 生成 PDF 文档摘要 AI 处理 / 智能摘要。 1. 产品功能 支持多语言摘要生成&#xff1b;支持 formdata 格式 PDF 文件流传参&#xff1b;快速处理大文件&#xff1b;基于 AI 模型&#xff0c;持续迭代优化&#xff1b;…

重置电脑系统和重装系统哪个好_重置电脑系统和重装有什么区别

如果电脑系统出现蓝屏或者卡顿的故障&#xff0c;相信不少用户会选择重装系统来解决。不过&#xff0c;经常折腾电脑的人群&#xff0c;可能知道在Windows10系统中会有“重置此电脑”的功能&#xff0c;类似于恢复出厂设置的意思。重置电脑系统和重装系统哪个好&#xff1f;重置…

Linux_kernel移植uboot07

一、移植 根据硬件平台的差异&#xff0c;将代码进行少量的修改&#xff0c;修改过后的代码在目标平台上运行起来 移植还需要考虑硬件环境&#xff0c;驱动只需要考虑内核的环境 二、移植内容 1、移植Uboot uboot属于bootloader的一种&#xff0c;还有其他的bootloader&#x…

30+程序员转行做什么工作比较好?这是最靠谱的答案

作为程序员来说&#xff0c;其实程序员的发展之路有多种&#xff0c;因为你有这方面的基础在这&#xff0c;你可以结合自己的实际情况去做出相应的选择。 在当今的AI时代&#xff0c;程序员的工作模式已经受到了很大的冲击。随着AI大模型的快速发展和应用&#xff0c;传统初级程…