机器学习31:《推荐系统-IV》深度神经网络DNN

news2025/2/1 10:59:28

在《机器学习29:《推荐系统-II》协同过滤》一文中,笔者介绍了如何使用矩阵分解来学习嵌入。矩阵分解具有一些局限性:

  • 基础矩阵分解只用了 UserID(QueryID) 和 ItemID 两个维度的信息,所有学到的知识都蕴含在 User 向量和 Item 嵌入中。可解释性差,同时,学习过程中很难融合更多有用的特征,比如用户的统计学信息(收入水平、学历、年龄、人生阶段等)以及商品的基础特征信息,如类目、品牌等。因而,基础矩阵分解的泛化能力受到一定的限制。
  • 因子分解机(FM)可以看做是基础矩阵分解的推广,它能够很好地融入更多维度的特征,从而学到的模型泛化能力更强,具体可以参考这篇文章:《主流CTR模型的演化及对比》。
  • 矩阵分解很难增量在线计算,从而不能处理用户的实时行为反馈,只能基于历史行为来计算。没有实时处理能力的推荐系统必然不会是一个好的推荐系统,比如,京东双11活动,当天的用户行为模式必然与平时的行为模式很不一样,推荐系统如果不能处理当天用户的实时行为,及时捕获用户的新的偏好,将会使得推荐效果大打折扣。

深度神经网络 (DNN) 模型可以解决矩阵分解的这些局限性。DNN 可以轻松地合并 User 特征和 Item 特征(由于网络输入层的灵活性),从而帮助捕获用户的特定兴趣并提高推荐的相关性。

目录

1.用于推荐的 Softmax DNN

1.1 模型输入

1.2 模型架构

1.3 Softmax 输出:预测概率分布

1.4 损失函数

1.5 Softmax 嵌入

2.DNN 和矩阵分解

2.1 可以使用 Item 特性吗?

3.Softmax 训练

3.1 训练数据

3.2 负采样

4.矩阵分解与softmax

5.参考文献


1.用于推荐的 Softmax DNN

一种可能的 DNN 模型是 softmax,它将问题视为多类预测问题,其中:

  • 输入是用户查询。
  • 输出是一个概率向量,大小等于物料库中 Item 的数量,表示与每个 Item 交互的概率;例如,点击或观看 YouTube 视频的概率。

1.1 模型输入

DNN 的输入可以包括:

  • 密集特征(例如,观看时间和自上次观看以来的时间)
  • 稀疏特征(例如,观看历史和国家/地区)

与矩阵分解方法不同,DNN 可以添加年龄、国家/地区等辅助特征。我们用 x 表示输入向量。

图 1.输入层 x

1.2 模型架构

模型架构决定了模型的复杂性和表现力。通过添加隐藏层和非线性激活函数(例如 ReLU),模型可以捕获数据中更复杂的关系。然而,增加参数数量通常也会使模型更难训练并且服务成本更高。我们将最后一个隐藏层的输出表示为:\psi (x)\epsilon \mathbb{R}^{d}

图 2. 隐藏层的输出\psi (x)

1.3 Softmax 输出:预测概率分布

该模型映射最后一层的输出 \psi (x),通过 softmax 层得到概率分布 \hat p = h(\psi(x) V^T), 其中:

  • h : \mathbb R^n \to \mathbb R^n 是 softmax 函数,由下式给出 h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}
  • V \in \mathbb R^{n \times d} 是 softmax 层的权重矩阵。

Softmax 层映射分数向量 y \in \mathbb R^n (有时称为 logits)概率分布。

图 3. 预测的概率分布,\hat p = h(\psi(x) V^T)

PS:

Softmax 这个名字是一个文字游戏。“硬” 最大值将概率 1 分配给得分最高的 Item(y_{i})。相比之下,softmax 为所有 Item 分配非零概率,为得分较高的 Item 赋予较高的概率。当分数缩放时,softmaxh(\alpha y) 收敛到极限内的“硬”最大值 \alpha \to \infty

1.4 损失函数

最后,定义一个损失函数来比较以下内容:

  • \hat p,softmax 层的输出(概率分布)
  • p,实际观测,表示 User 实际交互的 Item(例如,用户单击或观看的 YouTube 视频),可以表示为归一化的多热点分布(概率向量)。

例如,可以使用交叉熵损失来比较两个概率分布。

图 4. 损失函数

1.5 Softmax 嵌入

Item j 的概率为 \hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z},其中,Z 是一个归一化常数,不依赖于 j

