【推荐算法】NeuralCF:深度学习重构协同过滤的革命性突破

news2025/6/7 15:05:02

NeuralCF:深度学习重构协同过滤的革命性突破

      • 一、算法背景知识:协同过滤的演进与局限
        • 1.1 协同过滤的发展历程
        • 1.2 传统矩阵分解的缺陷
      • 二、算法理论/结构:NeuralCF架构设计
        • 2.1 基础NeuralCF结构
        • 2.2 双塔模型进阶结构
        • 2.3 模型实现流程对比
      • 三、模型评估:性能突破与实验验证
        • 3.1 离线实验(MovieLens数据集)
        • 3.2 在线A/B测试(电商场景)
      • 四、应用案例:工业级落地实践
        • 4.1 YouTube推荐系统
        • 4.2 新闻推荐系统
      • 五、面试题与论文资源
        • 5.1 高频面试题
        • 5.2 关键论文
      • 六、详细优缺点分析
        • 6.1 显著优势
        • 6.2 核心挑战
      • 七、相关算法演进
        • 7.1 NeuralCF家族演进
        • 7.2 双塔模型变种
        • 7.3 与传统模型对比
      • 总结:深度学习重构协同过滤的本质突破

一、算法背景知识:协同过滤的演进与局限

1.1 协同过滤的发展历程

协同过滤(Collaborative Filtering)是推荐系统的核心技术,经历了三个阶段演进:

  1. 基于邻域的方法(1990s):计算用户/物品相似度
    UserCF:  r ^ u i = r ˉ u + ∑ v ∈ N i ( u ) sim ( u , v ) ( r v i − r ˉ v ) ∑ v ∈ N i ( u ) ∣ sim ( u , v ) ∣ \text{UserCF: } \hat{r}_{ui} = \bar{r}_u + \frac{\sum_{v \in N_i(u)} \text{sim}(u,v)(r_{vi} - \bar{r}_v)}{\sum_{v \in N_i(u)} |\text{sim}(u,v)|} UserCF: r^ui=rˉu+vNi(u)sim(u,v)vNi(u)sim(u,v)(rvirˉv)
  2. 矩阵分解模型(2006):隐语义模型(Latent Factor Model)
    min ⁡ p , q ∑ ( u , i ) ∈ κ ( r u i − p u T q i ) 2 + λ ( ∣ ∣ p u ∣ ∣ 2 + ∣ ∣ q i ∣ ∣ 2 ) \min_{p,q} \sum_{(u,i) \in \kappa} (r_{ui} - \mathbf{p}_u^T \mathbf{q}_i)^2 + \lambda(||\mathbf{p}_u||^2 + ||\mathbf{q}_i||^2) p,qmin(u,i)κ(ruipuTqi)2+λ(∣∣pu2+∣∣qi2)
    矩阵分解算法的原理
  3. 深度学习时代(2017):NeuralCF突破传统点积限制
1.2 传统矩阵分解的缺陷
  1. 表达能力局限:点积操作 p u T q i \mathbf{p}_u^T\mathbf{q}_i puTqi本质是线性模型
  2. 交互信息损失:无法捕捉高阶非线性特征交互
  3. 冷启动问题:纯ID特征难以处理新用户/物品
用户行为数据
矩阵分解
用户隐向量P
物品隐向量Q
点积运算
预测评分

💡 核心问题:如何用深度学习增强协同过滤的非线性表达能力?

二、算法理论/结构:NeuralCF架构设计

NeuralCF的模型结构图 (出自论文Neural Collaborative Filtering)

2.1 基础NeuralCF结构

