[推荐系统] 1. 深度学习与推荐系统

文章目录

1 推荐系统

1.1 推荐系统的作用和意义

用户角度

推荐系统用于在”信息过载”的情况下,使用户高效获取感兴趣的信息。用户需求层面讲,推荐系统使在用户需求模糊的情况下进行信息的过滤。

公司角度

推荐系统解决产品能够最大限度地吸引用户、留存用户、增加用户黏性、提高用户转化率地问题,从而使公司商业目标连续增长。对于公司而言,需要达到商业目标、增加公司收益。

1.2 推荐系统架构

推荐系统解决的用户痛点:

用户如何在”信息过载”的情况下高效的获取有用的信息

  • 物品信息:商品信息、视频信息、新闻信息
  • 用户信息:与”人”相关的信息,历史行为、人口属性、关系网络等
  • 场景信息(上下文信息):具体推荐场景中,用户的最终的选择受时间、地点、用户的状态等一系列环境影响

1.2.1 推荐系统的逻辑架构

形式化定义推荐系统解决的问题:

对于用户U U U,在特定场景C C C下,针对海量信息,构建函数f ( U , I , C ) f(U,I,C)f (U ,I ,C ),来预测用户对特定候选物品I I I的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题

[推荐系统] 1. 深度学习与推荐系统

; 1.2.2 推荐系统的技术架构

实际工程中着重解决的问题

  • 数据和信息相关的问题 “用户信息”、”物品信息”、”场景信息”是什么?如何存储、更新、处理?
  • 推荐系统算法和模型相关的问题 推荐模型如何训练、如何预测、如何达到更优的推荐效果?

“数据和信息”部分发展为推荐系统中融合了数据离线批处理、实时流处理的数据流框架;”算法和模型”细化为推荐系统中集 训练、评估、部署、线上推断为一体的模型框架。

推荐系统的数据部分

主要负责”用户信息”、”物品信息”、”场景信息”的信息收集与处理。将负责数据收集与处理的三种平台按照实时性的强弱排序,依次为客户端及服务端实时数据处理、流处理平台准实时数据处理、大数据平台离线数据处理。在实时性由强到弱递减时,三种平台的海量数据处理能力由弱到强。

在得到原始的数据信息后,推荐系统的数据处理系统会将原始数据加工,加工后的数据出口有三个:

  1. 生成推荐模型所需的样本数据,用于训练和评估
  2. 生成推荐模型服务所需的特征,用于推荐系统的线上推断
  3. 生成系统监控、商业智能系统所需的统计型数据

推荐系统的模型部分

模型部分是推荐系统的主体,一般由”召回层”、”排序层”、”补充策略与算法层”构成

  1. 召回层:一般利用高效的召回规则、算法或简单的模型,快速从海量的候选集中召回用户可能感兴趣的物品
  2. 排序层:利用排序模型对初筛的候选集进行精排
  3. 补充策略与算法层:在将推荐列表返回用户之前,为兼顾结果的”多样性”、”流行度”、”新鲜度”等指标,结合一些补充的策略和算法对推荐列表进行调整,最终形成用户可见的推荐列表

模型服务:从推荐模型接收到所有候选物品集,到最后产生推荐列表的过程

在线环境进行模型服务之前,需要模型训练确定模型结构、结构中不同参数权重的具体值,以及模型相关算法和策略中的参数取值。

模型的训练方式根据模型训练环境不同:分为”离线训练”和”在线更新”两部分。

  1. 离线训练:利用全量样本和特征,使模型逼近全局最优点
  2. 在线更新:准实时”消化”新的数据样本,更快反映新的数据变化趋势,满足模型实时性的需求

[推荐系统] 1. 深度学习与推荐系统

2 前置知识

2.1 传统推荐模型的演化

  1. 协同过滤算法族 从物品相似度和用户相似度角度出发,协同过滤衍生出物品协同过滤 ItemCF和用户协同过滤 UserCF,为使协同过滤更好处理稀疏共现矩阵问题、增强模型的泛化能力,从协同过滤衍生除矩阵分解模型 MF,并发展除矩阵分解的各分支模型
  2. 逻辑回归模型族 利用和融合更多用户、物品及上下文特征。从 LR模型衍生出增强非线性能力的大规模分片线性模型 LS-PLM,由 LR发展出来的 FM 模型,以及与多种不同模型配合使用后的组合模型等
  3. 因子分解机模型族 因子分解机在传统逻辑回归模型的基础上,加入二阶部分,使模型具备进行特征组合的能力。在因子分解机基础上发展的域感知因子分解机 FFM通过加入特征域的概念,进一步加强因子分解机特征交叉的能力。
  4. 组合模型 将不同模型组合使用是构建推荐模型的常用方法,组合模型体现出的特征工程模型化思想成为深度学习推荐模型的因子和核心思想之一。

[推荐系统] 1. 深度学习与推荐系统

; 2.2 协同过滤

2.2.1 概述

协同过滤

协调大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐的过程。

[推荐系统] 1. 深度学习与推荐系统

; 2.2.2 用户相似度计算

将带有标识的有向图转换成共现矩阵,该矩阵中的行向量代表相应用户的用户向量,用户i i i和用户j j j的相似度转换为处理用户向量i i i和用户向量j j j之间的相似度。

余弦相似度

余弦相似度衡量向量i i i和j j j之间的向量夹角大小,夹角越小,余弦相似度越大,两个用户越相似。
s i m ( i , j ) = c o s ( i , j ) = i ⋅ j ∣ ∣ i ∣ ∣ ⋅ ∣ ∣ j ∣ ∣ sim(i,j)=cos(i,j)=\frac{i \cdot{j}}{||i||\cdot{||j||}}s im (i ,j )=cos (i ,j )=∣∣i ∣∣⋅∣∣j ∣∣i ⋅j ​
皮尔逊相关系数

皮尔逊系数通过使用用户平均分对各独立评分进行修正,减少用户评分偏置的影响
s i m ( i , j ) = ∑ p ∈ P ( R i , p − R ‾ i ) ( R j , p − R ‾ j ) ∑ p ∈ P ( R i , p − R ‾ i ) 2 ∑ p ∈ P ( R j . p − R ‾ j ) 2 sim(i,j)=\frac{\sum_{p\in P}{(R_{i,p}-\overline{R}i)(R{j,p}-\overline{R}j)}}{\sqrt{\sum{p\in P}{(R_{i,p}-\overline{R}i)^2}}\sqrt{\sum{p\in P}{(R_{j.p}-\overline{R}j)^2}}}s im (i ,j )=∑p ∈P ​(R i ,p ​−R i ​)2 ​∑p ∈P ​(R j .p ​−R j ​)2 ​∑p ∈P ​(R i ,p ​−R i ​)(R j ,p ​−R j ​)​
其中,R i , p R
{i,p}R i ,p ​代表用户i i i对物品p p p的 评分。R ‾ i \overline{R}_i R i ​代表用户i i i对所有物品的 平均评分,P P P代表所有物品的集合。

