DRMM model

Paper 的引用:

Guo J, Fan Y, Ai Q, et al. A deep relevance matching model for ad-hoc retrieval[C]//Proceedings of the 25th ACM International on Conference on Information and Knowledge Management. ACM, 2016: 55-64.

Retrieval or Matching

论文中说到:

However, we argue that the ad-hoc retrieval task is mainly about relevance matching while most NLP matching tasks concern semantic matching, and there are some fundamental differences between these two matching tasks.

理解这句话,就是ad-hoc是根据query去找到相关性更大的documents, 这里的相关性可以理解为 相同关键字,相同主旨等等,但是句式(问句&答句),长短(短查询&长文本)等等可能都不相同;
而NLP的matching tasks则是指两句话的大意相同,或者不严谨的说,两句话出现的语境(上下文)相似。
所以NLP的matching tasks其实是更严谨的一种matching

Histogram & Matching matrix

paper中说到,这个模型更像是interaction-focused model 而不是 representation-focused model

A major problem is that the size of local interactions is not fixed due to the varied lengths of queries and documents.

传统的Attention 用到的其实是Matching matrix, 这也导致了其实我们在实现的时候有时候是很受限的
例如:
image_1cjl4td8rk4l1h9b1loi1kj84urm.png-47.9kB

那么Matching matrix的优点在于:preserving the sequential term orders

Clearly the matching matrix is a position preserving representation, which is useful if the learning task is position related.

那么对于Ad-hoc的查询来说,可能相匹配的关键词出现的position就没那么重要(尤其是考虑到doc的长度问题)

所以这个Paper提出了一种Histogram的方法:

可以将query和document的term两两比对,计算一个相似性。再将相似性进行统计成一个直方图的形式。例如:
Query:”car” ;
Document:”(car,rent, truck, bump, injunction,runway)。
两两计算相似度为(1,0.2,0.7,0.3,-0.1,0.1)
将[-1,1]的区间分为{[−1,−0.5], [−0.5,−0], [0, 0.5], [0.5, 1], [1, 1]} 5个区间。
可将原相似度进行统计,可以表示为[0,1,3,1,1]。
*这里引用自 http://www.sohu.com/a/131458518_505880

这样用query中的每个word去查询document的时候都是得到一个等长的vector,为后面的处理也就做好了铺垫。
所以这样的话,其实对于每个query(length 为 l l ),得到的就是一个 ls 的一个矩阵,( s s 是区间的个数)
这个维度是和query的length相关的

Model

形式化表示:
有一个query q={w1(q),...,wM(q)}
和一个document d={w(d)1,...,w(d)N} d = { w 1 ( d ) , . . . , w N ( d ) }

image_1cjl2f1nga7ca5bhls1lvn1c049.png-23.6kB

那这里的 代表interaction,也就是matching function for each pair of word vectors; h() h ( ) 就是上述的将相似度映射到一个fixed length histogram vector的函数了。
将上述的处理结果过L个feed forward layer之后;
最后的 s s 就是一个query对一个特定的document的匹配分数。
那其实这里对于这个query, 还有个参数权重gi  (i=1,...,M)
是通过一个Term Gating Network 得到的;

Term Gating Network

In this way, our model can explicitly model query term importance. This is achieved by using the term gating network, which produces an aggregation weight for each query term controlling how much the relevance score on that query term contributes to the final relevance score.