NeuralCF用多层神经网络替代点积操作,实现非线性交互:

  1. 嵌入层:将用户ID、物品ID映射为稠密向量
    e u = Embedding u ( u ) , e i = Embedding i ( i ) \mathbf{e}_u = \text{Embedding}_u(u), \quad \mathbf{e}_i = \text{Embedding}_i(i) eu=Embeddingu(u),ei=Embeddingi(i)
  2. 交互层:拼接用户/物品向量输入MLP
    z 0 = [ e u ; e i ] \mathbf{z}_0 = [\mathbf{e}_u; \mathbf{e}_i] z0=[eu;ei]
    z 1 = ReLU ( W 1 z 0 + b 1 ) \mathbf{z}_1 = \text{ReLU}(\mathbf{W}_1\mathbf{z}_0 + \mathbf{b}_1) z1=ReLU(W1z0+b1)
    ⋯ \cdots
    z L = ReLU ( W L z L − 1 + b L ) \mathbf{z}_L = \text{ReLU}(\mathbf{W}_L\mathbf{z}_{L-1} + \mathbf{b}_L) zL=ReLU(WLzL1+bL)
  3. 输出层:Sigmoid预测评分
    y ^ u i = σ ( w T z L + b ) \hat{y}_{ui} = \sigma(\mathbf{w}^T\mathbf{z}_L + b) y^ui=σ(wTzL+b)
2.2 双塔模型进阶结构

为融入更多特征,NeuralCF发展为双塔模型,双塔模型结构:
双塔模型结构

  1. 用户塔

    • 输入:用户ID、画像特征、行为序列
    • 结构:多层全连接网络
      u = f θ u ( x u ) \mathbf{u} = f_{\theta_u}(\mathbf{x}_u) u=fθu(xu)
  2. 物品塔

    • 输入:物品ID、内容特征、上下文信息
    • 结构:多层全连接网络
      v = f θ v ( x i ) \mathbf{v} = f_{\theta_v}(\mathbf{x}_i) v=fθv(xi)
  3. 交互层设计

    • 点积交互 y ^ u i = σ ( u T v ) \hat{y}_{ui} = \sigma(\mathbf{u}^T\mathbf{v}) y^ui=σ(uTv)(计算高效)
    • 神经网络交互 y ^ u i = MLP ( [ u ; v ] ) \hat{y}_{ui} = \text{MLP}([\mathbf{u};\mathbf{v}]) y^ui=MLP([u;v])(表达能力更强)
2.3 模型实现流程对比
组件NeuralCF基础版双塔进阶版
输入仅用户ID+物品ID多模态特征
结构单路MLP双路并行DNN
交互层全连接层点积/浅层MLP
输出SigmoidSigmoid

三、模型评估:性能突破与实验验证

3.1 离线实验(MovieLens数据集)
模型HR@10NDCG@10训练时间
MF0.6810.4031x
ItemCF0.7350.4210.8x
NeuralCF0.8020.4871.5x
双塔NeuralCF0.8230.5122x
3.2 在线A/B测试(电商场景)
指标矩阵分解NeuralCF双塔提升
CTR3.21%3.87%+20.6%
转化率1.05%1.31%+24.8%
平均观看时长72s89s+23.6%

关键发现:双塔结构在引入多特征后,冷启动物品CTR提升达37.5%

四、应用案例:工业级落地实践

4.1 YouTube推荐系统
  • 用户塔输入
    • 观看历史(50个最近视频ID)
    • 搜索历史(tokenized)
    • 人口统计特征(地理位置、设备)
  • 物品塔输入
    • 视频ID
    • 频道ID
    • 视频嵌入(图像/音频特征)
  • 交互方式:近似最近邻(ANN)搜索
  • 服务架构
    YouTube双塔召回模型的架构 (出自论文 Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations)

YouTube 召回双塔模型的用户侧特征包括了用户正在观看的视频 ID、频道 ID(图中的 seed features)、该视频的观看数、被喜欢的次数,以及用户历史观看过的视频 ID 等等。物品侧的特征包括了候选视频的 ID、频道 ID、被观看次数、被喜欢次数等等。在经过了多层 ReLU 神经网络的学习之后,双塔模型最终通过 softmax 输出层连接两部分,输出最终预测分数。

看到这里,你可能会有疑问,这个双塔模型相比我们之前学过的 Embedding MLP 和 Wide&Deep 有什么优势呢?其实在实际工作中,双塔模型最重要的优势就在于它易上线、易服务。为什么这么说呢?