换句话说,\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z),所以,Item j 的对数概率为(最多一个加法常数)两个​​​​​​​ d 维向量的点积,这两个向量可理解为 User(Query) 和 Item 的嵌入:

  • \psi(x) \in \mathbb R^d 是最后一个隐藏层的输出。我们称之为 Query 的嵌入 x
  • V_j \in \mathbb R^d 是连接最后一个隐藏层和输出 j 的权重向量。我们称之为 Item 嵌入 j

注:自 log 是一个递增函数,Item j 的最高概率 \hat p_j 是点积 \langle \psi(x) , V_j\rangle 的最大值。因此,点积可以解释为该嵌入空间中的相似性度量。

图 5. Item 的嵌入 V_j \in \mathbb R^d


2.DNN 和矩阵分解

在 softmax 模型和矩阵分解模型中,系统会为每一个 Item j 学习一个嵌入向量 V_j,从而得到所谓的 Item 嵌入矩阵 V \in \mathbb R^{n \times d}矩阵分解现在是 softmax 层的权重矩阵。

然而,User(Query) 嵌入是不同的,我们不是为每一个 User i 学习一个嵌入 U_{i},而是系统学习从 User 特征 x 到嵌入 \psi(x) \in \mathbb R^d 的映射。因此,可以将此 DNN 模型视为矩阵分解的推广,其中用非线性函数 \psi(\cdot) 替换 User(Query)嵌入。

2.1 可以使用 Item 特性吗?

可以将同样的想法应用到 Item 方面吗?也就是说,模型是否可以学习将 Item 特征映射到嵌入的非线性函数,而不是为每个 Item 学习一个嵌入?是的。为此,请使用 【双塔神经网络】,它由两个神经网络组成:

  • 一个神经网络映射 Query 特征(本质就是 User 特征) x_{\text{query}} 到嵌入 \psi(x_{\text{query}}) \in \mathbb R^d
  • 一个神经网络映射 Item 特征 x_{\text{item}} 到嵌入 \phi(x_{\text{item}}) \in \mathbb R^d

模型的输出可以定义为点积 \langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle。请注意,这不再是 softmax 模型。新模型为每一个 (x_{\text{query}}, x_{\text{item}}) 对预测一个值,而不是为每个 Query 预测一个概率向量 x_{\text{query}}


3.Softmax 训练

上面解释了如何将 softmax 层合并到推荐系统的深度神经网络中。本节将详细介绍该系统的训练数据。

3.1 训练数据

softmax 训练数据由 Query(User)特征 x 以及与用户有交互的 Item 向量(表示为概率分布 p,在下图中用蓝色标记)。模型的变量是不同层的权重,在下图中标记为橙色。该模型通常使用随机梯度下降法(包括其变体)进行训练。

3.2 负采样

由于损失函数比较两个概率向量 p, \hat p(x) \in \mathbb R^n(分别代表观测值和模型预测值),如果物料库的大小 n 过大,计算损失的梯度(对于单个查询 x)可能会非常昂贵。

我们可以设置一个系统来仅计算正 Item(即在实际观测向量中处于活动状态的 Item)的梯度。但是,如果系统仅在正对(正向对)上进行训练,则模型可能会出现折叠,如下所述。

折叠示意图

在上图中,假设每种颜色代表不同类别的 Query 和 Item。每个 Query(表示为正方形)仅与相同颜色的 Item(表示为圆形)交互。例如,将 YouTube 中的每个类别视为不同的语言,通常,用户主要会与某种给定语言(母语)的视频进行交互。

该模型可以学习如何放置给定颜色的 Query/Item 嵌入(正确捕获该颜色内的相似性),但来自不同颜色的嵌入可能会偶然出现在嵌入空间的同一区域中。这种现象称为折叠】,可能会导致虚假推荐:在查询时,模型可能会错误地预测来自不同组的 Item 的高分。

负面示例——是指标记为与给定查询 “不相关” 的 Item。在训练过程中向模型展示反例可以让模型知道不同组的嵌入应该相互远离。

我们可以使用负采样,而不是使用所有 Item 来计算梯度(这可能太昂贵)或仅使用正项(这使得模型容易折叠)。更准确地说,可以使用以下 Item 计算近似梯度:

  • 所有正 item(出现在目标标签中的 Item,实际观察到的 Item)
  • 负 Item 采样(j in 1,...n),仅采样,而非全部