如文中所说,这个Term Gating Network是为了衡量query中term的importances的权重。
image_1cjlfbr8jkpl1efc1i5pjoh77l13.png-20.3kB
例如本文的一种方法就是用query中每个term的idf值(上述公式中的 x(q)i x i ( q ) 来做softmax, 这里公式里的 wg w g 就是一个常数参数了。

训练 & 实现 & 场景

Since the ad-hoc retrieval task is fundamentally a ranking problem, we employ a pairwise ranking loss such as hinge loss to train our deep relevance matching model. Given a triple (q, d+, d−), where document d+ is ranked higher than document d− with respect to query q,the loss function is defined as:image_1cjlfmqj1t1v018i7r8paeg1g.png-10.8kB

这个loss实现我暂时找到了一个链接:

Pytorch如何自定义损失函数(Loss Function)? - vector的回答 - 知乎
https://www.zhihu.com/question/66988664/answer/247952270

先闭着眼睛相信只要loss能正向跑,backward()就肯定work
接下来简单实现试一下。

这个Model在IR中很合适,因为基本上是query based的方法,model中的中间变量的参数也大多和query有关
如上文中:Histogram中的 z z <script type="math/tex" id="MathJax-Element-12">z</script> 的维度是和query的length相关

如果也将这种方法迁移到NLP的pairwised matching problems上,可能不太合适(因为毕竟是一对多,而不是装好的pairs),但是如果要做,就要好好考虑一下如何装数据。

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

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

相关文章

JVM(JAVA虚拟机)、DVM(Dalvik虚拟机)和ART虚拟机

一、什么是DVM&#xff0c;和JVM有什么不同&#xff1f; JVM是Java Virtual Machine&#xff0c;而DVM就是Dalvik Virtual Machine&#xff0c;是安卓中使用的虚拟机&#xff0c;所有安卓程序都运行在安卓系统进程里&#xff0c;每个进程对应着一个Dalvik虚拟机实例。他们都提…

关于Hdmi2.1,FRL,DSC,VRR,ALLM你需要知道这些

文章目录 TMDSFRLDSCVRRALLM相关设备Nvidia显卡电视游戏机显示器 注意的坑 最近在研究Hdmi相关内容&#xff08;看游戏设备hhh&#xff09;&#xff0c;网上很多信息都是零零碎碎的&#xff0c;结合自己的一些研究简单记录一下。 Hdmi&#xff0c;High Definition Multimedia I…

HDMI 2.1 VRR功能详解

7.6可变刷新率和快速更新 可变刷新率&#xff08;VRR&#xff09;允许图片在源完成准备后立即通过链路发送。在链路支持的最大字符速率大于给定视频定时所需的速率的情况下&#xff0c;Fast VActive&#xff08;FVA&#xff09;减少了传输图片所需的时间。这些特性提供了性能、…

VVC帧间预测(八)DMVR

解码端运动向量修正(Decoder side motion vector refinement ,DMVR)是为了提高merge模式下双向预测MV的准确性而提出的技术。双向预测是在list0和list1中分别找一个运动向量MV0和MV1&#xff0c;然后将MV0和MV1所指向的预测块进行加权得到最终的预测块。而DMVR不是直接使用MV0和…

ARVR技术 | AR, VR, MR和XR?想搞清楚不?

AR, VR, MR&#xff0c;现在还有XR ?这些缩写是什么?它们代表什么? 让我们快速梳理一下技术术语。 首先&#xff0c;虽然你可能熟悉其中的一些术语&#xff0c;如AR和VR, 但MR和XR对许多人来说仍然是新鲜的术语。 目前的共识是&#xff0c;所有这些互补形式的现实都落在一…

MDD(模型驱动开发)

前言导读 当下企业软件应用开发面临着需求复杂多变、新的需求和系统不断增长&#xff0c;软件系统变得越来越复杂&#xff0c;普通的软件开发方式难以快速满足用户需求。为了解决这些问题&#xff0c;就出现了很多新的方法&#xff0c;其中最突出的一个就是模型驱动开发 MDD &a…

RSCMVR

也是之前发了 ~~ 又带来马教授的~~ 神器稀疏卷积性能和稳健性超越ResNet 标题就是简写可好? 尽管深度神经网络在图像分类方面具有很强的经验性能&#xff08;empirical performance&#xff09;&#xff0c;但这类模型往往被视为「黑盒」&#xff0c;最为人诟病的就是「难以解…

EMD和VMD

作者&#xff1a;桂。 时间&#xff1a;2017-03-06 20:57:22 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/6511916.html 前言 本文为Hilbert变换一篇的内容补充&#xff0c;主要内容为&#xff1a; 1&#xff09;EMD原理介绍 2&#xff09;代码分析 3&#xff09…

什么是MDM

MDM或移动设备管理是一种软件应用程序&#xff0c;用于管理企业中的终端&#xff0c;如笔记本电脑、智能手机、平板电脑等。随着越来越多的员工使用这些设备&#xff0c;各种形式和规模的企业现在都转向移动设备管理&#xff0c;以增强数据安全性并提高生产力。 MDM是什么意思…

AVS3中的AMVR和EMVR

在AVS2中运动预测中使用的MV都是1/4像素精度&#xff0c;通过在整像素间插值能显著提升非整像素运动预测的精度&#xff0c;同时带来的问题是随着MV精度的提高编码MVD所需的比特数也会增加。 AMVR AMVR支持的MVD编码5种精度的MVR{1/4,1/2,1,2,4}&#xff0c;索引为0到4&#x…

无线网络视频监控系统基本概念和术语

无线网络视频监控系统基本概念和术语 1.网络摄像机与模拟摄像机的区别 模拟摄像机&#xff0c;或称摄像头&#xff0c;输出CVBS模拟视频信号&#xff0c;PAL制或者NTSC制。模拟摄像机多采用CCD器件&#xff0c;目前也有采用CMOS器件的。有枪机、半球、球机等多种形式&#xff0…

掌握Python的X篇_27_Python中标准库文档查阅方法介绍

前面的博文介绍了python的基本语法、模块及其导入方法。前人将各种方法封装成模块、库、函数供我们使用&#xff0c;如何去使用前人做好的东西&#xff0c;那就需要去查阅文档。今天就介绍python中官方文档的查阅方式。对于初学者而言&#xff0c;python自带的文档就已经足够好…

基本动态规划问题的扩展

基本动态规划问题的扩展 应用动态规划可以有效的解决许多问题&#xff0c;其中有许多问题的数学模型&#xff0c;尤其对一些自从57年就开始研究的基本问题所应用的数学模型&#xff0c;都十分精巧。有关这些问题的解法&#xff0c;我们甚至可以视为标准——也就是最优的解法。…

shell脚本安装nginx

shell脚本原理 以删除桌面文件的脚本为例&#xff0c;执行脚本后&#xff0c;shell脚本将代码给内核&#xff0c;内核读取后执行命令&#xff0c;如果shell脚本也在桌面上&#xff0c;执行后这个脚本文件也会被删除。 变量 echo $SHELL$符表示SHELL是一个变量&#xff0c;变量…

Python(七十九)字符串的常用操作——字符串内容对齐操作的方法

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

docker实现Nginx

文章目录 1.docker 安装2.docker环境实现Nginx 1.docker 安装 1.使用环境为红帽8.1,添加源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo2.安装 yum install docker-ce docker-ce-cli containerd.io显示出错 Docker C…

Vue [Day7] 综合案例

核心概念回顾 state&#xff1a;提供数据 getters&#xff1a;提供与state相关的计算属性 mutations&#xff1a;提供方法&#xff0c;用于修改state actions&#xff1a;存放异步操作 modules&#xff1a;存模块 功能分析 https://www.npmjs.com/package/json-server#ge…

反介入/区域拒止:现代战争的演变

译者说明 本文译自美国空军Christopher J. McCarthy少校的一篇文章&#xff0c;略去了原文最后的作者简介。 原文地址&#xff08;可能需要科学上网&#xff09;&#xff1a; https://www.usnwc.edu/Lucent/OpenPdf.aspx?id95 本文仅为翻译&#xff0c;不代表译者赞成或反对原…

UE4莫名其妙崩溃的解决办法

pin error stack edgraph balabala...... 先检查蓝图把报错的节点全部去掉&#xff0c;有的运行不会提示蓝图报错&#xff0c;只能一个一个找。。。。 c报错一般都会有提示&#xff0c;所以基本都可以解决 把磁盘空间留大一点,玄学 总是在这里报错&#xff0c;这个不用管&am…

叛乱怎么自定义服务器,» 叛乱:沙漠风暴 服务器安装Mod教程

叛乱:沙漠风暴 服务器安装Mod教程 4.6 (78) 叛乱:沙漠风暴 服务器 租用 v2pg.com 获取API KEY 比如 59f0601123331222f0755f9e8551ea639 就是申请的KEY, 保存好。 打开后台 “服务器设置” 然后编辑 Engine.ini