你注意看一下物品塔和用户塔最顶端的那层神经元,那层神经元的输出其实就是一个全新的物品 Embedding 和用户 Embedding。双塔模型结构中,物品塔的输入特征向量是 x,经过物品塔的一系列变换,生成了向量 u(x),那么这个 u(x) 就是这个物品的 Embedding 向量。同理,v(y) 是用户 y 的 Embedding 向量,这时,我们就可以把 u(x) 和 v(y) 存入特征数据库,这样一来,线上服务的时候,我们只要把 u(x) 和 v(y) 取出来,再对它们做简单的互操作层运算就可以得出最后的模型预估结果了!

所以使用双塔模型,我们不用把整个模型都部署上线,只需要预存物品塔和用户塔的输出,以及在线上实现互操作层就可以了。如果这个互操作层是点积操作,那么这个实现可以说没有任何难度,这是实际应用中非常容易落地的,也是工程师们喜闻乐见的,这也正是双塔模型在业界巨大的优势所在。

正是因为这样的优势,双塔模型被广泛地应用在 YouTube、Facebook、百度等各大公司的推荐场景中,持续发挥着它的能量。

4.2 新闻推荐系统
  • 创新设计:动态用户兴趣塔
    u t = GRU ( v 1 , v 2 , . . . , v t ) \mathbf{u}_t = \text{GRU}(\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_t) ut=GRU(v1,v2,...,vt)
  • 特征工程
    • 用户侧:阅读历史、点击时间、停留时长
    • 新闻侧:标题BERT嵌入、主题分类、新鲜度
  • 成效:点击率提升28%,多样性指标提升35%

五、面试题与论文资源

5.1 高频面试题
  1. Q:NeuralCF与传统MF的本质区别?
    A:MF使用线性点积交互,NeuralCF用MLP学习非线性交互函数

  2. Q:双塔模型为何线上服务高效?
    A:物品向量可离线计算,线上只需实时计算用户向量+点积运算

  3. Q:如何处理用户长序列行为?
    A:引入RNN/Transformer塔: u = Transformer ( { v 1 , . . . , v T } ) \mathbf{u} = \text{Transformer}(\{\mathbf{v}_1,...,\mathbf{v}_T\}) u=Transformer({v1,...,vT})

  4. Q:点积交互的局限性如何解决?
    A:可扩展为:

    • 多向量表示(如MIND)
    • 交叉网络(如DCN)
      y ^ = MLP ( u ⊗ v ) \hat{y} = \text{MLP}(\mathbf{u} \otimes \mathbf{v}) y^=MLP(uv)
5.2 关键论文
  1. 奠基之作:Neural Collaborative Filtering (WWW 2017)
  2. 双塔模型:Sampling-Bias Corrected Neural Modeling (RecSys 2019)
  3. 工业实践:YouTube DNN (RecSys 2016)
  4. 最新进展:Contrastive Learning for Sequential Recommendation (ICDE 2022)

六、详细优缺点分析

6.1 显著优势
  1. 表达能力跃迁

    • MLP可逼近任意连续函数(Universal Approximation Theorem)
    • 相比MF的线性交互,NeuralCF的参数量提升10-100倍
  2. 特征融合能力

    • 支持多模态特征输入(ID/文本/图像)
    • 用户塔示例架构:
    用户ID
    嵌入层
    历史行为
    RNN层
    画像特征
    全连接层
    特征拼接
    用户向量
  3. 线上服务高效

    • 物品塔预计算:节省90%线上计算
    • 近似最近邻搜索(ANN)响应时间<20ms
