多模态融入推荐

多模态特征如何融入到推荐

最近刚好读了2篇文章,对于多模态特征处理的核心问题:

  • 多模态表征和推荐ID类特征的表征不在一个向量空间,如何有效融合;
  • 其次多模态特征预训练的,如何有效评估以及融入推荐系统之后如何进行更新的问题

一、先解决怎么融合的问题:

  1. 将多模态表征聚类,使用聚类的id进行输入,模态特征退化成id类特征
  2. 直接使用多模态特征进行DIN
  3. 使用simscore(target和seq的相似度,作为seq序列的sideinfo)

1,3都能取得一定效果,简单反而能有一定收益,多模态表征和序列表征毕竟还是差异比较大,简单输入能早点参与模型参数更新;2的话由于多模态表征深度参与,但由于多模态表征无法进行联合更新,效果一般

有啥更好的方式:

  • 多模态特征的分布表示(target和seq)计算分箱分布统计
  • 直接接入,但taget,seq向量直接接个DIN模型,这个辅助模型用来对齐多模态表征和序列模型表征;可以理解这个辅助模型在当前行为样本上的微调,然后把中间参数、logits和序列模型联合训练
  • simcore分数进行编码,通过一个可学习emb,学习数值型emb,然后和推荐系统进行联合训练

二、多模态特征更新

  • 模态特征+微调网络(通过行为数据进行多轮的微调,毕竟多模态特征微调成本高,但一些MLP网络微调相对轻松容易)
  • 微调网络相当于一个对齐网络(对齐多模态特征和行为序列特征表征),然后将微调网络(中间层参数以及logits)接入到正常序列模型进行联合训练

三、多模态特征预训练

  • 定义好<正、负>样本,对于文本<正样本取搜索文本和购买商品标题> <负样本取mini-batch随机负样本>;对应图片<正样本取搜索图片和购买商品图片> <负样本取mini-batch随机负样本>; 正负样本的确定决定预训练多模态语义向量的质量
  • loss直接使用对比loss,infoNCE loss

四、序列特征attention模块

  • (target,seq,pos,gap) 四元组; 通过 Temporal Interest Module, TIM网络(说实话个人觉得这个网络效果不如显式的特征交叉,显式特征交叉表达信号强,交叉的浅训练充分,交叉阶数越大,训练越难,不容易收敛)

五、兴趣纠缠或者拉扯问题

  • 多个emb,任务级别的emb,单个任务独享emb
  • shared emb 处理共享信息,但最好是有共享参数的领域
  • 各个任务emb参数尺寸尽量跟场景配合,部分场景小,搭配小的emb才能训练充分

参考:

posted @   adam86546853  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示