DSSM双塔特征交互

news2024/11/14 12:18:06

传统的DSSM双塔无法在早期进行user和item侧的特征交互,这在一定程度上降低了模型性能。我们想要对双塔模型进行细粒度的特征交互,同时又不失双塔模型离线建向量索引的解耦性。下面介绍两篇这方面的工作。

美团-Dual Augmented Two-tower

meituan

  • 在user和item的特征侧分别引入可学习的特征向量
  • 当label=1的时候,user的 a u a_u au去学习item正样本的输出表征,从而实现隐式特征交互;item侧亦如此

损失函数如下:
loss ⁡ u = 1 T ∑ ( u , v , y ) ∈ T [ y a u + ( 1 − y ) p v − p v ] 2 loss ⁡ v = 1 T ∑ ( u , v , y ) ∈ T [ y a v + ( 1 − y ) p u − p u ] 2 y ∈ { 0 , 1 } \begin{aligned} \operatorname{loss}_u & =\frac{1}{T} \sum_{(u, v, y) \in \mathcal{T}}\left[y \mathbf{a}_u+(1-y) \mathbf{p}_v-\mathbf{p}_v\right]^2 \\ \operatorname{loss}_v & =\frac{1}{T} \sum_{(u, v, y) \in \mathcal{T}}\left[y \mathrm{a}_v+(1-y) \mathrm{p}_u-\mathbf{p}_u\right]^2 \\ y &\in \{0,1\} \end{aligned} lossulossvy=T1(u,v,y)T[yau+(1y)pvpv]2=T1(u,v,y)T[yav+(1y)pupu]2{0,1}

  • p u p_u pu p v p_v pv 梯度冻结,不进行更新
缺点

这种方式引入的交叉特征实际是非常"粗粒度"和"高阶"的,即携带的信息仅仅是对方tower最后输出的表征,对方tower在编码这段表征时,也仅仅只利用了fake的emb和tower本身的输入特征的交互。

百度-I3 Retriever

RankNet

  • 在doc侧设计一个轻量的query生成模块,利用doc侧特征作为输入,去fake一个query侧表征,去重构出query侧的输入特征。当然需要注意的是,也仅仅是在正样本上执行重构loss
  • doc侧与生成的query进行特征交互
  • 交互完的doc侧与query侧对比学习

重构损失函数如下:
L r = − ∑ w i ∈ q y w i log ⁡ ( W R K ( p ) q ) \mathcal{L}_r=-\sum_{w_i \in \mathbf{q}} \mathbf{y}_{w_i} \log \left(\mathbf{W}^{R_{\mathbb{K}}}(\mathbf{p})_q\right) Lr=wiqywilog(WRK(p)q)

对比损失函数如下:
L c = − log ⁡ exp ⁡ ( S ( q , p + ) ) exp ⁡ ( S ( q , p + ) ) + ∑ p − ∈ N − exp ⁡ ( S ( q , p − ) ) , \mathcal{L}_c=-\log \frac{\exp \left(S\left(\mathbf{q}, \mathbf{p}_{+}\right)\right)}{\exp \left(S\left(\mathbf{q}, \mathbf{p}_{+}\right)\right)+\sum_{\mathbf{p}-\in \mathcal{N}_{-}} \exp \left(S\left(\mathbf{q}, \mathbf{p}_{-}\right)\right)}, Lc=logexp(S(q,p+))+pNexp(S(q,p))exp(S(q,p+)),


参考

  • CIKM2023 | 突破双塔: 生成式交互的向量化召回

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

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

相关文章

Onekey正版steam分流下载工具

今天给大家介绍的是一款下载steam游戏的工具。Onekey工具,是一款游戏下载器,可以下载steam正版分流游戏。下载正版分流的网站很多,但是都是网盘或者迅雷下载,或者游戏盒子下载,速度都很慢。这款软件是用steam下载的&am…

安卓项目中so库选择

接上篇Android中常见SDK类型区别-CSDN博客 一些重要的加密算法或者核心协议一般都在C中编写,然后给java调用。这样可以避免反编译后查看到应用的源码。此时就需要了解一下NDK中的ABI(Application Binary Interface的缩写,也就是应用二进制接…

国产化框架PaddleClas结合Swanlab进行杂草分类

1. 项目介绍 杂草是农业中的主要问题之一,对作物生长和产量造成严重威胁。传统的手动识别和管理方式效率低下且不够精确,因此需要借助先进的计算机视觉技术来提升农业生产的效率和质量。ResNet作为一种深度学习模型,在处理复杂的图像分类任务…

视频压缩软件哪个压缩最小,视频用什么软件压缩最小

在数字媒体时代,视频内容的生产与分享已成为生活常态。但随之而来的问题就是,大视频文件占用过多存储空间,上传和分享也变得不便。本文将为你揭示如何将视频压缩到最小,同时保持画质清晰。让我们一起探索吧! 下载并文件…

第九篇——军形篇:先胜后战,赢了再打

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 微观层面的,洞察千里之外;提前预防以做到规避风险…

数据结构——二叉树相关习题3

1.求另一棵树的子树 题目 前序遍历一样,形状不一定一样。 子树:以任何一个节点做根都可以看做是根子树。 也就是说需要让subroot和每一个子树都比较相同的时候就一样。找出左边这棵树的所有子树 思路:如何找到左边的所有子树? …

初识数组!

目录 1.概念 2.一维数组的创建和初始化 1)数组创建 2)数组的初始化 3)数组的类型 3.一维数组的使用 1) 数组下标 2) 数组元素的打印 3) 数组的输入 4.一维数组在内存中的存储 5.sizeof计算数组元素个数 6.二维数组的创建 1.概念 …

