news 2026/6/11 10:12:38

多模态生成推荐系统MSCGRec:突破传统推荐的技术瓶颈

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多模态生成推荐系统MSCGRec:突破传统推荐的技术瓶颈

1. 多模态生成推荐系统概述

推荐系统作为信息过滤的核心技术,在电商、视频平台、社交媒体等领域发挥着关键作用。传统推荐系统主要分为协同过滤和内容推荐两大范式,而近年来序列推荐(Sequential Recommendation)因其对用户行为时序建模的优势成为研究热点。然而,随着数据规模的扩大和用户需求的多样化,传统方法面临三个核心挑战:

  1. 存储瓶颈:基于ID的推荐系统需要为每个物品存储高维嵌入向量,百万级物品库的存储开销可达数十GB
  2. 语义缺失:协同信号仅反映用户行为模式,无法捕捉物品本身的语义特征
  3. 模态单一:现有方法多聚焦文本模态,难以处理图像、视频等富媒体内容

生成式推荐(Generative Recommendation)通过将物品表示为离散语义编码序列,理论上可以缓解上述问题。但实际应用中,这类方法在大规模场景下的推荐质量往往不及传统序列推荐模型。我们通过分析发现,性能瓶颈主要来自两方面:

关键发现:当前生成式推荐系统在以下维度存在明显局限:

  • 模态利用不充分(仅文本)
  • 协同信号与语义信息割裂

2. MSCGRec框架设计

2.1 整体架构

MSCGRec(Multimodal Semantic and Collaborative Generative Recommender)的创新架构包含三个核心组件:

  1. 多模态编码层

    • 文本模态:基于LLAMA的预训练文本编码器
    • 图像模态:提出的RQ-DINO自监督量化模块
    • 协同模态:SASRec序列推荐模型的物品嵌入
  2. 残差量化器

    class ResidualQuantizer(nn.Module): def __init__(self, levels=3, codebook_size=256): super().__init__() self.codebooks = nn.ModuleList([ nn.Embedding(codebook_size, dim) for _ in range(levels) ]) def forward(self, x): residuals = [x] codes = [] for level in range(self.levels): # 计算最近邻码本条目 distances = torch.cdist(residuals[-1], self.codebooks[level].weight) code = torch.argmin(distances, dim=-1) codes.append(code) # 计算残差 quantized = self.codebooks[level](code) residuals.append(residuals[-1] - quantized) return torch.stack(codes, dim=1) # [B, L]

    每个量化层级包含256个码本向量,通过3级残差量化生成层次化编码

  3. 序列建模层

    • 采用T5架构的编码器-解码器模型
    • 创新性地引入双路径位置编码:
      • 物品间位置编码(处理用户历史序列)
      • 物品内位置编码(处理多模态编码序列)

2.2 自监督图像量化

传统图像量化方法(如VQ-VAE)依赖像素级重建损失,可能保留对推荐无用的高频细节。我们提出基于DINOv2的改进方案:

  1. 教师-学生框架

    • 教师模型:ViT-S/14的EMA权重
    • 学生模型:相同架构但加入残差量化层
  2. 量化感知蒸馏

    \mathcal{L}_{RQ-DINO} = \text{CE}(f_s(\hat{z}^s_L), f_t(z^t)) + \alpha_3\|z^s - e_{c_l}\|^2

    其中$\hat{z}^s_L$为量化后的学生表征,$e_{c_l}$为码本向量

  3. 训练技巧

    • 使用iBOT的masked图像建模损失
    • 加入KoLeo正则化防止表征坍缩
    • 码本更新采用EMA策略(动量=0.99)

实验表明,该方法在PixelRec数据集上使NDCG@10提升17.3%,显著优于传统后量化方案。

3. 关键技术实现

3.1 协同信号融合

传统生成式推荐通过辅助损失对齐语义与协同信号,我们创新性地将协同特征视为独立模态:

  1. 特征提取

    • 使用SASRec模型处理用户交互序列
    • 取最后一层物品嵌入作为协同表征
  2. 模态拼接

    [文本编码|图像编码|协同编码] + [模态类型嵌入]

    通过可学习模态标识区分不同信号源

  3. 动态掩码

    • 训练时以75%概率随机掩蔽某一模态
    • 使用特殊[MASK]标记处理缺失情况

3.2 约束序列学习

为应对大规模物品库的编码组合爆炸问题,我们提出两项优化:

  1. 有效编码约束

    • 构建前缀树(Trie)存储所有有效编码序列
    • 在训练时限制softmax计算仅在有效子节点进行:
      \mathcal{L}_{rec}^{(i,l)} = -z_c + \log\sum_{c'\in Ch(v_{c_{<l}})} \exp(z_{c'})
  2. 光束搜索改进

    def constrained_beam_search(model, prefix, beam_size=20): live_beams = [([], 0)] # (tokens, score) for _ in range(max_len): new_beams = [] for tokens, score in live_beams: logits = model.predict(tokens) # 仅保留有效后续编码 valid_codes = trie.get_children(tokens) topk = logits[valid_codes].topk(beam_size) for code, logp in zip(topk.indices, topk.values): new_beams.append((tokens+[code], score+logp)) live_beams = sorted(new_beams, key=lambda x: -x[1])[:beam_size] return live_beams[0][0]

