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

论文笔记-NeurIPS2017-DropoutNet

论文笔记-NeurIPS2017-DropoutNet: Addressing Cold Start in Recommender Systems

  • DropoutNet:解决推荐系统中的冷启动问题
  • 摘要
  • 1.引言
  • 2.前言
  • 3.方法
    • 3.1模型架构
    • 3.2冷启动训练
    • 3.3推荐
  • 4.实验
    • 4.1实验设置
    • 4.2在CiteULike上的实验结果
      • 4.2.1 Dropout率的影响
      • 4.2.2 实验结果
    • 4.3在RecSys上的实验结果
  • 5.总结

DropoutNet:解决推荐系统中的冷启动问题

论文: DropoutNet: Addressing Cold Start in Recommender Systems
代码: DropoutNet

摘要

大多数潜在模型主要集中在用户-物品交互的建模上,关于冷启动问题的研究相对较少。因此,本文提出了一种名为 DropoutNet 的基于神经网络的潜在模型,以解决推荐系统中的冷启动问题。与现有方法不同的是,DropoutNet 没有引入额外的基于内容的目标项,而是专注于优化,表明神经网络模型可以通过 dropout 明确训练以应对冷启动问题。

1.引言

冷启动等同于缺失数据问题,即缺失偏好信息。因此,DropoutNet 并不添加额外的目标项来建模内容,而是修改学习过程,明确地使模型适应缺失的输入。该方法的关键思想是,通过对输入小批量应用dropout,训练DNN以对缺失输入进行泛化。

通过选择适当的dropout比例,DropoutNet 在热启动时的性能与最先进的模型相当,而在冷启动时则显著优于其性能。DropoutNet 比大多数结合内容信息的方法简单,并且使用单一的目标函数,联合优化所有组件以最大化推荐准确性。该方法的另一个优点是,它可以在任何现有的潜在模型之上应用,以提供或增强其冷启动能力。

2.前言

定义如下:

  1. 用户集合: U = { u 1 , u 2 , … , u N } U = \{ u_1, u_2, \ldots, u_N \} U={u1,u2,,uN}

  2. 物品集合: V = { v 1 , v 2 , … , v M } V = \{ v_1, v_2, \ldots, v_M \} V={v1,v2,,vM}

  3. 偏好矩阵: R R R

  4. 用户 u u u 对物品 v v v 的偏好: R u v ​ R_{uv}​ Ruv

  5. 对物品 v v v 表达偏好的用户集合: U ( v ) = { u ∈ U ∣ R u v ≠ 0 } U(v) = \{ u \in U \mid R_{uv} \neq 0 \} U(v)={uURuv=0}

  6. 对用户 u u u 表达偏好的物品集合: V ( u ) = { v ∈ V ∣ R u v ≠ 0 } V(u) = \{ v \in V \mid R_{uv} \neq 0 \} V(u)={vVRuv=0}

  7. 冷启动条件: V ( u ) = ∅ V(u) = \emptyset V(u)= U ( v ) = ∅ U(v) = \emptyset U(v)=

  8. 用户的内容特征: Φ U ​ \Phi^U​ ΦU

  9. 物品的内容特征: Φ V ​ \Phi^V​ ΦV

  10. 用户 u u u 的内容特征向量: Φ u U ​ \Phi_u^U​ ΦuU

  11. 物品 v v v 的内容特征向量: Φ v V ​ \Phi_v^V​ ΦvV

  12. 当内容缺失时,特征向量设置为 Φ u U ​ = 0 \Phi_u^U​=0 ΦuU=0 Φ v V = 0 ​ \Phi_v^V=0​ ΦvV=0​

3.方法