2.2.3 最终结果排序

在获得Top n相似用户后,生成的最终推荐结果过程如下。假设”目标用户与其相似用户的喜好相似的”,可以根据相似用户的已有评价对目标用户的偏好进行预测。

常见方式是利用 用户相似度和相似用户的评价的加权平均获得目标用户的评价预测。
R u , p = ∑ s ∈ S ( w u , s ⋅ R s , p ) ∑ s ∈ S w u , s R_{u,p}=\frac{\sum_{s\in S}{(w_{u,s}\cdot{R_{s,p}})}}{\sum_{s\in S}{w_{u,s}}}R u ,p ​=∑s ∈S ​w u ,s ​∑s ∈S ​(w u ,s ​⋅R s ,p ​)​
其中,权重w u , s w_{u,s}w u ,s ​是用户u u u和用户s s s的相似度,R s , p R_{s,p}R s ,p ​是用户s s s对物品p p p的评分。

在获得用户u u u对不同物品的评价预测后,最终的推荐列表根据预测得分进行排序得到。至此,完成协同过滤的全部过程。

以上算法是基于用户近似度进行推荐,称为基于用户的协同过滤( UserCF

UserCF存在的缺点

  • 互联网应用场景下,用户数远大于产品数,UserCF需要维护用户相似度矩阵来找出Top n 用户。用户数的增长导致用户相似度矩阵的存储空间以n 2 n^2 n 2的速度增长,存储开销较大
  • 用户的历史数据量往往较为稀疏,购买次数较少的用户,其相似用户的准确度极低

2.2.4 ItemCF

基于物品平均分方式,减少物品评分偏置对结果的影响

s i m ( i , j ) = ∑ p ∈ P ( R i , p − R ‾ p ) ( R j , p − R ‾ p ) ∑ p ∈ P ( R i , p − R ‾ p ) 2 ∑ p ∈ P ( R j . p − R ‾ p ) 2 sim(i,j)=\frac{\sum_{p\in P}{(R_{i,p}-\overline{R}p)(R{j,p}-\overline{R}p)}}{\sqrt{\sum{p\in P}{(R_{i,p}-\overline{R}p)^2}}\sqrt{\sum{p\in P}{(R_{j.p}-\overline{R}_p)^2}}}s im (i ,j )=∑p ∈P ​(R i ,p ​−R p ​)2 ​∑p ∈P ​(R j .p ​−R p ​)2 ​∑p ∈P ​(R i ,p ​−R p ​)(R j ,p ​−R p ​)​

其中,R i , p R_{i,p}R i ,p ​代表用户i i i对物品p p p的 评分。R ‾ p \overline{R}_p R p ​代表物品p p p得到所有评分的 平均评分,P P P代表所有物品的集合。

ItemCF是基于物品相似度进行推荐的协同过滤算法。通过计算共现矩阵中 物品列向量的相似度得到物品之间的相似矩阵,再找到用户的历史正反馈物品的相似物品进一步排序和推荐

ItemCF算法流程

  1. 基于历史数据,构建以用户(假设用户总数为m m m)为行坐标,物品(物品总数为n n n)为列坐标的m × n m×n m ×n维的 共现矩阵
  2. 计算共现矩阵两两列向量间的相似性,构建n × n n×n n ×n维的 物品相似度矩阵
  3. 获得用户历史行为数据中的 正反馈物品列表
  4. 利用物品相似度矩阵,针对目标历史行为中的正反馈物品,找出相似的Topk个物品,组成 物品相似集合
  5. 对相似物品集合中的物品,利用相似度分值 进行排序,生成最终的推荐列表(如果物品与多个用户行为历史中的正反馈物品相似,那么该物品最终的相似度应该是多个相似度的累加,如R u , p = ∑ h ∈ H ( w p , h ⋅ R u , h ) R_{u,p}=\sum_{h\in H}{(w_{p,h}\cdot{R_{u,h}})}R u ,p ​=∑h ∈H ​(w p ,h ​⋅R u ,h ​),其中H H H是目标用户的正反馈物品集合,w p , h w_{p,h}w p ,h ​是物品p p p与物品h h h的物品相似度,R u , h R_{u,h}R u ,h ​是用户u u u对物品h h h的已有评分)

2.2.5 UserCF和ItemCF的应用场景

  • UserCF基于用户相似度推荐,使其具备更强的社交特性,非常适合用于新闻推荐场景
  • ItemCF基于物品相似度推荐,使其适用于兴趣变化较为稳定的应用

2.2.6 协同过滤的下一步发展

协同过滤不具备较强的泛化能力,无法将两个物品相似这一信息推广到其他物品的相似性计算上

协同过滤缺陷

  • 推荐结果的头部效应较为明显,容易跟大量物品产生相似性,处理稀疏向量能力弱,尾部的物品由于特征向量稀疏,很少与其他物品产生相似性,导致很少被推荐。
  • 另外,协同过滤仅利用用户和物品的交互信息,无法有效引入用户年龄、性别、商品描述、商品分类、当前时间等一系列用户特征、物品特征和上下文特征,造成有效信息的遗漏。

矩阵分解技术

为了解决上述问题,同时增加模型的泛化能力,提出矩阵分解技术,即在协同过滤共现矩阵的基础上,使用更稠密的隐向量表示用户和物品,挖掘用户和物品的隐含兴趣和隐含特征,一定程度上弥补了协同过滤你想处理稀疏矩阵能力不足的问题。

2.3 矩阵分解算法

2.3.1 矩阵分解算法原理

[推荐系统] 1. 深度学习与推荐系统

对于图 a,协同过滤算法基于用户观看历史,找到与目标用户看过同样视频的相似用户,然后找到这些相似用户喜欢看的其他视频,推荐给目标用户

对于图 b,矩阵分解算法期望为每一个用户和视频生成一个隐向量,将用户和视频定位到隐向量的表示空间上,距离相近的用户和视频表明兴趣特点相近,在推荐过程中,就把距离相近的视频推给目标用户

用隐向量表示用户和物品并保证相似的用户及用户可能喜欢的物品距离相近,找出该隐向量

在”矩阵分解”的算法框架下, 用户和物品的隐向量是通过分解协同过滤生成的共现矩阵得到的

[推荐系统] 1. 深度学习与推荐系统

矩阵分解算法将m × n m×n m ×n维的共现矩阵R R R分解为 m × k m×k m ×k 维的用户矩阵U U U和 k × n k×n k ×n维的物品矩阵V V V乘积形式。其中m m m是用户数量,n n n是物品数量,k k k是隐向量的维度。k k k的取值越小,隐向量包含的信息越少,模型的泛化程度越高;k k k的取值越大,隐向量包含信息越多,模型的泛化程度降低。

基于用户矩阵U U U和物品矩阵V V V,用户u u u对物品i i i的预估评分表示为r ^ u i = q i T p u \hat{r}_{ui}=q_i^Tp_u r ^u i ​=q i T ​p u ​,其中p u p_u p u ​是用户u u u在用户矩阵U U U中的对应行向量,q i T q_i^T q i T ​是物品i i i在物品矩阵V V V中对应列向量

; 2.3.2 矩阵分解求解过程

矩阵分解方式主要有 特征值分解、奇异值分解、梯度下降

[奇异值分解介绍在机器学习系列,自行食用即可]

奇异值分解的描述

假设矩阵M M M是一个m × n m×n m ×n的矩阵,则一定存在一个分解M = U Σ V T M=U\Sigma V^T M =U ΣV T,其中U U U是m × m m×m m ×m的正交矩阵,V V V是n × n n×n n ×n的正交矩阵,Σ \Sigma Σ是m × n m×n m ×n的对角阵。

取对角阵Σ \Sigma Σ中较大的k k k个元素作为隐含特征,删除Σ \Sigma Σ的其他维度及U U U和V V V中对应的维度,矩阵M M M被分解为M ≈ U x × k Σ k × k V k × n T M≈U_{x×k}\Sigma_{k×k}V_{k×n}^T M ≈U x ×k ​Σk ×k ​V k ×n T ​,至此完成隐向量维度维k k k的矩阵分解

奇异值分解存在的缺陷(互联网场景难以使用奇异值分解解决矩阵分解问题)

  • 奇异值分解 要求原始的共现矩阵是稠密的(互联网场景下的大部分用户的历史非常少,用户-物品的共现矩阵非常稀疏,如果应用奇异值分解,就必须对缺失的元素值进行填充)
  • 传统奇异值分解的计算复杂度达到O ( m n 2 ) O(mn^2)O (m n 2 )的级别(互联网场景下,用户数量和商品数量海量级别)

选择梯度下降法解决矩阵分解问题

  • 特征值分解仅作用于方阵
  • 奇异值分解不适合互联网应用场景

求解矩阵分解的目标函数目的是让 原始评分r u i r_{ui}r u i ​与 用户向量和物品向量之积q i T p u q_i^Tp_u q i T ​p u ​差尽量小,这样才能最大限度保存共现矩阵的原始信息。
O b j e c t F u n c t i o n min ⁡ q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r u i − q i T p u ) 2 Object\quad Function\quad\min_{q^,p^}\sum_{(u,i)\in K}{(r_{ui}-q_i^Tp_u)^2}O bj ec t F u n c t i o n q ∗,p ∗min ​(u ,i )∈K ∑​(r u i ​−q i T ​p u ​)2
其中K K K是所有用户评分样本的集合。为了减少过拟合现象,对其进行正则化。
O b j e c t F u n c t i o n min ⁡ q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r u i − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 2 ) Object\quad Function\quad\min_{q^,p^}\sum_{(u,i)\in K}{(r_{ui}-q_i^Tp_u)^2}+\lambda(||q_i||^2+||p_u||^2)O bj ec t F u n c t i o n q ∗,p ∗min ​(u ,i )∈K ∑​(r u i ​−q i T ​p u ​)2 +λ(∣∣q i ​∣∣2 +∣∣p u ​∣∣2 )