该方法使模型参数利用率提升32%,在Amazon Beauty数据集上Recall@1提高11.1%。

4. 实验与效果验证

4.1 实验设置

数据集

数据集用户数物品数交互数稀疏度
Beauty724K203K6.4M99.996%
Sports408K151K3.4M99.994%
PixelRec8.8M407K158M99.996%

基线模型

  • 序列推荐:GRU4Rec, SASRec, FDSA
  • 生成式推荐:TIGER, LETTER, ETEGRec
  • 多模态方法:MQL4GRec

评估指标: Recall@K, NDCG@K, MRR@K (K∈{1,5,10})

4.2 主要结果

在Amazon Beauty数据集上的性能对比:

模型Recall@1NDCG@10MRR@10
SASRec0.00500.01580.0110
TIGERt0.00450.01220.0090
ETEGRec0.00540.01500.0111
MSCGRec0.00600.01680.0123

关键发现:

  1. 首次实现生成式推荐超越传统序列推荐
  2. 多模态融合带来平均12%的性能提升
  3. 图像量化质量直接影响推荐效果

4.3 消融实验

变体Recall@10Δ
完整模型0.0315-
w/o 位置编码0.0311-1.3%
w/o 约束训练0.0291-7.6%
仅文本模态0.0173-45.1%
仅图像模态0.0158-49.8%

Shapley值分析显示各模态贡献度:

  • 协同特征:42.7%
  • 文本:31.5%
  • 图像:25.8%

5. 工程实践建议

在实际部署中,我们总结出以下经验:

  1. 码本训练技巧

    • 分阶段训练:先固定码本训练编码器,再联合微调
    • 码本退化处理:定期统计各码本使用频率,对低频条目重置
  2. 推理优化

    # 使用TorchScript加速序列生成 @torch.jit.script def jit_predict(history: Tensor, model: nn.Module): with torch.no_grad(): return model(history)
  3. 冷启动解决方案

    • 新物品:通过模态编码生成初始表征
    • 新用户:混合内容推荐与热门推荐

特别注意事项:

  • 图像量化器的训练数据需与业务场景匹配
  • 协同模态可能引入马太效应,需定期去偏
  • 编码长度需权衡存储开销与表达能力

6. 扩展应用

该框架可延伸至以下场景:

  1. 跨域推荐

    • 共享部分模态编码空间
    • 通过迁移学习加速新领域适配
  2. 可解释推荐

    { "item": "A12345", "semantic_codes": { "text": ["服饰", "运动", "耐克"], "image": ["运动鞋", "白色", "气垫"] } }
  3. 实时推荐

    • 增量更新编码器
    • 流式处理用户行为序列

未来可探索方向包括结合大语言模型进行提示增强、开发更高效的量化架构等。MSCGRec已在实际业务中验证了其有效性,为下一代推荐系统的发展提供了新思路。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 10:12:34

微信聊天记录永久保存指南:3步轻松备份你的珍贵记忆

微信聊天记录永久保存指南&#xff1a;3步轻松备份你的珍贵记忆 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatM…

作者头像 李华
网站建设 2026/6/11 10:12:26

web应用技术—第三次课后作业

1、复刻注册登录&#xff0c;以及注册人员信息的增删改查撰写项目文件sqlCREATE TABLE userinfo2(uid int IDENTITY(1,1) NOT NULL,username varchar(50) NOT NULL,userpwd varchar(50) NOT NULL,sex varchar(10),age int,hobby varchar(200),PRIMARY KEY(uid) ); CREATE UNIQU…

作者头像 李华
网站建设 2026/6/11 10:11:42

Kolmogorov均值导数与可逆神经网络实现解析

1. Kolmogorov均值导数的数学解析Kolmogorov均值作为一种广义的集合聚合方法&#xff0c;其核心思想是通过可逆变换将输入数据映射到新的空间进行聚合。给定一个可逆且可微的变换函数ψ&#xff0c;对于集合X {x₁,...,xₙ}&#xff0c;Kolmogorov均值定义为&#xff1a;M_f(X…

作者头像 李华
网站建设 2026/6/11 10:11:04

别再为H桥驱动发愁了!用STM32F103的TIM1+TIM2主从模式,5分钟搞定两路带死区的互补PWM

STM32F103定时器主从模式实战&#xff1a;5分钟生成带死区的H桥驱动PWM 在电机控制和电源转换领域&#xff0c;H桥电路的设计与实现一直是工程师们面临的常见挑战。如何高效生成两路精确互补且带有可调死区的PWM信号&#xff0c;直接关系到系统的可靠性和效率。传统方法往往需要…

作者头像 李华