6.2 核心挑战
  1. 交互信息损失(双塔结构):

    • 点积操作: rank ( U V T ) ≤ min ⁡ ( dim ( u ) , dim ( v ) ) \text{rank}(\mathbf{UV}^T) \leq \min(\text{dim}(\mathbf{u}),\text{dim}(\mathbf{v})) rank(UVT)min(dim(u),dim(v))
    • 解决方案:显式交互层设计
  2. 负采样偏差

    • 曝光未点击样本≠真实负样本
    • 改进方案:重要性加权采样
      L = − ∑ ( u , i ) ∈ D w u i [ y u i log ⁡ y ^ u i + ( 1 − y u i ) log ⁡ ( 1 − y ^ u i ) ] \mathcal{L} = -\sum_{(u,i) \in \mathcal{D}} w_{ui} [y_{ui}\log\hat{y}_{ui} + (1-y_{ui})\log(1-\hat{y}_{ui})] L=(u,i)Dwui[yuilogy^ui+(1yui)log(1y^ui)]
  3. 动态兴趣建模

    • 静态用户向量无法捕捉兴趣漂移
    • 改进:实时更新用户塔(如Google两塔系统)

七、相关算法演进

7.1 NeuralCF家族演进
模型创新点交互函数发表年份
NeuMFGMF+MLP融合 y ^ = σ ( h T [ p u ⊙ q i ; MLP ( p u , q i ) ] ) \hat{y} = \sigma(\mathbf{h}^T[\mathbf{p}_u\odot\mathbf{q}_i; \text{MLP}(\mathbf{p}_u,\mathbf{q}_i)]) y^=σ(hT[puqi;MLP(pu,qi)])2017
ConvNCF卷积交互外积矩阵+卷积核2018
LightGCN图神经网络邻域聚合+线性组合2020
7.2 双塔模型变种
  1. YouTube双塔

    • 特征:观看历史序列+多模态内容
    • 服务:百亿级向量索引
  2. MIND(阿里)

    • 多兴趣提取: { u 1 , . . . , u K } = CapsuleNet ( h 1 , . . . , h T ) \{\mathbf{u}_1,...,\mathbf{u}_K\} = \text{CapsuleNet}(\mathbf{h}_1,...,\mathbf{h}_T) {u1,...,uK}=CapsuleNet(h1,...,hT)
    • 动态路由机制
  3. SENet双塔(腾讯)

    • 特征重要性加权:
      x ′ = x ⋅ MLP ( x ) \mathbf{x}' = \mathbf{x} \cdot \text{MLP}(\mathbf{x}) x=xMLP(x)
    • 特征压缩比:4:1
7.3 与传统模型对比
协同过滤
矩阵分解
NeuralCF
双塔模型
多兴趣模型
图神经网络

总结:深度学习重构协同过滤的本质突破

NeuralCF的核心贡献在于用神经网络函数替代点积操作,实现了三大革命性突破:

  1. 非线性交互建模

    • MLP可学习任意复杂的用户-物品交互函数
      f MLP ( p u , q i ) ≫ p u T q i f_{\text{MLP}}(\mathbf{p}_u, \mathbf{q}_i) \gg \mathbf{p}_u^T\mathbf{q}_i fMLP(pu,qi)puTqi
  2. 多模态特征融合

    • 突破传统CF仅用ID的限制,支持文本/图像/行为序列
  3. 工业级服务范式

    • 双塔结构确立"离线计算物品塔,在线生成用户塔"的工业标准

🌟 未来方向

  • 多模态融合:CLIP-like的跨模态预训练
  • 因果推断:解耦曝光偏差与真实偏好
  • 可解释性:神经交互的可视化分析

NeuralCF不仅是一个模型,更开创了"深度学习重构经典算法"的新范式,其思想被广泛应用于搜索、广告、社交网络等领域,成为推荐系统发展的里程碑。

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

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

相关文章

负载均衡相关基本概念

负载均衡在系统架构设计中至关重要&#xff0c;其核心目标是合理分配负载&#xff0c;提升系统整体性能和可靠性。本文简要介绍了负载均衡的基本概念&#xff0c;包括四层和七层负载均衡、负载均衡的使用场景和实现方式、负载均衡的常用算法以及一些配置相关知识。 1、负载均衡…

集成电路设计:从概念到实现的完整解析优雅草卓伊凡

