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

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

3天内不再提示

通过Token实现多视角文档向量表征的构建

深度学习自然语言处理 来源:NLP工作站 作者:刘聪 2022-07-08 11:13 次阅读

写在前面

今天给大家带来一篇ACL2022论文MVR,「面向开放域检索的多视角文档表征」,主要解决同一个文档向量与多个语义差异较大问题向量语义不匹配的问题。通过「插入多个特殊Token」实现多视角文档向量表征的构建,并为了防止多种视角间向量的趋同,引入了「退火温度」的全局-局部损失,论文全称《Multi-View Document Representation Learning for Open-Domain Dense Retrieval》。

该篇论文与前两天分享的DCSR-面向开放域段落检索的句子感知的对比学习一文有异曲同工之妙,都是在检索排序不引入额外计算量的同时,通过插入特殊Token构建长文档的多语义向量表征,使得同一文档可以与多种不同问题的向量表征相似。

8665290c-f08c-11ec-ba43-dac502259ad0.png

并且目前的检索召回模型均存在一些缺陷:

Cross-encoder类模型(BERT)由于计算量太大,无法在召回阶段使用;

Bi-encoder类模型(DPR)无法很好地表现长文档中的多主题要素;

Late Interaction类模型(ColBERT)由于使用sum操作,无法直接使用ANN进行排序;

Attention-based Aggregator类模型(PolyEncoder)增加了额外运算并且无法直接使用ANN进行排序。

867ad496-f08c-11ec-ba43-dac502259ad0.png

模型

868cedd4-f08c-11ec-ba43-dac502259ad0.png

通常向量表征时,采用特殊字符[CLS]对应的向量表征作为文本的向量表征。为了获取文档中更细粒度的语义信息,MVR引入多个特殊字符[VIE]替代[CLS]。

对于文档来说,在文本前插入多个字符[],为了防止干扰原始文本的位置信息,我们将[]的所有位置信息设置为0,文档语句位置信息从1开始。

对于问题来说,由于问题较短且通常表示同一含义,因此仅使用一个特殊字符[VIE]。

模型采用双编码器作为骨干,分别对问题和文档进行编码,如下:

其中,表示链接符,[VIE]和[SEP]为BERT模型的特殊字符,和分别为问题编码器和文档编码器。

如上图所示,首先计算问题向量与每个视角的文档向量进行点积,获取每一个视角的得分,然后通过max-pooler操作,获取视角中分值最大的作为问题向量与文档向量的得分,如下:

为了防止多种视角间向量的趋同,引入了带有退火温度的Global-Local Loss,包括全局对比损失和局部均匀损失,如下:

其中,全局对比损失为传统的对比损失函数,给定一个问题、一个正例文档以及多个负例文档,损失函数如下:

为了提高多视角向量的均匀性,提出局部均匀性损失,强制将选择的查询向量与视角向量更紧密,原理其他其视角向量,如下:

为了进一步区分不同视角向量间的差异,采用了退火温度,逐步调整不同视角向量的softmax分布,如下:

其中,为控制退火速度的超参,为模型训练轮数,每训练一轮,温度更新一次。注意:在全局对比损失和局部均匀损失中,均使用了退火温度。

实验

如下表所示,MVR方法对比于其他模型,获取了更好的效果。

86a9f596-f08c-11ec-ba43-dac502259ad0.png

并且,通过实验发现,当视角个数选择8时,MVR模型效果最佳。

86d99328-f08c-11ec-ba43-dac502259ad0.png

针对Global-Local Loss进行消融实验,发现当没有局部均匀损失和退火温度时,会使得效果下降;当两者都没有时,效果下降更加明显;并且一个合适退火速度,对训练较为重要。

86ef0b4a-f08c-11ec-ba43-dac502259ad0.png

相比于其他模型来说,在文档编码阶段和检索召回阶段的速度基本没有影响,但由于需要存储多个视角向量,因此造成存储空间变大。

8705501c-f08c-11ec-ba43-dac502259ad0.png

并且,对比了简单的句子切割或者等片段截断方法获取一个文本的多个向量表征,发现其效果均不理想,与DCSR一文观点一致。

87189046-f08c-11ec-ba43-dac502259ad0.png

总结

该论文为了对长文档更好地进行向量表征,引入多个特殊字符,使其生成「多种不同视角的向量表征」,解决了同一个文档向量与多个语义差异较大问题向量语义不匹配的问题。

审核编辑:郭婷

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

    关注

    45

    文章

    3585

    浏览量

    134114

原文标题:ACL2022 | MVR:面向开放域检索的多视角文档表征

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