梯度下降求解目标函数

1.确定目标函数
min ⁡ q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r u i − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 2 ) \min_{q^,p^}\sum_{(u,i)\in K}{(r_{ui}-q_i^Tp_u)^2}+\lambda(||q_i||^2+||p_u||^2)q ∗,p ∗min ​(u ,i )∈K ∑​(r u i ​−q i T ​p u ​)2 +λ(∣∣q i ​∣∣2 +∣∣p u ​∣∣2 )

2.对目标函数求偏导,求取梯度下降的方向和幅度
对 q i 求偏导,得 2 ( r u i − q i T p u ) p u − 2 λ q i 对 p u 求偏导,得 2 ( r u i − q i T p u ) q i − 2 λ p u 对q_i求偏导,得\quad2(r_{ui}-q_i^Tp_u)p_u-2\lambda q_i\ 对p_u求偏导,得\quad2(r_{ui}-q_i^Tp_u)q_i-2\lambda p_u 对q i ​求偏导,得2 (r u i ​−q i T ​p u ​)p u ​−2 λq i ​对p u ​求偏导,得2 (r u i ​−q i T ​p u ​)q i ​−2 λp u ​
3.利用求导结果,沿梯度的反方向更新参数
q i ← q i − γ ( ( r u i − q i T p u ) p u − λ q i ) p u ← p u − γ ( ( r u i − q i T p u ) q i − λ p u ) 其中, γ 为学习率 q_i\leftarrow q_i-γ((r_{ui}-q_i^Tp_u)p_u-\lambda q_i)\ p_u\leftarrow p_u-γ((r_{ui}-q_i^Tp_u)q_i-\lambda p_u)\ 其中,γ为学习率q i ​←q i ​−γ((r u i ​−q i T ​p u ​)p u ​−λq i ​)p u ​←p u ​−γ((r u i ​−q i T ​p u ​)q i ​−λp u ​)其中,γ为学习率
4.当迭代次数超过上限n n n或损失低于阈值θ \theta θ时,结束训练,否则循环第3步

在完成矩阵分解过程后,即可得到所有用户与物品的 隐向量。在对某用户进行推荐时,可利用该用户的隐向量与所有物品的隐向量进行逐一的 内积运算,得出该用户对所有物品的 评分预测,再依次进行 排序,得到最终的推荐列表。

矩阵分解具有更强的泛化能力的解释

在矩阵分解算法中,由于隐向量的存在,使任意的用户和物品之间都可以得到 预测分值。隐向量的生成过程其实是对共现矩阵进行全局拟合的过程,因此隐向量是利用全局信息生成的,具有更强的泛化能力,而协同过滤只能利用用户和物品自己的信息进行相似度计算,因此不具备利用全局信息的能力

2.3.3 消除用户和物品打分的偏差

由于不同用户的打分体系不同,不同物品的衡量标准也有所区别,为了消除用户和物品打分的偏差,常用做法是 矩阵分解时加入用户和物品的偏差变量
r u i = μ + b i + b u + q i T p u r_{ui}=μ+b_i+b_u+q_i^Tp_u r u i ​=μ+b i ​+b u ​+q i T ​p u ​
其中μ μμ是全局偏差常数,b i b_i b i ​是物品偏差系数,可使用物品 i i i 收到的所有评分的均值,b u b_u b u ​是用户偏差系数,可使用用户μ μμ给出的所有评分的均值