对负样本进行采样有不同的策略:

  • 统一采样
  • 为得分较高的 Item j 赋予较高的概率 \psi(x) . V_j。直观上,它们是对梯度贡献最大的示例(examples),这些示例通常被称为“硬否定”。


4.矩阵分解与softmax

DNN 模型解决了矩阵分解的许多局限性,但训练和查询的成本通常更高。下表总结了两种模型之间的一些重要差异。

矩阵分解Softmax深度神经网络
查询特征不容易加入可以包含在内
冷启动无法轻松处理词汇外的 Query(User) 或 Item。可以使用一些启发式方法轻松处理新 Query
折叠式的通过调整 WALS 中未观察到的重量,可以轻松减少折叠。容易折叠。需要使用负采样或重力等技术。
培训可扩展性可以轻松扩展到非常大的物料库(可能有数亿个 Item 或更多),但前提是输入矩阵稀疏。很难扩展到非常大的物料库。可以使用一些技术,例如散列、负采样等。
服务可扩展性嵌入 U、V 是静态的,可以预先计算和存储一组候选嵌入。项目嵌入 V 是静态的并且可以存储。

查询嵌入通常需要在查询时计算,这使得模型的服务成本更高。

总之:

  • 对于大型物料库,矩阵分解通常是更好的选择。它更容易扩展,查询成本更低,并且不易折叠。
  • DNN 模型可以更好地捕捉个性化偏好,但训练难度更大,查询成本更高。DNN 模型在评分方面优于矩阵分解,因为 DNN 模型可以使用更多特征来更好地捕获相关性。此外,DNN 模型折叠通常是可以接受的,因为我们主要关心的是对假定相关的预过滤候选集进行排名。


5.参考文献

1-https://developers.google.cn/machine-learning/recommendation/dnn/training

2-https://developers.google.cn/machine-learning/recommendation/dnn/softmax

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

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

相关文章

SQL-每日一题【596.超过五名学生的课】

题目 表: Courses 编写一个SQL查询来报告 至少有5个学生 的所有班级。 以 任意顺序 返回结果表。 查询结果格式如下所示。 示例 1: 解题思路 1.题目要求查询至少有五个学生所在的班级,我们就可以先用group by class 对班级先分一下组。 2。分好组后,我…

《Communication-Efficient Learning of Deep Networks from Decentralized Data》

Communication-Efficient Learning of Deep Networks from Decentralized Data 这篇文章算是联邦学习的开山之作吧,提出了FedAvg的算法,文中对比了不同客户端本地训练次数,客户端训练数据集划分的影响。 0. Abstract 现代移动设备可以获取大…

永久区和元空间的区别

一文搞懂JVM之 方法区、永久代、元空间三者的区别 - 知乎 元空间和永久代的区别-腾讯云开发者社区-腾讯云 方法区和永久区/元空间之间的关系 - 简书 方法区(Method Area),是JVM规范中提出的一个(概念),用于存储类信息、常量池、静态变量、JIT编译后的代码等。 Th…

“周杰伦概念股”IPO,巨星传奇市值42亿港元

“周杰伦概念股”巨星传奇,一波三折终上市。 今日(7月13日),巨星传奇集团有限公司(下称“巨星传奇”,06683.HK)正式挂牌港交所。 此前,巨星传奇于2021年9月、2022年3月和2022年10月…

【广州华锐互动】发动机零件拆装VR虚拟学习平台

随着科技的飞速发展,虚拟现实(VR)技术正在各行各业中发挥越来越重要的作用。在工业教育领域,发动机零件拆装VR虚拟学习平台为学生提供了一种全新的学习方式,使他们能够在安全、低成本的环境中进行实践操作,从而提高技能&#xff0…

Redis常用数据结构及原理

Redis常用六种数据类型 Redis 支持多种数据类型,每种类型都具有不同的特性和用途。以下是 Redis 中常见的数据类型: 一、字符串(String) 1、基本介绍 字符串是最基本的数据类型,可以存储任意类型的数据&#xff0c…

Simulink仿真模块 - Repeating Sequence

Repeating Sequence:生成任意形状的周期信号 在仿真库中的位置为:Simulink / Sources 模型为: 说明 Repeating Sequence 模块可以输出波形由 Time values 和 Output values 参数指定的周期性标量信号。Time values 参数指定输出时间向量。Output values 参数指定输出时间对应…

Windows 组策略 部署打印机

