论文笔记-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 在两个公共基准上展示了最先进的结果。

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

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

相关文章

nvm的学习

学习 nvm(Node Version Manager) 是掌握 Node.js 开发的关键技能之一。以下是系统的学习路径和实战指南,涵盖从基础到进阶的内容: 一、基础入门 1. nvm 的核心作用 多版本共存:安装和管理多个 Node.js 版本&#xff…

GPT-4.5实际性能评测:实际探索

摘要 经过数万轮严格测试,GPT-4.5的性能并未超越其前代产品GPT-4。此前发布的《GPT-4.5 一手实测:垃圾》一文中存在不准确描述,在此向读者致歉。尽管GPT-4.5在价格上有所提升且响应速度较慢,但测试结果显示其模型素质并未达到预期…

从UNIX到Linux:操作系统进化史与开源革命

从UNIX到Linux:操作系统进化史与开源革命 一、操作系统:数字世界的基石 1.1 什么是操作系统? 操作系统(OS)是计算机系统的核心管理者,承担着三大核心使命: 硬件指挥官:直接管理C…

如何修改安全帽/反光衣检测AI边缘计算智能分析网关V4的IP地址?

TSINGSEE青犀推出的智能分析网关V4,是一款集成了BM1684芯片的高性能AI边缘计算智能硬件。其内置的高性能8核ARM A53处理器,主频可高达2.3GHz,INT8峰值算力更是达到了惊人的17.6Tops。此外,该硬件还预装了近40种AI算法模型&#xf…

【全栈开发】----Mysql基本配置与使用

本篇是在已下载Mysql的情况下进行的,若还未下载或未创建Mysql服务,请转到这篇: 2024 年 MySQL 8.0.40 安装配置、Workbench汉化教程最简易(保姆级)_mysql8.0.40下载安装教程-CSDN博客 本文对于mysql的操作均使用控制台sql原生代码…

C++ primer plus 第四节 复合类型

本章内容包括: • 创建和使用数组 • 创建和使用 c-风格字符串 • 创建和使用 string 类字符串 • 使用方法getline( )和 get( )读取字符串 • 混合输入字符串和数字 • 创建和使用结构 • 创建和使用共用休 • 创建和使用枚举 • 创建和使用指针 • 使用 new和delete 管理动态…

Java中的泛型类 --为集合的学习做准备

学习目标 ● 掌握在集合中正确使用泛型 ● 了解泛型类、泛型接口、泛型方法 ● 了解泛型上下限 ● 了解基本的使用场景 1.有关泛型 1.1泛型的概念 泛型(Generics)是Java中引入的参数化类型机制,允许在定义类、接口或方法时使用类型参数&a…

VUE3+Vite使用TailwindCSS【若依前后端分离框架】

参考:https://tailwind.nodejs.cn/docs/guides/vite#vue 和 https://blog.csdn.net/hjl_and_djj/article/details/144694485依次运行命令: cnpm install -D tailwindcss3.4.17 postcss autoprefixernpx tailwindcss init -p修改配置文件tailwind.config.…

FFmpeg入门:最简单的音频播放器

FFmpeg入门:最简单的音频播放器 欢迎大家来到FFmpeg入门的第二章,今天只做一个最简单的FFmpeg音频播放器;同样,话不多说,先上流程图 流程图 以上流程和视频播放器的解码过程基本上是一致的; 不同点在于 S…

在Ubuntu下,源码编译安装Python

在Ubuntu下,源码编译安装Python 知识点 知识点1:在 Linux 系统里,/usr 目录通常用于存放一些共享的、只读的程序和数据,是系统安装软件的一个重要位置。而 /usr/src 目录一般是用来存放系统源代码以及一些软件包的源代码的地方 …

《每天读一个JDK源码》之HashMap解读

📌《每天读一个JDK源码》之HashMap解读 🔗源码定位:java.util.HashMap(建议IDE对照阅读) 今天我们来破解Java集合框架中最精妙的艺术品——HashMap!它不仅是面试必考题(出现率99%)&…

【Java项目】基于SpringBoot的Java学习平台

【Java项目】基于SpringBoot的Java学习平台 技术简介:采用Java技术、SpringBoot框架、MySQL数据库等实现。系统基于B/S架构,前端通过浏览器与后端数据库进行信息交互,后端使用SpringBoot框架和MySQL数据库进行数据处理和存储,实现…

使用ChatGPT-Deep Reaserch两步给出文献综述!

文献综述是学术论文写作中不可或缺的一部分,它不仅是对已有研究的梳理和总结,更是为后续研究奠定理论基础的关键步骤。通过文献综述研究者能够全面了解当前研究领域的现状、主要观点和研究方法,从而找到自己研究的切入点和创新点。这一过程需…

java基础知识(理论篇)

一、java介绍 1.1Java语言 Java 是一种广泛使用的、通用的、面向对象的编程语言,Java 的设计目标是“一次编写,到处运行”,这也这意味着 Java 程序可以在任何支持 Java 的平台(如 Windows、Linux、macOS 等)上运行。 …

金融赋能绍兴纺织 民生银行助力外贸中小微企业“走出去”

在浙江绍兴,纺织业作为一张熠熠生辉的产业名片,承载着深厚的历史底蕴与蓬勃的发展活力。这里依傍长三角经济圈,交通网络纵横交错,将原材料产地与广阔市场紧密相连;产业集群高度成熟,上下游产业链完备&#…

综合实验处理表格

新建excel表格,输入信息,另存为csv文件。 利用notepad打开csv文件,可以观察格式 目标:通过编程处理文件,实现对数据的处理,成绩求和以及评价 对数据逐行处理,读一行,处理一行&#…

我和我的通义灵码

我和我的通义灵码 我和我的通义灵码个人版&企业版个人版登录个人版workspace应用场景terminal 企业版登录企业版#team docs 体验总结 我和我的通义灵码 说到通义灵码,作为程序员的我们是最有发言权的。从全国首个AI代码助手-通义灵码公测到现在,不知…

一文学会Volatile关键字

引言 在 Java 多线程实战中,volatile 是一个重要的关键字,用于修饰变量,经常在JUC源码中出现,本文详细解析一下这个关键字的奥秘 1. 基本概念 volatile 关键字的主要作用是保证变量的可见性以及在一定程度上禁止指令重排序。在…

Java测试框架Mockito快速入门

Mockito结合TestNG快速入门 什么是Mockito Mockito 是一个专门用于 Java 的强大测试框架,主要用来创建和管理模拟对象,辅助开发者进行单元测试,具有以下特点和功能: 创建模拟对象:能通过简洁的语法创建类或接口的模…

week 3 - More on Collections - Lecture 3

一、Motivation 1. Java支持哪种类型的一维数据结构? Java中用于在单一维度中存储数据的数据结构,如arrays or ArrayLists. 2. 如何在Java下创建一维数据结构?(1-dimensional data structure) 定义和初始化这些一…