Hugging face Transformers(4)—— Model

Hugging Face 是一家在 NLP 和 AI 领域具有重要影响力的科技公司,他们的开源工具和社区建设为NLP研究和开发提供了强大的支持。它们拥有当前最活跃、最受关注、影响力最大的 NLP 社区,最新最强的 NLP 模型大多在这里发布和开源。该社区也提供了丰富的教程…

Android 10.0 FolderIcon文件夹图标内预览图标超出边距解决方案

1.前言 在10.0的系统rom定制化产品开发中,在进行Launcher3的功能定制化过程中,在实现文件夹功能的时候,由于产品分辨率等原因 在拖拽图标进文件夹的时候,在3*3的布局中,会发现图标出了folder边距,所以就需要分析相关的功能,然后实现解决这个问题 2.FolderIcon文件夹图标…

麒麟桌面操作系统上鼠标右键菜单中打开终端栏消失的解决方法

原文链接:麒麟桌面操作系统上鼠标右键菜单中打开终端栏消失的解决方法 Hello,大家好啊!今天给大家带来一篇关于在麒麟桌面操作系统上解决鼠标右键菜单中“打开终端”选项消失的方法的文章。鼠标右键菜单中的“打开终端”选项是一个非常便捷的…

JAVA基础-----包装类,自动装箱、拆箱

一、包装类: Java中的数据类型总体上分为基本数据类型和引用数据类型。引用类型的数据可以通过对象的属性和方法来进行操作,但对于基本数据类型的数据,我们能不能像操作对象那样来操作呢?为了实现这个目标,Java为8种基…

JAVA基础-----final关键字

一、前言 final关键字的含义: final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你用final修饰,你将不能改变被修饰的代码,编译器会检查代码,如果你试图将变量再次初始化的话&#xff0…

MindsDB:一个利用企业数据构建 AI 的平台

MindsDB作为一个开源项目,它旨在将机器学习模型无缝集成到现有的数据库系统中,为用户提供实时的数据预测能力。这个项目的创新之处在于,它能够以简单、直观的方式让开发者和非技术人员都能够利用AI进行数据分析和预测。 它是根据企业数据库定…

(1)滑动窗口算法介绍与练习:长度最小的子数组

滑动窗口算法介绍 所谓滑动窗口,即为同向双指针移动过程中形成的间隔区域,并且这两个指针在移动的过程中不会回退 对于滑动窗口的题目可以抽象为三个步骤: 定义窗口两端指针left和right进入窗口判断离开窗口循环2、3和4步 滑动窗口练习 长度最…

华为 eNSP 路由器 实现双wan出口 访问外网nat 策略路由配置

1 实验拓扑 2 路由器配置 #R1配置 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysn [Huawei]sysname R1 [R1]int GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0 [R1-GigabitEthernet0/0/0]qu [R1…

YASKAWA安川Σ-V系列伺服驱动器AC设计维护手侧

YASKAWA安川Σ-V系列伺服驱动器AC设计维护手侧

Milvus lite start 及存储策略

背景 今天开始写下Milvus&#xff0c;为了方便&#xff0c;我直接使用的是 milvus-lite 版本&#xff0c;default 情况下&#xff0c;你可能不知道他到底将 db 存储到什么位置了。启动 default-server&#xff0c;看下Milvus 的start及存储逻辑 主逻辑 def start(self):sel…

EasyCVR视频汇聚平台:存储系统怎么选?分布式存储vs.集中式存储的区别在哪?

在当今的数字化时代&#xff0c;安防监控已成为维护社会秩序和公共安全的重要手段。随着监控设备的普及和监控数据的不断增加&#xff0c;如何高效、安全地存储和管理这些视频数据&#xff0c;成为了安防行业面临的重要挑战。EasyCVR视频存储系统凭借其卓越的性能和灵活的架构&…

MacOS 安装 mtr 网络检测工具

Install sudo brew install mtr sudo chown root $(which mtr) sudo chmod us $(which mtr) sudo chown root $(which mtr-packet) sudo chmod us $(which mtr-packet) Test mtr google.com

Mock.js 的使用方法代码示例

mock.js 的安装 npm install -D vite-plugin-mock mock.jsvite.config.ts配置&#xff1a; import { viteMockServe } from vite-plugin-mock import { userConfigExport, ConfigEnv } from viteexport default defineConfig(({ command }) > {return {plugins: [viteMock…