矩阵分解的目标函数优化如下:
min ⁡ q ∗ , p ∗ , b ∗ ∑ ( u , i ) ∈ K ( r u i − μ − b u − b i − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 2 + b u 2 + b i 2 ) \min_{q^,p^,b^*}\sum_{(u,i)\in K}{(r_{ui}-μ-b_u-b_i-q_i^Tp_u)^2}+\lambda(||q_i||^2+||p_u||^2+b_u^2+b_i^2)q ∗,p ∗,b ∗min ​(u ,i )∈K ∑​(r u i ​−μ−b u ​−b i ​−q i T ​p u ​)2 +λ(∣∣q i ​∣∣2 +∣∣p u ​∣∣2 +b u 2 ​+b i 2 ​)
加入用户和物品的打分偏差项后,矩阵分解得到的隐向量更能反映不同用户对不同物品的”真实”态度差异,即容易捕捉评价数据中有价值的信息,进而避免推荐结果有偏

2.3.4 矩阵分解的优点和局限性

优点

  • 泛化能力强 一定程度解决数据稀疏的问题
  • 空间复杂度低 只需要存储用户和物品隐向量,无需存储协同过滤模型服务阶段所需的用户/物品相似性矩阵
  • 更好的扩展性和灵活性 矩阵分解最终产物是用户和物品隐向量,其分解结果便于与其他特征进行组合和拼接,便于与深度学习网络结合

局限性

  • 不方便加入用户、物品和上下文相关的特征
  • 在缺乏用户历史行为时,无法进行有效推荐

解决

逻辑回归模型和因子分解机模型可以融合多特征,弥补其不足

2.4 逻辑回归

相较协同过滤模型仅利用用户与物品的相互行为信息进行推荐而言,逻辑回归模型综合利用用户、物品、上下文多特征进行”全面”推荐,相较协同过滤和矩阵分解利用用户和物品的相似度矩阵进行推荐而言,逻辑回归将推荐系统归类为分类问题,通过预测正样本的概率对物品进行排序(这里正样本表示用户对物品的正反馈行为),因此逻辑回归模型将推荐问题转换为点击率 CTR预估问题。

2.4.1 基于逻辑回归的推荐

  1. 将用户”年龄、性别、物品属性、物品描述、当前时间、当前地点”等多特征转换成数值型特征向量
  2. 确定逻辑回归模型的优化目标(如CTR),利用已有的样本数据训练逻辑回归模型,确定模型参数
  3. 在模型服务阶段,将特征向量输入逻辑回归模型,得到用户”点击”物品的概率
  4. 利用CTR对所有候选物品进行排序,生成推荐列表

重点

基于逻辑回归模型的推荐流程的重点在于样本特征向量和在线推断

2.4.2 逻辑回归的数学表达

  1. 将特征向量x = ( x 1 , x 2 , . . . , x n ) T x=(x_1,x_2,…,x_n)^T x =(x 1 ​,x 2 ​,…,x n ​)T作为模型的输入
  2. 通过为各特征向量赋予相应的权重( w 1 , w 2 , . . . , w n + 1 ) (w_1,w_2,…,w_n+1)(w 1 ​,w 2 ​,…,w n ​+1 ),来表示各特征的重要性差异,将各特征进行 加权求和,得到x T w x^Tw x T w
  3. 将x T w x^Tw x T w输入s i g m o i d sigmoid s i g m o i d函数,映射到[ 0 , 1 ] [0,1][0 ,1 ]区间,得到点击率

[推荐系统] 1. 深度学习与推荐系统

整个训练过程的逻辑回归模型函数表示
f ( x ) = 1 1 + e − ( w ⋅ x + b ) f(x)=\frac{1}{1+e^{-(w\cdot{x}+b)}}f (x )=1 +e −(w ⋅x +b )1 ​

; 2.4.3 逻辑回归的模型训练

1.确定目标函数