集成电路设计&#xff1a;从概念到实现的完整解析优雅草卓伊凡 一、集成电路设计&#xff1a;芯片制造的”灵魂蓝图” 1.1 什么是集成电路设计&#xff1f; 集成电路&#xff08;IC&#xff09;设计是指通过电子设计自动化&#xff08;EDA&#xff09;工具&#xff0c;将数百…

动态规划之网格图模型(二)

文章目录 动态规划之网格图模型&#xff08;二&#xff09;LeetCode 931. 下降路径最小和思路Golang 代码 LeetCode 2684. 矩阵中移动的最大次数思路Golang 代码 LeetCode 2304. 网格中的最小路径代价思路Golang 代码 LeetCode 1289. 下降路径最小和 II思路Golang 代码 LeetCod…

robot_lab——rsl_rl的train.py整体逻辑

文章目录 Go2机器人训练流程详细分析概述1. 训练启动流程1.1 命令行参数解析RSL-RL相关参数组Isaac Sim应用启动参数组 1.2 RL配置1.3 Isaac Sim启动 2. 环境配置加载2.1 Hydra配置系统 3. 环境创建与初始化3.1 Gym环境创建3.2 Manager系统初始化3.2.1 ObservationManager3.2.2…

.NET 原生驾驭 AI 新基建实战系列(三):Chroma ── 轻松构建智能应用的向量数据库

在人工智能AI和机器学习ML迅猛发展的今天&#xff0c;数据的存储和检索需求发生了巨大变化。传统的数据库擅长处理结构化数据&#xff0c;但在面对高维向量数据时往往力不从心。向量数据库作为一种新兴技术&#xff0c;专为AI应用设计&#xff0c;能够高效地存储和查询高维向量…

8.RV1126-OPENCV 视频中添加LOGO

一.视频中添加 LOGO 图像大体流程 首先初始化VI,VENC模块并使能&#xff0c;然后创建两个线程&#xff1a;1.把LOGO灰度化&#xff0c;然后获取VI原始数据&#xff0c;其次把VI数据Mat化并创建一个感兴趣区域&#xff0c;最后把LOGO放感兴趣区域里并把数据发送给VENC。2.专门获…

API管理是什么?API自动化测试怎么搭建?

目录 一、API管理是什么 &#xff08;一&#xff09;API管理的定义 &#xff08;二&#xff09;API管理的重要性 二、API管理的主要内容 &#xff08;一&#xff09;API设计 1. 遵循标准规范 2. 考虑可扩展性 3. 保证接口的易用性 &#xff08;二&#xff09;API开发 …

GIC v3 v4 虚拟化架构

ARMV8-A架构中包含了对虚拟化的支持。为了与架构保持匹配&#xff0c;GICV3也对虚拟化做了支持。新增了以下特性&#xff1a; 对CPU interface的硬件虚拟化虚拟中断maintenance 中断&#xff1a;用于通知监管程序&#xff08;例如hypervisor&#xff09;一些特定的虚拟机事件 …

2025远离Deno和Fresh

原创作者&#xff1a;庄晓立&#xff08;LIIGO&#xff09; 原创时间&#xff1a;2025年6月6日 原创链接&#xff1a;https://blog.csdn.net/liigo/article/details/148479884 版权所有&#xff0c;转载请注明出处&#xff01; 相识 Deno&#xff0c;是Nodejs原开发者Ryan Da…

Flask+LayUI开发手记(七):头像的上传及突破static目录限制

看了看&#xff0c;上篇开发手记是去年8月份写的&#xff0c;到现在差2个月整一年了。停更这么长时间&#xff0c;第一个原因是中间帮朋友忙一个活&#xff0c;那个技术架构是用springboot的&#xff0c;虽然前端也用layUI&#xff0c;但和Flask-python完全不搭界&#xff0c;所…

MiniExcel模板填充Excel导出

目录 1.官方文档 2. 把要导出的数据new一个匿名对象 3.导出 4.注意事项 5.模板制作 6.结果 1.官方文档 https://gitee.com/dotnetchina/MiniExcel/#%E6%A8%A1%E6%9D%BF%E5%A1%AB%E5%85%85-excel // 1. By POCO var value new {Name "Jack",CreateDate n…