收藏 人收藏

    评论

    相关推荐

    通过工业智能网关实现中间变量表达式的快速配置

    ,出现告警可能是多个变量达到条件而触发的,就需要对中间变量进行配置。 对此,物通博联提供基于工业智能网关实现中间变量表达式的快速配置操作。用户可以根据生产现场的应用需求,灵活配置中间变量表达式,
    的头像 发表于 10-08 17:10 196次阅读
    <b class='flag-5'>通过</b>工业智能网关<b class='flag-5'>实现</b>中间变<b class='flag-5'>量表</b>达式的快速配置

    量表接入能源监测平台实现远程监控节能管理

    在这个信息化、智能化的时代,节能减排已经成为全球共识。如何在保障生活质量的同时,最大限度地节约能源? 热量表是一种用于测量供暖或制冷系统中热能消耗的设备。通过加装块热量表,可以精确地
    的头像 发表于 07-22 10:42 223次阅读

    通过工业智能网关实现CJ188水表数据采集

    的集中抄表系统,是工商业能耗数据采集的协议通道。 对此,物通博联提供基于工业智能网关的CJ188数据采集解决方案。通过将工业智能网关通过串口接入水表、燃气表、热量表、冷量表等仪表设备,
    的头像 发表于 06-04 10:32 336次阅读
    <b class='flag-5'>通过</b>工业智能网关<b class='flag-5'>实现</b>CJ188水表数据采集

    请问STM8L052R8的USART2中断向量在哪?

    我现在在使用STM8L052R8,在使用手册中介绍有3个USART串口,但中断向量表中只有USART1有中断向量,那么另外两个串口不能使用中断接收吗?没有中断发送可以,但没有中断接收,臣妾没有办法用啊!请各位达人解答一下怎么使用另外两个串口?先谢谢了。
    发表于 05-09 06:33

    先楫6880如何实现bootload + APP应用跳转

    通过boot来判断是哪种启动方式。 因此,内存管理是保证程序正确运行的前提。在实现bootload跳转的前提无非两个问题: (1).app程序跳转的地址。 (2).app程序的中断向量表。 2.
    发表于 04-26 16:03

    STM32F103CB将中断向量表放到RAM后就不正常了,为什么?

    Code284funtion_inram.o(i.USART2_IRQHandler) 然后在main()的开始中设置中断向量表到RAM中: NVIC_SetVectorTable
    发表于 04-25 08:08

    请问中断向量重复定义怎么处理?

    。可以编译通过,但因为中断向量表有错,程序在SystemClock_Config();后 就跑飞了。 如果去除其中一个定义,则程序不会跑飞。请问遇到这种情况怎么处理?
    发表于 03-28 06:45

    STM32F429的工程标准库移植到HAL库后中断向量表异常的原因?

    STM32F429的工程标准库移植到HAL库后中断向量表异常
    发表于 03-20 06:02

    stm32cubeide更改ld文件中的Flash偏移和中断向量表的宏VECT_TAB_OFFSET后,编译出来的bin文件与之前不同为什么?

    我用的是stm32cubeide,芯片为STM32G491,修改了ld文件的Flash偏移和中断向量表的宏VECT_TAB_OFFSET,对比修改前后的bin文件,发现有部分地方不同,请问这个是正常的吗?
    发表于 03-19 06:16

    鸿蒙开发【编译构建】讲解

    编译构建是将应用/服务的源代码、资源、第三方库等,通过编译工具转换为可直接在硬件设备上运行的二进制机器码,然后再将二进制机器码封装为HAP/APP软件包,并为HAP/APP包进行签名的过程。其中
    发表于 02-27 17:41

    利用知识图谱与Llama-Index技术构建大模型驱动的RAG系统(上)

    向量数据库是一组高维向量的集合,用于表示实体或概念,例如单词、短语或文档向量数据库可以根据实体或概念的向量表示来度量它们之间的相似性或关联
    的头像 发表于 02-22 14:07 1030次阅读
    利用知识图谱与Llama-Index技术<b class='flag-5'>构建</b>大模型驱动的RAG系统(上)

    请问PSOC4的中断向量表在哪查看?

    如题,PSOC4的中断向量表在哪查看?谢谢
    发表于 02-06 06:22

    什么是中断向量偏移,为什么要做中断向量偏移?

    当MCU中有两段或以上程序的时候(第一个程序为用户BootLoader程序,其他的为APP程序,这个在前期视频《什么是ISP?什么是IAP》中有讲过),APP程序中都需要做中断向量偏移,那么什么是中断向量偏移,为什么要做中断向量
    的头像 发表于 01-30 09:47 1577次阅读
    什么是中断<b class='flag-5'>向量</b>偏移,为什么要做中断<b class='flag-5'>向量</b>偏移?

    “tc1.3”编译报错不允许使用向量表编号TriCore™怎么解决?

    “tc1.3” TriCore™ 不允许使用矢量表编号
    发表于 01-22 08:33

    M453VG6AE中断向量表起始地址是多少呢?一共有多个中断向量呢?

    芯片:M453VG6AE 这款芯片中断向量表起始地址是多少呢?一共有多个中断向量呢?
    发表于 01-17 08:13