当前位置: 首页 > article >正文

Python 定时调度任务

代码开源

传统的推荐系统严重依赖ID特征,存在冷启和泛华问题。建模预先提取的内容特征能够减缓这些问题,但这仍然是次优的,源于训练任务和模型参数之间的差异。

端到端训练提供了解决方法,但多数已有工作集中在检索模型,未使用多模态技术。

本文提出工业级的多模态推荐框架:EM3:“End-to-end training of Multimodal Model and ranking Model” (pdf) ,充分使用多模态信息,能够获得任务特定的内容特征。首先,提出Fusion-Q-Former,由Transformer和一组可学习的queries组成,用于融合不同模态并产生固定长度的多模态表征。然后,在用户内容兴趣的序列建模中,使用低秩适配技术减缓序列越长资源消耗越大的冲突问题。最后,提出内容-ID对比学习完成内容与ID的对齐,并获得任务特定的内容表征和更具泛化性的ID表征。离线评估和A/B测试证实的方法的优越性。另有消融实验、可视化、两个公开数据集上的对比。

引言

ID特征十分有效,但存在冷启问题源于数据稀疏性,且存在泛化问题,即相似材料的物品的估计方差。解决方法是建模内容特征,这样不会不依赖交互记录。内容特征建模有两种方式:预先提取和端到端pre-extraction (PE) and end-to-end (E2E)。PE范式的内容模型固定,不会实时更新,无法很好的适配个性化的下游任务。E2E范式会实时更新,多数是双塔形式。

提出EM3,受BLIP-2的启发,提出Fusion-Q-Former。贡献点:首次提出端到端训练的多模态模型和排序模型的工业级框架;提出Fusion-Q-Former作多模态融合;低秩适配减缓冲突;内容-ID对比学习产生任务特定的内容表征和更具泛化性的ID表征。

相关工作

推荐系统

工业级推荐系统通常分为检索和排序先后两个阶段。本文关注排序模型,通常是单塔,且对资源消耗敏感。早期的排序模型使用协同过滤、逻辑回归、矩阵分解来捕获用户-物品关系;后来,使用FM、FFM、Wide&Deep、DeepFM;最近,DIN、SIM等模型使用序列建模提取用户兴趣;现在工业级推荐系统使用综合的混合模型

多模态模型

一些研究关注融合不同的模态到单个表征,例如单流范式的ViLT,双流范式的ViLBert。其他的研究关注将两个不同模态的表征对齐,例如CLIP。ALBEF、BLIP、BLIP-2将两种方向统一起来

多模态推荐

3. 方法论

3.1 排序模型

排序模型的输入为ID, context and session features的拼接,喂入DNN,预测点击率或转化率,二元交叉熵损失

3.2 多模态模型

考虑两种模态。视觉模态来自视频帧(M个图片序列),文本模态来自标题、描述等等(K个文本序列)。使用单模态提取器+FC得到单模态表征;使用FusionQ-Former (FQ-Former)作模态融合:Q个queries与M个图像特征序列与K文本特征序列拼接起来,随后使用自注意力SA学习不同模态间的关系和重要性,SA输出的前Q个tokens作为多模态内容特征。FQ-Former的优势:固定长度的多模态表征,与模态数量无关;

混合训练,冻结了单模态编码器,训练参数包括视觉模态和文本模态的FC、queries、FQ-Former

3.3 序列建模

用户内容兴趣。候选商品 与 用户行为序列(交互过的商品序列)。计算候选商品的多模态表征与用户序列各多模态表征的注意力分值,softmax后变为权重,则用户序列是行为序列多模态表征的加权和。

计算消耗依赖序列长度,计算注意力权重时需要全连接层,参数量d2,总计算量为O(Nd2)。

解决方法:LoRA,先用短用户序列充分训练,后冻结W,训练LoR矩阵。

3.4 内容-ID对比学习

ID表征有很强的记忆性,但存在冷启;内容表征泛化能力强,但不能利用交互数据?提出内容-ID对比学习:ID表征是几类重要表征的拼接,如ItemID何类目ID,将ID表征和内容表征经全连接层的变化,转换到同一向量空间,他们是对比学习的正样本。

最终排序模型的Loss=原始loss +0.5alpha对比学习loss,alpha是超参数(非可学习)。

优势:对热销物品,ID将主导对齐,指导更新内容表征;对冷启物品,内容主导对齐,指定更新ID

4 实验

4.1 设置

基线:两个内部使用的模型,CTR和CVR

数据集:来自内部业务数据。在电商场景,21亿记录作为训练集,2.5亿作为测试集。在广告场景,8200万记录作为训练,220万作为测试。

准则:离线评估使用GMV,线上AB,使用GMV、订单量、CTR

主干:Swin-T-22K1 as the vision encoder, and choose the RoBERTa-wwm-ext2 as the text encoder

超参数:query数量是2,the number of FQ-Former layers is 1, the number of SA heads is 4, and the weight of CIC loss is 0.1, the CIC temperature is 0.1.

源码显示,是两层的Transformer encoder

4.3 消融

对比了多种融合方法

4.6 公开集评估

将提出的几个方法集成到之前的工作。

基线模型在公开数据集上重新训练


http://www.kler.cn/a/376793.html

相关文章:

  • 使用 Spring Boot 搭建 WebSocket 服务器实现多客户端连接
  • 气象大模型学习笔记
  • 【系统设计】高效的分布式系统:使用 Spring Boot 和 Kafka 实现 Saga 模式
  • 个人对Numpy中transpose()函数的理解
  • 抖音Ai图文故事号,AI一键生成故事图片变现,涨粉变现超快!
  • 【重生之我要苦学C语言】深入理解指针4
  • nignx代理获取真实地址request.getRequestURL()
  • el-select 的默认选中 以及后端返回的数据进行默认选中
  • Java多态特性的向上转型
  • SD-WAN分布式组网:构建高效、灵活的企业网络架构
  • 协议(OSI-tcp-udp)
  • linux 运行 activemq,Linux 安装 ActiveMQ 服务器详解
  • windows C#-泛型类型
  • Rust 力扣 - 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串
  • 动态SQL在梧桐数据库的使用介绍
  • MySQL锁表快速解决办法
  • ELK的ElasticStack概念
  • 11408 计网===物理层
  • 使用 Redis 作为异步队列:原理、实现及最佳实践
  • 小新学习k8s第六天之pod详解
  • Linux 常用安装软件
  • 虚幻引擎5(UE5)学习教程
  • BERT语言模型详解【Encoder-Only】
  • LeetCode HOT100系列题解之课程表(9/100)
  • MAC电脑的ifconfig输出
  • 浅谈mysql【8.0】链接字符串