一、服务端 1、打印机管理:添加打印机 2、选择打印机 3、第一次安装,选择这个 4、下载驱动,从磁盘安装 5、已成功安装 6、选中打印机右击属性:列出目录 7、创建一个组策略 8、组策略设置 用户设置 → 首选项 → 控制面板 → 打印…

12_基于 I2C 协议的 EEPROM 驱动控制

12_基于 I2C 协议的 EEPROM 驱动控制 1. I2C协议1.1 I2C通信协议1.2 I2C物理层1.3 I2C协议层1.3.1 单字节数据的写入1.3.2 页写数据写入1.3.3 随机读取操作1.3.4 顺序读取操作 2. EEPROM2.1 板载 EEPROM 实物图2.2 板载 EEPROM 部分原理图 3. 实验目标4. 模块框图4.1 顶层模块4…

进程、线程、调度基础知识

程序是一些保存在磁盘上的指令的有序集合,是静态的,说白了就是一堆有逻辑的代码。包装成一个软件。 一、进程 是程序一次执行的过程。每个进程有自己独立的内存空间,一个进程有多个线程。 并行和并发对比: 字面意思而言&#xf…

Java 反射四大核心类:Class、Constructor、Method、 Filed

目录 反射可以做到的事情 反射重要的4个类 Class类 Class类的类图 Class类常用方法 获取Class类对象4种方式 基本数据类型的Class类对象和包装类的Class类对象 Field类 Method类 Constructor类 反射的简单使用 反射可以做到的事情 在不修改源码的情况下,…

Redis主从复制环境部署

文章目录 Redis主从复制:原理:全同步过程:增量同步过程:主从复制配置:关闭防火墙和Selinux(三台都要)修改bindIP:node3node2master 以138为主,140,141为从检查…

redis 跳跃表、字典、压缩列表、快速列表

redis 跳跃表、字典、压缩列表、快速列表 1. 跳跃表 ​ 跳跃表是有序集合的底层实现。就是将有序集合的部分节点进行分层。每一层都是有序集合,并且层次越高,节点数量就越少。最底层的包含所有节点数据。典型的空间换时间。 ​ Redis中的跳跃表&#x…

使用 FreeCAD 软件打开 stp、dwg、dxf 等模型文件并测量零件尺寸

1、下载安装 FreeCAD 软件 https://www.freecad.org/downloads.php 2、打开 stp 等模型文件,选择 framework 查看方式(只显示点、线) 3、切换到 Part 菜单栏 4、打开 Measure Linear 工具(测量线性距离) 5、选择两个…

初探KVM虚拟化技术:新手指南

首先了解一下虚拟化的概念 虚拟化是指对资源的逻辑抽象、隔离、再分配、管理的一个过程,通常对虚拟化的理解有广义狭义之分。广义包括平台虚拟化、应用程序虚拟化、存储虚拟化、网络虚拟化、设备虚拟化等等。狭义的虚拟化专门指计算机上模拟运行多个操作系统平台。…

安卓设备监听全部输入信号

前言: 最近团队收到一个产品需求,需要监听安卓设备上用户是否有输入行为,以免定制推荐的时候打搅到用户。这里指的是设备上所有应用的输入行为,而不是单指某一个应用。 这个需求还是蛮有挑战性的,需要涉及到很多FW层…

Java设计模式之模板模式

1. 模板模式介绍 1、模板模式即模板方法模式自定义了一个操作中的算法骨架,而将步骤延迟到子类中,使得子类可以不改变一个算法的结构,可以自定义该算法的某些特定步骤; 2、父类中提取了公共的部分代码,便于代码复用&am…

PyTorch深度学习实战(5)——计算机视觉基础

PyTorch深度学习实战(5)——计算机视觉基础 0. 前言1. 图像表示2. 将图像转换为结构化数组2.1 灰度图像表示2.2 彩色图像表示 3 利用神经网络进行图像分析的优势小结系列链接 0. 前言 计算机视觉是指通过计算机系统对图像和视频进行处理和分析&#xff…

Scala(二)

第2章 变量和数据类型 2.1 注释 Scala注释使用和Java完全一样。 注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。 1)基本语法 (1)单行注释:// (2&#xff0…

高时空分辨率、高精度一体化预测技术的风、光、水自动化预测技术的应用

第一章 预测平台讲解及安装 一、高精度气象预测基础理论介绍 综合气象观测数值模拟模式; 全球预测模式、中尺度数值模式; 二、自动化预测平台介绍 Linux系统 Crontab定时任务执行机制 Bash脚本自动化编程 硬件需求简介 软件系统安装 …