MCP协议重构AI Agent生态:万能插槽如何终结工具孤岛?

前言 在人工智能技术快速发展的2025年&#xff0c;MCP(Model Context Protocol&#xff0c;模型上下文协议)正逐渐成为AI Agent生态系统的关键基础设施。这一由Anthropic主导的开放协议&#xff0c;旨在解决AI模型与外部工具和数据源之间的连接难题&#xff0c;被业界形象地称…

阿里云事件总线 EventBridge 正式商业化,构建智能化时代的企业级云上事件枢纽

作者&#xff1a;肯梦、稚柳 产品演进历程&#xff1a;在技术浪潮中的成长之路 早在 2018 年&#xff0c;Gartner 评估报告便将事件驱动模型&#xff08;Event-Driven Model&#xff09;列为十大战略技术趋势之一&#xff0c;指出事件驱动架构&#xff08;EDA&#xff0c;Eve…

CentOS8.3+Kubernetes1.32.5+Docker28.2.2高可用集群二进制部署

一、准备工作 1.1 主机列表 HostnameHost IPDocker IPRolek8s31.vm.com192.168.26.3110.26.31.1/24master&worker、etcd、dockerk8s32.vm.com192.168.26.3210.26.32.1/24master&worker、etcd、dockerk8s33.vm.com192.168.26.3310.26.33.1/24master&worker、etcd、…

学习日记-day23-6.6

完成目标&#xff1a; 知识点&#xff1a; 1.IO流_转换流使用 ## 转换流_InputStreamReader1.字节流读取中文在编码一致的情况,也不要边读边看,因为如果字节读不准,读不全,输出的内容有可能会出现乱码 2.所以,我们学了字符流,字符流读取文本文档中的内容如果编码一致,就不会出…

Pytorch安装后 如何快速查看经典的网络模型.py文件(例如Alexnet,VGG)(已解决)

当你用conda 安装好虚拟环境后&#xff0c; 找到你的Anaconda 的安装位置。 我的在D盘下&#xff1b; 然后 从Anaconda3文件夹开始&#xff1a;一级一级的查看&#xff0c;一直到models Anaconda3\envs\openmmlab\Lib\site-packages\torchvision\models 在models下面&#x…

有人-无人(人机)交互记忆、共享心智模型与AI准确率的边际提升

有人-无人&#xff08;人机&#xff09;交互记忆、共享心智模型与AI准确率的边际提升是人工智能发展中相互关联且各有侧重的三个方面。人机交互记忆通过记录和理解用户与机器之间的交互历史&#xff0c;增强机器对用户需求的个性化响应能力&#xff0c;从而提升用户体验和协作效…

【OpenGL学习】(五)自定义着色器类

文章目录 【OpenGL学习】&#xff08;五&#xff09;自定义着色器类着色器类插值着色统一着色 【OpenGL学习】&#xff08;五&#xff09;自定义着色器类 项目结构&#xff1a; 着色器类 // shader_s.h #ifndef SHADER_H #define SHADER_H#include <glad/glad.h>#inc…

408第一季 - 数据结构 - 栈与队列的应用

括号匹配 用瞪眼法就可以知道的东西 栈在表达式求值运用 先简单看看就行&#xff0c;题目做了就理解了 AB是操作符,也是被狠狠加入后缀表达式了&#xff0c;然后后面就是*&#xff0c;只要优先级比栈顶运算符牛逼就放里面&#xff0c;很显然&#xff0c;*比牛逼 继续前进&#…

超声波清洗设备的清洗效果如何?

超声波清洗设备是一种常用于清洗各种物体的技术&#xff0c;它通过超声波振荡产生的微小气泡在液体中破裂的过程来产生高能量的冲击波&#xff0c;这些冲击波可以有效地去除表面和细微裂缝中的污垢、油脂、污染物和杂质。超声波清洗设备在多个领域得到广泛应用&#xff0c;包括…