假设逻辑回归数学表达为f w ( x ) f_w(x)f w ​(x ),对于输入样本x x x,预测结果为正样本(类别1)和负样本(类别0)的概率如下:
{ P ( y = 1 ∣ x ; w ) = f w ( x ) , P ( y = 0 ∣ x ; w ) = 1 − f w ( x ) ( 式 2 − 1 ) \begin{cases} P(y=1|x;w)=f_w(x),\ P(y=0|x;w)=1-f_w(x) \quad\quad(式2-1) \end{cases}{P (y =1∣x ;w )=f w ​(x ),P (y =0∣x ;w )=1 −f w ​(x )(式2 −1 )​
式2-1优化成 式2-2形式:
P ( y ∣ x ; w ) = ( f w ( x ) ) y ( 1 − f w ( x ) ) ( 1 − y ) ( 式 2 − 2 ) P(y|x;w)=(f_w(x))^y(1-f_w(x))^{(1-y)}\quad\quad(式2-2)P (y ∣x ;w )=(f w ​(x ))y (1 −f w ​(x ))(1 −y )(式2 −2 )
根据极大似然估计法写出逻辑回归目标函数,如 式2-3
L ( w ) = ∏ i = 1 m P ( y ∣ x ; w ) ( 式 2 − 3 ) L(w)=\prod^m_{i=1}P(y|x;w) \quad\quad(式2-3)L (w )=i =1 ∏m ​P (y ∣x ;w )(式2 −3 )
继续优化,将求极大值问题转换成求极小值问题,最终目标函数见式 2-4
J ( w ) = − 1 m l ( w ) = − 1 m l o g L ( w ) = − 1 m ( ∑ i = 1 m ( y i l o g f w ( x i ) + ( 1 − y i ) l o g ( 1 − f w ( x i ) ) ) ) ( 式 2 − 4 ) J(w)=-\frac{1}{m}l(w)=-\frac{1}{m}logL(w)=-\frac{1}{m}(\sum_{i=1}^{m}(y^ilogf_w(x^i)+(1-y^i)log(1-f_w(x^i))))\quad\quad (式2-4)J (w )=−m 1 ​l (w )=−m 1 ​l o gL (w )=−m 1 ​(i =1 ∑m ​(y i l o g f w ​(x i )+(1 −y i )l o g (1 −f w ​(x i ))))(式2 −4 )

得到目标函数后,对 每个参数求偏导,获取梯度方向,对参数w j w_j w j ​求偏导:
∂ ∂ w j J ( w ) = 1 m ∑ i = 1 m ( f w ( x i ) − y i ) x j i \frac{\partial{}}{\partial{w_j}}J(w)=\frac{1}{m}\sum_{i=1}^{m}{(f_w(x^i)-y^i)}x_j^i ∂w j ​∂​J (w )=m 1 ​i =1 ∑m ​(f w ​(x i )−y i )x j i ​
给出模型参数更新公式:
w j ← w j − γ 1 m ( f w ( x i ) − y i ) x j i w_j\leftarrow w_j-γ\frac{1}{m}(f_w(x^i)-y^i)x_j^i w j ​←w j ​−γm 1 ​(f w ​(x i )−y i )x j i ​
2.4.4 逻辑回归模型的评价

优点

  1. 数学含义:CTR模型的因变量服从伯努利分布,用户点击广告是经典的掷偏心硬币问题
  2. 可解释性:逻辑回归模型中对各种特征加权求和,综合不同特征对CTR影响
  3. 工程化:易于并行化、模型简单、训练开销小

缺点

表达能力弱,无法进行特征交叉、特征筛选等操作,会造成信息损失

解决

逻辑回归模型的不足促使因子分解机等高维复杂模型诞生,如今的深度学习背景,多层感知机完全取代逻辑回归模型

2.5 自动特征交叉方案

逻辑回归模型只对单个特征进行加权,不具备进行特征交叉生成高维组合特征的能力,表达能力欠缺,不仅会造成信息损失,而且会得出错误的结论。[参考辛普森悖论]

2.5.1 POLY2 模型

PLOY2模型的数学表达式如下:
ϕ P O L Y 2 ( w , x ) = ∑ j 1 = 1 n − 1 ∑ j 2 = j 1 + 1 n w h ( j 1 , j 2 ) x j 1 x j 2 \phi POLY2(w,x)=\sum_{j_1=1}^{n-1}\sum_{j_2=j_1+1}^{n}w_h(j_1,j_2)x_{j_1}x_{j_2}ϕPO L Y 2 (w ,x )=j 1 ​=1 ∑n −1 ​j 2 ​=j 1 ​+1 ∑n ​w h ​(j 1 ​,j 2 ​)x j 1 ​​x j 2 ​​
PLOY2模型对所有特征进行两两交叉(特征x j 1 和 x j 2 x_{j_1}和x_{j_2}x j 1 ​​和x j 2 ​​),并对所有的特征组合赋予权重w h ( j 1 , j 2 ) w_h(j_1,j_2)w h ​(j 1 ​,j 2 ​)。PLOY2模型通过暴力组合特征,一定程度解决了特征组合问题。

PLOY2模型缺陷

  • 处理互联网数据时,经常采用 one-hot编码的方法处理类别类型数据,导致特征向量极度稀疏,POLY2进行无选择的特征交叉(本就使非常稀疏的特征向量更加稀疏),大部分交叉特征的权重缺乏有效的数据进行训练。无法收敛
  • 从数学表达看出权重参数的数量从n n n上升到n 2 n^2 n 2,训练复杂度增加

one-hot 编码

one-hot编码是将类别转换成向量的一种编码方式。由于类型特征不具备数值化意义,不进行编码无法将其值直接作为特征向量的一个维度使用。

譬如样本特征:星期、性别用[ W e e k d a y = M o n d a y , G e n d e r = M a l e ] [Weekday=Monday,Gender=Male][W ee k d a y =M o n d a y ,G e n d er =M a l e ]表示。由于输入特征向量仅可以是数值型特征向量,无法将字符串数据直接输入模型,因此需要将该特征进行数值化,采用 one-hot编码,结果为[ 1 , 0 , 0 , 0 , 0 , 0 , 0 ] , [ 1 , 0 ] [1,0,0,0,0,0,0],[1,0][1 ,0 ,0 ,0 ,0 ,0 ,0 ],[1 ,0 ]。

one-hot编码方式会造成特征向量中存在大量数值为0 0 0的特征维度,会造成输入特征向量稀疏。

2.5.2 FM 模型

FM模型的二阶数学表达如下:
ϕ F M ( w , x ) = ∑ j 1 = 1 n − 1 ∑ j 2 = j 1 + 1 n ( w j 1 ⋅ w j 2 ) x j 1 x j 2 \phi FM(w,x)=\sum_{j_1=1}^{n-1}\sum_{j_2=j_1+1}^{n}(w_{j_1}\cdot{w_{j_2}})x_{j_1}x_{j_2}ϕFM (w ,x )=j 1 ​=1 ∑n −1 ​j 2 ​=j 1 ​+1 ∑n ​(w j 1 ​​⋅w j 2 ​​)x j 1 ​​x j 2 ​​
与POLY2模型相比,FM模型用两个向量的内积( w j 1 ⋅ w j 2 ) (w_{j_1}\cdot{w_{j_2}})(w j 1 ​​⋅w j 2 ​​)取代了POLY2模型单一权重系数w h ( j 1 , j 2 ) w_{h(j_1,j_2)}w h (j 1 ​,j 2 ​)​。具体而言,FM为每个特征学习一个隐权重向量。在特征交叉时,使用 两个特征隐向量的内积作为交叉特征的权重。

FM模型是将矩阵分解隐向量的的思想进一步扩展,从用户、物品隐向量扩展到所有特征中。

FM通过引入特征隐向量,把POLY2模型n 2 n^2 n 2级别的权重参数数量减少到n k ( k 为隐向量维度, n ≫ k ) nk(k为隐向量维度,n\gg k)nk (k 为隐向量维度,n ≫k )。隐向量的引入使FM更好解决数据稀疏性问题。

场景模拟

频道channel品牌brandESPNAdidas

在某推荐场景下,样本具有两个特征,分别是频道和品牌,某训练样本的特征组合为( E S P N , A d i d a s ) (ESPN,Adidas)(ESPN ,A d i d a s )。

在POLY2模型中只有当ESPN和Adidas同时出现在一个样本中,模型才能学习到该组合特征对应的权重;

在FM模型中,ESPN的隐向量也可以通过( E S P N , G u c c i ) (ESPN,Gucci)(ESPN ,G u cc i )样本更新,Adidas的隐向量通也可以通过( N B C , A d i d a s ) (NBC,Adidas)(NBC ,A d i d a s )样本进行更新,因此大幅降低模型对数据稀疏性的要求。甚至对于未知的特征组合( N B C , G u c c i ) (NBC,Gucci)(NBC ,G u cc i ),由于之前学习过NBC和Gucci的隐向量,具备计算该特征组合权重的能力

2.5.3 FFM 模型

POLY2模型是 特征交叉的开始,FM模型引入 隐向量特征交叉,而FFM模型在FM模型的基础上引入 特征域的概念,模型表达能力变得更强。

FFM模型的二阶数学表达如下:
ϕ F F M ( w , x ) = ∑ j 1 = 1 n − 1 ∑ j 2 = j 1 + 1 n ( w j 1 , f 2 ⋅ w j 2 , f 1 ) x j 1 x j 2 \phi FFM(w,x)=\sum_{j_1=1}^{n-1}\sum_{j_2=j_1+1}^{n}(w_{j_1,f_2}\cdot{w_{j_2,f_1}})x_{j_1}x_{j_2}ϕFFM (w ,x )=j 1 ​=1 ∑n −1 ​j 2 ​=j 1 ​+1 ∑n ​(w j 1 ​,f 2 ​​⋅w j 2 ​,f 1 ​​)x j 1 ​​x j 2 ​​
FFM模型在FM模型的基础上将一个隐向量替换成一组隐向量。当x j 1 x_{j_1}x j 1 ​​特征与x j 2 x_{j_2}x j 2 ​​特征进行交叉时,x j 1 x_{j_1}x j 1 ​​特征会从x j 1 x_{j_1}x j 1 ​​的一组隐向量中挑出与特征x j 2 x_{j_2}x j 2 ​​的 f 2 f2 f 2对应的 隐向量( w j 1 , f 2 ) (w_{j_1,f_2})(w j 1 ​,f 2 ​​)进行交叉,x j 2 x_{j_2}x j 2 ​​会用与x j 1 x_{j_1}x j 1 ​​的 f 1 f_1 f 1 ​对应的 隐向量( w j 2 , f 1 ) (w_{j_2,f_1})(w j 2 ​,f 1 ​​)进行交叉。

特征域的概念

“域”代表特征域,域内的特征一般采用 one-hot编码形成特征向量,用户性别分为男、女两类,对于男性用户而言,采用 one-hot编码的特征向量为[ 1 , 0 ] [1,0][1 ,0 ],该特征向量即为一个”性别”特征域,将所有的特征域连接起来便组合成样本的整体特征向量。

在FFM模型的训练过程中,需要学习n n n个特征在f f f个域上的k k k维隐向量,参数数量共n ⋅ k ⋅ f n\cdot{k}\cdot{f}n ⋅k ⋅f个,其复杂度为k n 2 kn^2 k n 2

场景模拟

Publisher§Advertiser(A)Gender(G)ESPNNIKEMale

Publisher、Advertiser、Gender是三个特征域,ESPN、NIKE、Male分别是三个特征域中的特征值[假设已经转换成 one-hot特征]

FM模型中,特征ESPN、NIKE和Male对应的隐向量为w E S P N , w N I K E , w M a l e w_{ESPN},w_{NIKE},w_{Male}w ESPN ​,w N I K E ​,w M a l e ​,那么ESPN特征与NIKE特征、ESPN特征与Male特征做交叉的权重是w E S P N ⋅ w N I K E w_{ESPN}\cdot{w_{NIKE}}w ESPN ​⋅w N I K E ​和w E S P N ⋅ w M a l e w_{ESPN}\cdot{w_{Male}}w ESPN ​⋅w M a l e ​。其中,ESPN对应的隐向量w E S P N w_{ESPN}w ESPN ​在两次特征交叉过程中是不变的

FFM模型中,ESPN与NIKE、ESPN与Male交叉时分别使用不同隐向量w E S P N , A ⋅ w N I K E , P w_{ESPN,A}\cdot{w_{NIKE,P}}w ESPN ,A ​⋅w N I K E ,P ​和w E S P N , G ⋅ w M a l e , P w_{ESPN,G}\cdot{w_{Male,P}}w ESPN ,G ​⋅w M a l e ,P ​,由于NIKE和Male分别在不同的特征域A和G中,ESPN在与NIKE和Male交叉时使用不同的隐向量w E S P N , A w_{ESPN,A}w ESPN ,A ​和w E S P N , G w_{ESPN,G}w ESPN ,G ​

2.5.4 模型演化过程

2.5.3场景模拟特征数据为例,

POLY2模型直接学习每个交叉特征的权重,若特征数量为n n n,则权重数量为n 2 n^2 n 2,具体为n ( n − 1 ) 2 \frac{n(n-1)}{2}2 n (n −1 )​个,下图一个彩色圆点代表一个特征交叉项

[推荐系统] 1. 深度学习与推荐系统

FM模型学习每个特征的k k k维隐向量,交叉特征由相应特征向量的内积得到,权重数量共n k nk nk个。

FM比POLY2泛化能力强,但记忆能力减弱,处理稀疏特征向量的能力远强于POLY2。每个特征项不再是单独圆点,而是3个彩色圆点的内积,代表每个特征向量有一个三维的隐向量

[推荐系统] 1. 深度学习与推荐系统

FFM模型在做特征交叉时,每个特征选择与对方域对应的隐向量做内积运算,得到交叉特征的权重,在有n n n个特征,f f f个特征域,隐向量维度k k k的前提下,参数数量共n ⋅ k ⋅ f n\cdot{k}\cdot{f}n ⋅k ⋅f个。如下图所示,每个特征具有2个隐向量,根据特征交叉对象特征域的不同,选择使用对应的隐向量

[推荐系统] 1. 深度学习与推荐系统

; 2.6 GBDT+LR

2.6.1 GBDT+LR的组合模型结构

FaceBook提出利用GBDT自动进行特征筛选和组合,进而生成新的离散特征向量,再把该特征向量当作LR模型输入,预估CTR的模型结构,注意GBDT构建特征工程和LR预估CTR是分开训练的

[推荐系统] 1. 深度学习与推荐系统

浅谈GBDT

GBDT的基本结构是决策树组成的森林,学习的方式是梯度提升。具体而言,GBDT作为集成模型,预测的方式是把所有子树的结果加起来
D ( x ) = d t r e e 1 ( x ) + d t r e e 2 ( x ) + . . . D(x)=d_{tree1}(x)+d_{tree2}(x)+…D (x )=d t ree 1 ​(x )+d t ree 2 ​(x )+…

GBDT通过逐一生成决策子树的方式生成整个森林,生成新子树的过程是 利用样本标签值与当前森林预测值之间的残差,构建新的子树。

假设当前生成3棵子树,当前预测值为:
D ( x ) = d t r e e 1 ( x ) + d t r e e 2 ( x ) + d t r e e 3 ( x ) D(x)=d_{tree1}(x)+d_{tree2}(x)+d_{tree3}(x)D (x )=d t ree 1 ​(x )+d t ree 2 ​(x )+d t ree 3 ​(x )
GBDT期望的是构建第4棵子树,使当前森林的预测结果D ( x ) D(x)D (x )与第4棵子树的预测结果d t r e e 4 ( x ) d_{tree4}(x)d t ree 4 ​(x )之和,能进一步逼近理论上的拟合函数f ( x ) f(x)f (x ),即
D ( x ) + d t r e e 4 ( x ) = f ( x ) D(x)+d_{tree4}(x)=f(x)D (x )+d t ree 4 ​(x )=f (x )
因此,第4棵子树的生成过程是以目标拟合函数和已有森林预测结果的残差R ( x ) R(x)R (x )为目标的:
R ( x ) = f ( x ) − D ( x ) R(x)=f(x)-D(x)R (x )=f (x )−D (x )
GBDT是多棵回归树树组成的森林,后一棵树以前面森林的结果与真实结果残差为拟合目标。每棵树生成过程是一棵树的标准的回归树生成过程,因此回归树中每个节点的分裂是一个自然的特征选择过程,而多层节点的结构则对特征进行了有效的自动组合

; 2.6.2 GBDT进行特征转换的过程

利用训练好的GBDT模型完成从原始特征向量到新的离散型特征向量转换过程:

一个训练样本在输入GBDT某一子树后,根据每个节点的规则 最终落入某一叶子节点,把该叶子节点置为1,其他叶子节点置为0, 所有叶子节点组成的向量即形成该棵树的特征向量,把GBDT所有子树的特征向量连接起来,即形成后续LR模型输入的离散型特征向量

2.6.3 特征工程新趋势

GBDT+LR模型出现前,特征工程的主要解决办法:

  • 进行人工或者半人工的特征组合和特征筛选
  • 通过改造目标函数、改进模型结构、增加特征交叉项的方式增强特征组合能力

GBDT+LR模型的提出,意味特征工程完全交由一个独立的模型完成。

2.7 LS-PLM

2.7.1 主要结构

LS-PLM,又称为MLR(混合逻辑回归)模型,在LR模型上先对样本分片,再在样本分片中应用LR进行CTR预估

在LR的基础上增加聚类思想,灵感来自对广告推荐领域样本特点的观察。为了让CTR模型对不同用户群体、不同使用场景更有针对性,其先对全量样本进行聚类,再对每个分类进LR进行CTR评估。

LS-PLM先使用聚类函数π \pi π(采用softmax函数进行多分类)对样本进行分类,再用LR计算样本在分类中的具体的CTR,然后将二者相乘后求和,其数学表达如下:
f ( x ) = ∑ i = 1 m π i ( x ) ⋅ η i ( x ) = ∑ i = 1 m e μ i ⋅ x ∑ j = 1 m e μ j ⋅ x ⋅ 1 1 + e − w i ⋅ x f(x)=\sum_{i=1}^{m}{\pi_i(x)\cdot{\eta_i(x)}}=\sum_{i=1}^{m}{\frac{e^{μ_i\cdot{x}}}{\sum_{j=1}^{m}{e^{μ_j\cdot{x}}}}}\cdot{\frac{1}{1+e^{}-w_i\cdot{x}}}f (x )=i =1 ∑m ​πi ​(x )⋅ηi ​(x )=i =1 ∑m ​∑j =1 m ​e μj ​⋅x e μi ​⋅x ​⋅1 +e −w i ​⋅x 1 ​
其中的超参数”分片数”m m m较好地平衡模型的拟合与推广能力。当m = 1 m=1 m =1时,LS-PLM退化为普通的LR。m m m越大。模型的拟合能力越强。模型的规模参数随m m m的增大而线性增长,模型收敛所需的训练样本也随之增长

2.7.2 模型优点

  • 端到端的非线性学习能力:LS-PLM具有样本分片的能力,因此能够挖掘出数据中蕴藏的非线性模式,省去大量的人工样本处理和特征工程的过程,使LS-PLM完成端到端的训练
  • 模型的稀疏性强:LS-PLM 在建模时引人了L1和 L2范数,可以使最终训练出来的模型具有较高的稀疏度,使模型的部署更加轻量级。模型服务过程仅需使用权重非零特征,因此稀疏模型也使其在线推断的效率更高。

2.8 总结

模型基本原理特点举行协同过滤根据用户的行为历史生成
用户物品共现矩阵

,利用
用户相似性和物品相似性

进行推荐原理简单、直接,应用广泛泛化能力

,处理稀疏矩阵的能力

,推荐结果的
头部效应

较明显矩阵分解将协同过滤算法中的共现矩阵分解为用矩阵和物品矩阵,利用用户隐向量和物品
隐向量的内积

进行排序并推荐相较协同过滤,泛化能力有所加强,对稀疏矩阵的处理能力有所
加强

除了用户历史行为数据,
难以利用

其他用户、物品特征及上下文特征逻辑回归将推荐问题转换成类似CTR预估的二分类问题,将用户、物品、上下文等不同特征转换成特征向量,输入逻辑回归模型得到CTR, 再按照预估 CTR 进行排序并推荐能够融合多种类型的不同特征模型
不具备

特征组合的能力,表达能力较差FM在逻辑回归的基础上,在模型中加入
二阶特征交叉部分

,为每一维特征训练得到相应
特征隐向量

,通过隐向量间的内积运算得到交叉特征权重相比逻辑回归,具备了二阶特征交叉能力,模型的表达能力增强由于
组合爆炸

问题的限制,模型不易扩展到三阶特征交叉阶段FFM在 FM 模型的基础上,加人”
特征域

“的概念,使每个特征在与不同域的特征交叉时采用不同的隐向量相比 FM 进 一 步加 强 了 特 征 交 叉的能力模 型 的 训 练 开 销 达到 了0(n2 )的量级,训练开销较大GBDT+LR利用 GBDT 进行”自动化”的特征组合,将原始特征向量转换成离散型特征向量,并输人逻辑回归模型,进行最终的 CTR 预估特征工程模型化,使模型具备了更高阶特征组合的能力GBDT 无法进行完全并行的训练,更新所需的训练时长较长LS-PLM首先对样本进行”分片”,在每个”分片”内部构建逻辑回归模型,将每个样本的各”分片”概率与逻辑回归的得分进行加权平均,得到最终的预估值模型结构类似三层神经网络,具备了较强的表达能力模型结构相比深度学习模型仍比较简单,有进一步提高的空间

3 Embedding

3.1 Embedding简介

Embedding 的过程,就是把数据集合映射到向量空间,进而 把数据进行向量化的过程。Embedding 的目标,就是找到一组合适的向量,来刻画现有的数据集合。

embedding 是指将客观世界中离散的物体或对象(如单词、短语、图片)等映射到特征空间的操作,embedding向量是指映射后的特征空间中 连续且稠密的高维向量

在机器学习场景中,我们经常使用embedding向量来描述客观世界的物体。
embedding向量不是对物体进行简单编号的结果,而是 在尽量保持相似不变性的前提下对物体进行特征抽象和编码的产物。通过不断训练,我们能够将客观世界中的物体 不失真的映射到高维特征空间中,进而可以使用这些embedding向量实现分类、回归和预测等操作。

图Male-Female表示使用Word2vee方法编码的单词Embedding向量在Embedding空间内的位置,可以看出从Embedding(king)到Embedding(queen),从Embedding(man)到Embedding(woman)的距离向量几乎一致,这表明Embedding向量之间的运算甚至能包含词之间的语义关系信息。

图Verb tense表示词向量的特征,Embedding(walking)到Embedding(walked)和Embedding(swimming)到Embedding(swam)的距离向量一致,这表明walking-walked和swimming-swam的词性关系一致。

[推荐系统] 1. 深度学习与推荐系统

总之, Embedding向量能够表达相应对象的某些特征,同时向量之间的距离反映对象之间的相似性

; 3.2 Embedding技术对于DL的RS的重要性

  • 推荐场景中大量使用 one-hot 编码对类别、id 型特征进行编码,导致样本特征向量 极度稀疏,而深度学习的结构特点使其 不利于稀疏特征向量的处理, 因此几乎所有深度学习推荐模型都会由 Embedding 层负责 将高维稀疏特征向量,转换成稠密低维特征向量
  • Embedding 本身就是极其重要的特征向量。相比 MF 等传统方法产生的特征向量,Embedding 的表达能力更强,特别是 Graph Embedding 技术被提出后, Embedding几乎可以引人任何信息进行编码,使其本身就包含大量有价值的信息。 在此基础上,Embedding 向量往往会与其他推荐系统特征连接后一同输入后续深度学习网络进行训练
  • Embedding 对物品、用户相似度的计算是常用的推荐系统召回层技术。 在局部敏感哈希( Locality-Sensitive Hashing )等快速最近邻搜索技术应用于推荐系统后,Embedding 更适用于对海量备选物品进行快速”初筛”,过滤出几百到几千量级的物品交由深度学习网络进行 “精排”

3.3 Word2vec

3.3.1 Word2vec简介

Word2vec是一个用于生成”词”的向量表达的模型

为了训练 Word2vec 模型,需要准备由一组句子组成的语料库。假设其中一 个长度为T T T 的句子为w 1 , w 2 , . . . , w T w_1,w_2,…,w_T w 1 ​,w 2 ​,…,w T ​, 假定每个词都跟其相邻的词的关系最密切,即 每个词都是由相邻的词决定的( CBOW 模型的主要原理 ),或者 每个 词都决定了相邻的词(Skip -gram模型的主要原理 )。

如图 所示,CBOW 模型的输人是cot周边的词,预测的输出是 o>t , 而 Skip – gram 则相反。经验上讲, Skip – gram 的效果较好。

[推荐系统] 1. 深度学习与推荐系统

; 3.3.2 Word2vec模型的训练过程

为了基于语料库生成模型的训练样本,选取一个长度为 2 C + 1 2C+1 2 C +1( 目标词前后各 选 c c c个词)的 滑动窗口,从语料库中抽取一个句子,将 滑动窗口由左至右滑动, 每移动一次,窗口中的词组就形成了一个训练样本。

[推荐系统] 1. 深度学习与推荐系统

有了训练样本,就可以着手定义优化目标了。既然每个词 w t w_t w t ​都决定了相邻词w t + j w_{t+j}w t +j ​,基于极大似然估计的方法, 希望所有样本的条件概率之积最大, 这里使用对数概率。因此,W0rd2veC 的目标函数:
1 T ∑ t = 1 T ∑ − c ≤ j ≤ c , j ≠ 0 l o g p ( w t + j ∣ w t ) \frac{1}{T}\sum_{t=1}^{T}\sum_{-c\le j\le c,j≠0}{logp(w_{t+j}|w_t)}T 1 ​t =1 ∑T ​−c ≤j ≤c ,j =0 ∑​l o g p (w t +j ​∣w t ​)
接下来的核心问题是如何定义p ( w t + j ∣ w t ) p(w_{t+j}|w_t)p (w t +j ​∣w t ​)作为一个多分类问题,最直接的方法是使用 softmax 函数。

Word2vec 的”愿景”是 希望用一个向量V w V_w V w ​ 表示词 w w w, 用词之间的 内积距离 v i T v j v_i^Tv_j v i T ​v j ​ 表示语义的接近程度

那么条件概率p ( w t + j ∣ w t ) p(w_{t+j}|w_t)p (w t +j ​∣w t ​)的定义就 可以很直观地给出:
p ( W o ∣ W I ) = e x p ( V w o ′ T ) V w I ∑ w = 1 W e x p ( V w ′ T ) V w I p(W_o|W_I)=\frac{exp({V’{w_o}}^T)V{w_I}}{\sum_{w=1}^{W}exp({V’{w}}^T)V{w_I}}p (W o ​∣W I ​)=∑w =1 W ​e x p (V w ′​T )V w I ​​e x p (V w o ​′​T )V w I ​​​
其中w o w_o w o ​代表w t + j w_{t+j}w t +j ​,被称为输出词;w I w_I w I ​代表w t w_t w t ​,被称为输入词

在 Word2vec 中是用w t w_t w t ​预测w t + j w_{t+j}w t +j ​ , 但 其实二者的向量表达并不在一个向量空间内。就像上面的条件概率公式那样,V w o V_{w_o}V w o ​​和V w I V_{w_I}V w I ​​,分别是词w w w的输出向量表达和输入向量表达。

那什么是输入向量表达和输出向量表达呢?

[推荐系统] 1. 深度学习与推荐系统

根据条件概率p ( w t + j ∣ w t ) p(w_{t+j}|w_t)p (w t +j ​∣w t ​)的定义,可以把两个向量的乘积再套上一个 softmax的形式,转换成如图所示的神经网络结构。 用神经网络表示 Word2veC 的模型架构后,在训练过程中就可以通过梯度下降的方式求解模型参数。那么,输入向量表达就是输入层到隐层的权重矩阵w V × N w_{V×N}w V ×N ​,而输出向量表达就是隐藏层到输出层的权重矩阵w N × V ′ w’_{N×V}w N ×V ′​。

在获得输人向量矩阵w V × N w_{V×N}w V ×N ​后,其中每一行对应的权重向量就是通常意义上 的”词向量”。于是这个权重矩阵自然转换成了 Word2vec 的查找表( lookup table )

例如,输人向量是10000 个词组成的 onehot 向量,隐层维度 是 300 维,那么输入层到隐层的权重矩阵为 10000×300 维。在转换为词向量查找表后,每行的权重即成了对应词的 Embedding 向量。

[推荐系统] 1. 深度学习与推荐系统

3.3.3 Word2vec的”负采样”训练方法

假设语料库中的词的数量为 10000, 就意味着输出层神经元有 10000 个,在每次迭代更新隐层到输出层神经 元的权重时,都需要计算所有字典中的所有 10000 个词的预测误差( prediction error ) [3] , 在实际训练过程中 几乎无法承受这样巨大的计算量

为了减轻Word2vec的训练负担,往往采用 负采样(Negative Sampling )的方法进行训练。相比原来需要计算所有字典中所有词的预测误差,负采样方法 只需要对采样出的几个负样本计算预测误差

在此情况下,Word2vec模型的优化目标从一个多分类问题退化成了一个近似二分类问题,
E = − l o g ( v w o ′ T h ) − ∑ w j ∈ W n e g l o g σ ( − v w j ′ T h ) E=-log({v’{w_o}}^Th)-\sum{w_j\in W_{neg}}log\sigma({-v’_{wj}}^Th)E =−l o g (v w o ​′​T h )−w j ​∈W n e g ​∑​l o g σ(−v w j ′​T h )

其中v w o ′ v’{wo}v w o ′​是输出词向量(即正样本),h是隐层向量,W n e g W{neg}W n e g ​是负样本集合,w w j r w^r_{wj}w w j r ​是负样本词向量。由于负样本集合的大小非常有限( 在实际应用中通常小于 10 ), 在每轮梯度下降的迭代中,计算复杂度至少可以缩小为原来的 1/1000( 假设词表大小为10000 )。

Original: https://blog.csdn.net/ChiYoun/article/details/127271339
Author: Cyanzzy
Title: [推荐系统] 1. 深度学习与推荐系统

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/624009/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球