DropoutNet 使用潜在表示作为偏好输入。潜在模型通常用低秩矩阵 U U U V V V 的乘积来近似偏好矩阵积来近似偏好矩阵: KaTeX parse error: Undefined control sequence: \* at position 19: …uv} \approx U_u\̲*̲V_v^T,其中 U u ​ U_u​ Uu V v ​ V_v​ Vv 分别是用户 u u u 和物品 v v v 的潜在表示。 U U U V V V 都是密集且低维的,秩为 D ≤ min ⁡ ( N , M ) D \leq \min(N, M) Dmin(N,M)。考虑到潜在方法在各种协同过滤数据集上的强大表现,可以合理假设潜在表示准确地总结了用户和物品的偏好信息。此外,低输入维度显著降低了深度神经网络(DNN)的模型复杂性,因为第一个隐藏层的激活大小与输入大小成正比。鉴于这些优势,将每个用户 u u u 和物品 v v v 的输入设定为 [ U u , Φ u U ] [U_u, \Phi_u^U] [Uu,ΦuU] [ V v , Φ v V ] [V_v, \Phi_v^V] [Vv,ΦvV]

3.1模型架构

模型架构如图1所示,对于每个用户,两个形式的输入通过相应的DNN进行处理,连接之后传递给微调网络 f U ​ f_U​ fU​,然后输出潜在表示 U ^ u ​ \hat{U}_u​ U^u。对于每个物品,得到潜在表示 V ^ v ​ \hat{V}_v​ V^v。在训练过程中,所有组件通过反向传播共同优化。一旦模型训练完成就将其固定,并进行前向传播以映射 U → U ^ U \to \hat{U} UU^ V → V ^ V \to \hat{V} VV^。所有检索操作都使用 U ^ \hat{U} U^ V ^ \hat{V} V^ 进行,相关性评分则按之前的方式估算为 s ^ u v = U ^ u V ^ v T ​ \hat{s}_{uv} = \hat{U}_u \hat{V}^T_v​ s^uv=U^uV^vT
在这里插入图片描述

3.2冷启动训练

借鉴去噪自编码器的思想,本文的目标是学习一个模型,即使在输入的部分缺失时仍能产生准确的表示。为此,提出了一个目标,即在输入通过模型后重现相关性评分:
在这里插入图片描述
目标O是最小化输入潜在模型和DNN产生的评分之间的差异。当所有的输入可用时,也就是热推荐时,通过将内容权重设置为0来使模型专注于偏好输入。这意味着模型不再考虑内容的影响,只依赖于用户的偏好来生成相关性评分。在这种情况下,模型学习到一个恒等函数,即对于给定的偏好输入,输出的评分与输入完全相同。这是一个理想的状态,因为它意味着模型在这种情况下可以准确地反映用户的偏好。

在冷启动情况下, U u ​ U_u​ Uu V v ​ V_v​ Vv(或两者)可能缺失,因此主要思路是通过应用输入丢弃(dropout)进行训练。使用随机的小批量优化,随机抽取用户-物品对来计算梯度并更新模型。在每个小批量中,随机选择一部分用户和物品,并将它们的偏好输入设置为 0,然后将小批量传递给模型。对于“丢弃”的对,模型必须在没有看到偏好输入的情况下重构相关性评分:
在这里插入图片描述
使用丢弃(dropout)进行训练具有双重效果:丢弃的对促使模型仅使用内容信息,而没有丢弃的对则鼓励模型忽略内容,简单地重现偏好输入。这两者的结合可以达到一种平衡。使用丢弃的另一个优点是,它最初是作为一种正则化模型的方法开发的。在这里也有类似的效果,即使对于更深和更复杂的模型,通常也不需要额外的正则化。

类似于去噪自编码器,DropoutNet 模型被训练来从噪声版本中重建输入。噪声以丢弃的形式出现,完全去除一部分输入维度。然而,DropoutNet 的目标不是重建实际的未损坏输入,而是最小化原始空间和重建空间中点之间的成对距离。考虑相关性评分 S = { U u V v T ∣ u ∈ U , v ∈ V } S = \{ U_u V^T_v | u \in U, v \in V \} S={UuVvTuU,vV} S ^ = { U ^ u V ^ v T ∣ u ∈ U , v ∈ V } \hat{S} = \{ \hat{U}_u \hat{V}^T_v | u \in U, v \in V \} S^={U^uV^vTuU,vV} 作为一维空间中的点集,DropoutNet 目标是保留由模型生成的 S ^ \hat{S} S^ 中点的相对排序与原始集 S S S 的相对排序。DropoutNet 专注于重建距离,提供了更大的灵活性,使模型能够学习全新的潜在空间,而不是将其绑定到另一个模型学习的表示上。这个目标类似于许多流行的降维模型,它们将数据投影到低维空间中,同时保留点之间的相对距离。

