[推荐系统] 1. 深度学习与推荐系统
Posted Cyanzzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[推荐系统] 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.2.2 推荐系统的技术架构
实际工程中着重解决的问题
- 数据和信息相关的问题 “用户信息”、“物品信息”、“场景信息”是什么?如何存储、更新、处理?
- 推荐系统算法和模型相关的问题 推荐模型如何训练、如何预测、如何达到更优的推荐效果?
”数据和信息“部分发展为推荐系统中融合了数据离线批处理、实时流处理的数据流框架;“算法和模型”细化为推荐系统中集训练、评估、部署、线上推断为一体的模型框架。
推荐系统的数据部分
主要负责“用户信息”、“物品信息”、“场景信息”的信息收集与处理。将负责数据收集与处理的三种平台按照实时性的强弱排序,依次为客户端及服务端实时数据处理、流处理平台准实时数据处理、大数据平台离线数据处理。在实时性由强到弱递减时,三种平台的海量数据处理能力由弱到强。
在得到原始的数据信息后,推荐系统的数据处理系统会将原始数据加工,加工后的数据出口有三个:
- 生成推荐模型所需的样本数据,用于训练和评估
- 生成推荐模型服务所需的特征,用于推荐系统的线上推断
- 生成系统监控、商业智能系统所需的统计型数据
推荐系统的模型部分
模型部分是推荐系统的主体,一般由“召回层”、“排序层”、“补充策略与算法层”构成
- 召回层:一般利用高效的召回规则、算法或简单的模型,快速从海量的候选集中召回用户可能感兴趣的物品
- 排序层:利用排序模型对初筛的候选集进行精排
- 补充策略与算法层:在将推荐列表返回用户之前,为兼顾结果的”多样性“、”流行度“、”新鲜度“等指标,结合一些补充的策略和算法对推荐列表进行调整,最终形成用户可见的推荐列表
模型服务:从推荐模型接收到所有候选物品集,到最后产生推荐列表的过程
在线环境进行模型服务之前,需要模型训练确定模型结构、结构中不同参数权重的具体值,以及模型相关算法和策略中的参数取值。
模型的训练方式根据模型训练环境不同:分为”离线训练“和”在线更新“两部分。
- 离线训练:利用全量样本和特征,使模型逼近全局最优点
- 在线更新:准实时”消化“新的数据样本,更快反映新的数据变化趋势,满足模型实时性的需求
2 前置知识
2.1 传统推荐模型的演化
- 协同过滤算法族 从物品相似度和用户相似度角度出发,协同过滤衍生出物品协同过滤ItemCF和用户协同过滤UserCF,为使协同过滤更好处理稀疏共现矩阵问题、增强模型的泛化能力,从协同过滤衍生除矩阵分解模型MF,并发展除矩阵分解的各分支模型
- 逻辑回归模型族 利用和融合更多用户、物品及上下文特征。从LR模型衍生出增强非线性能力的大规模分片线性模型LS-PLM,由LR发展出来的FM 模型,以及与多种不同模型配合使用后的组合模型等
- 因子分解机模型族 因子分解机在传统逻辑回归模型的基础上,加入二阶部分,使模型具备进行特征组合的能力。在因子分解机基础上发展的域感知因子分解机FFM通过加入特征域的概念,进一步加强因子分解机特征交叉的能力。
- 组合模型 将不同模型组合使用是构建推荐模型的常用方法,组合模型体现出的特征工程模型化思想成为深度学习推荐模型的因子和核心思想之一。
2.2 协同过滤
2.2.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)=\\fraci \\cdotj||i||\\cdot||j||
sim(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-\\overlineR_i)(R_j,p-\\overlineR_j)\\sqrt\\sum_p\\in P(R_i,p-\\overlineR_i)^2\\sqrt\\sum_p\\in P(R_j.p-\\overlineR_j)^2
sim(i,j)=∑p∈P(Ri,p−Ri)2∑p∈P(Rj.p−Rj)2∑p∈P(Ri,p−Ri)(Rj,p−Rj)
其中,
R
i
,
p
R_i,p
Ri,p代表用户
i
i
i对物品
p
p
p的评分。
R
‾
i
\\overlineR_i
Ri代表用户
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\\cdotR_s,p)\\sum_s\\in Sw_u,s
Ru,p=∑s∈Swu,s∑s∈S(wu,s⋅Rs,p)
其中,权重
w
u
,
s
w_u,s
wu,s是用户
u
u
u和用户
s
s
s的相似度,
R
s
,
p
R_s,p
Rs,p是用户
s
s
s对物品
p
p
p的评分。
在获得用户 u u u对不同物品的评价预测后,最终的推荐列表根据预测得分进行排序得到。至此,完成协同过滤的全部过程。
以上算法是基于用户近似度进行推荐,称为基于用户的协同过滤(UserCF)
UserCF存在的缺点
- 互联网应用场景下,用户数远大于产品数,UserCF需要维护用户相似度矩阵来找出Top n 用户。用户数的增长导致用户相似度矩阵的存储空间以 n 2 n^2 n2的速度增长,存储开销较大
- 用户的历史数据量往往较为稀疏,购买次数较少的用户,其相似用户的准确度极低
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-\\overlineR_p)(R_j,p-\\overlineR_p)\\sqrt\\sum_p\\in P(R_i,p-\\overlineR_p)^2\\sqrt\\sum_p\\in P(R_j.p-\\overlineR_p)^2 sim(i,j)=∑p∈P(Ri,p−Rp)2∑[推荐系统] 1. 深度学习与推荐系统