3.3推荐

训练完成后,固定模型并进行前向传播,以推断新的潜在表示。为了在观察到冷启动用户 u u u 的首个偏好时更新潜在表示 U ^ u ​​ \hat{U}_u​​ U^u​​,需要推断输入偏好向量 U u ​ U_u​ Uu。由于许多主流潜在模型使用复杂的非凸目标,使用新偏好更新潜在表示是一项非平凡的任务,需要迭代优化。为避免这一问题,本文使用一个简单的技巧,将每个用户表示为其交互过的物品的加权和,直到输入潜在模型被重新训练。形式上,给定生成了新交互集 V ( u ) V(u) V(u) 的冷启动用户 u u u,用该用户在 V ( u ) V(u) V(u) 中物品的平均潜在表示来近似 U u ​ U_u​ Uu
在这里插入图片描述
使用这一近似,通过用户 DNN 进行前向传播,可以获得更新的表示: U ^ u = f U ( mean v ∈ V ( u ) V v , Φ u U ) \hat{U}_u = f_U\left(\text{mean}_{v \in V(u)} V_v, \Phi_u^U\right) U^u=fU(meanvV(u)Vv,ΦuU)。这一过程可以在收集新数据的近实时情况下持续进行,直到输入潜在模型被重新训练。冷启动物品的处理方式类似,使用用户表示的平均值。通过这种近似获得的表示的分布可能会偏离输入潜在模型生成的分布。使用类似于冷启动的丢弃方法显式地为此进行训练。在学习过程中,每个小批量中随机选择的用户和物品的偏好输入被替换为方程 (4)。在丢弃和这一转换之间交替,并控制每种转换的相对频率(即丢弃比例)。算法 1 概述了完整的学习过程。
在这里插入图片描述

4.实验

4.1实验设置

数据集:CiteULike 和 ACM RecSys 2017

基线:WMF、CTR、DeepMusic 和 CDL

4.2在CiteULike上的实验结果

4.2.1 Dropout率的影响

图 2 显示了 dropout 率在 0 到 1 之间的热启动和冷启动 recall@100 的准确性。
在这里插入图片描述

结论:

热启动的准确性几乎保持不变,下降幅度不到 1%,直到 dropout 达到 0.7 时迅速下降。另一方面,冷启动的准确性随着 dropout 的增加而稳步上升。此外,在没有 dropout 的情况下,冷启动性能较差,即使是 0.1 的 dropout 也能使其提高超过 60%。这表明在某些 dropout 值的范围内,可以在冷启动准确性上获得显著提升,而不会对热启动造成损失。

4.2.2 实验结果

本文使用 WMF 和 CDL 作为输入偏好模型,偏好输入 dropout 率均为 0.5,热启动和冷启动的 recall@100 结果如表 1 所示。
在这里插入图片描述

结论:

  1. 大多数基线在热启动上产生了相似的结果,因为几乎所有模型都使用 WMF 目标来建模 R。其中一个例外是 DeepMusic,这归因于 DeepMusic 中项目潜在表示仅为内容的函数,因此缺乏偏好信息。

  2. DN-WMF 和 DN-CDL 的表现与最佳基线相当,表明将偏好信息作为输入添加到模型中显著改善了性能。相比之下,像 DeepMusic 这样的仅基于内容的模型效果较差。

  3. Dropout=0.5 不会影响热启动性能,我们的模型仍然能够恢复输入潜在模型的准确性。冷启动结果则更加多样化,最佳冷启动基线如预期为 DeepMusic。

4.3在RecSys上的实验结果

在这里插入图片描述

结论:

  1. 所有基线的表现相近,除了 DeepMusic,这表明仅基于内容的模型在热启动上不太可能表现良好。

  2. 用户和项目冷启动的结果显示 DN-WMF 的表现明显优于 DeepMusic,对于大多数截断,提升超过 50%。进一步表明,即使最终目标是冷启动,将偏好信息作为输入纳入模型是非常重要的。

5.总结

提出了 DropoutNet,一种用于推荐系统冷启动的深度神经网络模型。DropoutNet 在训练过程中应用输入 dropout,以适应缺失的偏好信息。缺失数据的优化迫使模型利用偏好和内容信息,而不明确依赖两者同时存在。这使得模型在热启动和冷启动场景中都具有出色的泛化能力。此外,与通常具有复杂多项目标函数的现有方法不同,DropoutNet 的目标函数只有一个单一项,易于实现和优化。DropoutNet 可以有效地应用于任何现有的潜在模型之上,提供冷启动能力,并充分发挥深度架构在内容建模中的优势。从实证上看,DropoutNet 在两个公共基准上展示了最先进的结果。

相关文章:

论文笔记-NeurIPS2017-DropoutNet

论文笔记-NeurIPS2017-DropoutNet: Addressing Cold Start in Recommender Systems DropoutNet:解决推荐系统中的冷启动问题摘要1.引言2.前言3.方法3.1模型架构3.2冷启动训练3.3推荐 4.实验4.1实验设置4.2在CiteULike上的实验结果4.2.1 Dropout率的影响4.2.2 实验结…...

php 对接mqtt 完整版本,订阅消息,发送消息

首先打开链接如何在 PHP 项目中使用 MQTT 根据文章让所用依赖安装一下: composer require php-mqtt/client 安装之后弄一个部署 之后在工具里边可以相应链接上 接下来是代码: /**** 订阅消息* return void* throws \PhpMqtt\Client\Exceptions\Confi…...

谈谈 ES 6.8 到 7.10 的功能变迁(6)- 其他

这是 ES 7.10 相较于 ES 6.8 新增内容的最后一篇,主要涉及算分方法和同义词加载的部分。 自定义算分:script_score 2.0 Elasticsearch 7.0 引入了新一代的函数分数功能,称为 script_score 查询。这一新功能提供了一种更简单、更灵活的方式来…...

【苍穹外卖】问题笔记

【DAY1 】 1.VCS找不到 好吧,发现没安git 接着发现安全模式有问题,点开代码信任此项目 2.导入初始文件,全员爆红 好像没maven,配一个 并在设置里设置好maven 3.启用注解,见新手苍穹 pom.xml改lombok版本为1.1…...

脑机接口SSVEP 信号特征提取技术术语

目录 背景简介 1. 最小能量组合(MEC)和最大对比组合(MCC) 2. 典型相关分析(CCA) 3. 滤波器组CCA(FBCCA) 4. 二进制子带CCA(BsCCA) 5. 融合CCA&#xff…...

【Veristand】Veristand 预编写教程目录

很久没有更新,最近打算出一期Veristand教程,暂时目录列成下面这个表格,如果各位有关心的遗漏的点,可以在评论区提问,我后期可以考虑添加进去,但是提前声明,太过小众的点我不会,欢迎各…...

C#光速入门的指南

以下是一份C#快速入门的指南,涵盖了基础语法、面向对象编程、输入输出、异常处理等方面,帮助你快速上手C#。 1. 开发环境搭建 要开始使用C#进行编程,你需要安装开发环境。最常用的是Visual Studio,它提供了丰富的工具和功能&…...

深入探索 STM32 微控制器:从基础到实践

一、引言 在当今的嵌入式系统领域,STM32 系列微控制器凭借其高性能、低功耗、丰富的外设以及广泛的应用场景,成为了众多开发者的首选。无论是在工业控制、智能家居、医疗设备,还是在消费电子等领域,STM32 都展现出了强大的生命力…...

Oracle性能调优(一):时间模型统计

Oracle性能调优(一):时间模型统计 时间模型统计视图时间模型统计指标时间模型统计视图 📖 DB Time的含义: DB Time表示前台会话在数据库调用中所花费的总时间,它是衡量数据库实例总负载的一个重要指标。DB Time是从实例启动时开始累计测量的,其计算方法是将所有前台会话…...

前端Npm面试题及参考答案

目录 npm 是什么?它的主要作用是什么? npm 包管理工具与 Yarn 有何不同? npm 的 package.json 文件有哪些重要字段? 什么是 npm 依赖?如何在项目中安装、更新和移除依赖? npm 的 node_modules 目录是什么?它的作用是什么? 什么是 npm 脚本?如何在 package.json 中…...

记一次线上Tomcat服务内存溢出的问题处理

背景:JavaWeb项目部署在Tomcat服务器上,服务器用的Windows。 问题表现:系统出现偶发性无法访问(隔几天就会在早上无法访问) Tomcat的日志catalina中,有如下报错信息。 java.lang.OutOfMemoryError: GC ov…...

nist关于rsa中p,q的要求

NIST.FIPS.186-4 美国国家标准与技术研究院(National Institute of Standards and Technology,NIST) FIPS,美国联邦信息处理标准(Federal Information Processing Standard) Criteria for IFC Key Pairs B.3.1 Crite…...

Vue3项目如何使用TailWind CSS保姆级教程

‌一、简单介绍一下TailWind CSS TailWind CSS是一个实用工具优先的 CSS 框架,它通过提供大量的原子化 CSS 类,允许开发者通过组合这些类来快速构建界面,而无需编写额外的 CSS 文件。这种设计理念使得开发过程更加直观和高效&#xff…...

NO.22十六届蓝桥杯备战|一维数组|七道练习|冒泡排序(C++)

B2093 查找特定的值 - 洛谷 题⽬要求下标是从0开始的,和数组的下标是吻合的,存放数据应该从下标0开始n的取值范围是1~10000数组中存放的值的绝对值不超10000,说明int类型就⾜够了找到了输出下标,找不到要输出-1,这⼀点…...

Mysql的索引失效

MySQL 的索引失效指的是:尽管在表上建立了索引,但在某些查询场景下,MySQL 优化器却没有利用这些索引,从而导致查询走了全表扫描,性能大大降低。下面详细说明几种常见的导致索引失效的情况及其原因: 1. 对索…...

现代前端框架渲染机制深度解析:虚拟DOM到编译时优化

引言:前端框架的性能进化论 TikTok Web将React 18迁移至Vue 3后,点击响应延迟降低42%,内存占用减少35%。Shopify采用Svelte重构核心交互模块,首帧渲染速度提升580%。Discord在Next.js 14中启用React Server Components后&#xf…...

set 和 map 的左右护卫 【刷题反思】

1. 相近的营业额 1.1 题目 题目描述&#xff1a;我们定义&#xff0c;一天营业额的最小波动 min { | 该天以前某一天的营业额 - 该天营业额 | } 特别的&#xff0c;第一天的营业额最小波动为第一天的营业额 输入描述&#xff1a;第一行 n &#xff08;n < 32767&#xf…...

【Linux高级IO】多路转接(poll epoll)

目录 1. poll 2. epoll 2.1 epoll_ctl 2.2 epoll_wait 2.3 epoll原理 2.4 epoll的工作模式 2.5 epoll的惊群效应 使用建议 总结 1. poll poll也是实现 I/O 多路复用的系统调用&#xff0c;可以解决select等待fd上限的问题&#xff0c;将输入输出参数分离&#xff0c;不需要…...

Linux上用C++和GCC开发程序实现两个不同PostgreSQL实例下单个数据库中多个Schema稳定高效的数据迁移到其它PostgreSQL实例

设计一个在Linux上运行的GCC C程序&#xff0c;同时连接三个不同的PostgreSQL实例&#xff0c;其中两个实例中分别有两个数据库中多个Schema的表结构分别与第三实例中两个数据库中多个Schema个结构完全相同&#xff0c;同时复制两个实例中两个数据库中多个Schema里的所有表的数…...

Linux下的网络通信编程

在不同主机之间&#xff0c;进行进程间的通信。 1解决主机之间硬件的互通 2.解决主机之间软件的互通. 3.IP地址&#xff1a;来区分不同的主机&#xff08;软件地址&#xff09; 4.MAC地址&#xff1a;硬件地址 5.端口号&#xff1a;区分同一主机上的不同应用进程 网络协议…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...