本文是《深度学习推荐系统》一书的阅读笔记和思维导图,建议大家入手一本王喆老师的新书,看完绝对会收获颇丰!
一、互联网的增长引擎--推荐系统
1、推荐系统的作用
解决在信息过载的情况下,用户高效获得感兴趣信息的问题
提高产品的用户转化率,得到公司商业目标连续增长的目的
2、推荐系统的架构
逻辑框架
对于用户U,在特定场景C下,针对海量的物品信息,构建一个函数f(U,I,C),预测用户对特定候选物品I的喜好程度
技术架构
数据部分
-
数据收集
-
推荐模型所需的样本数据
推荐模型所需特征
系统监控、商业智能所需的统计数据
数据加工
-
客户端及服务器端实时数据处理
流处理平台准实时数据处理
大数据平台离线数据处理
模型部分
-
召回层
排序层
补充策略与算法层
评估模块:离线评估和线上A/B测试
二、前深度学习时代-推荐系统的进化之路
1、协同过滤--经典的推荐算法
协同过滤是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程
基于用户的协同过滤UserCF
-
更强的社交性
适用于发现热点
基于物品的协同过滤ItemCF
-
适用于兴趣变化较为稳定的应用
推荐结果的头部效应明显,处理稀疏向量能力弱
2、矩阵分解算法-协同过滤的进化
主要方法
特征值分解:只适用于方阵
奇异值分解:计算复杂度高
梯度下降:主流方法
-
目的是原始评分与用户向量和物品向量的内积的差尽量小
加入正则化避免过拟合
加入用户和物品的偏差向量消除偏差
优缺点
-
优点:泛化能力强、空间复杂度低、更好的扩展性和灵活性
缺点:不方便加入用户、物品和上下文特征
3、逻辑回归-融合多种特征的推荐模型
综合利用用户、物品、上下文多种不同特征,生成较为全面的推荐模型
训练方法:梯度下降法、牛顿法、拟牛顿法
优势
-
数字含义上的支撑:广义线性模型的一种,假设y服从伯努利分布
可解释性强
工程化的需要:并行化、模型简单、训练开销小
局限性
-
表达能力不强、无法进行特征交叉、特征筛选等
4、从FM到FFM--自动特征交叉的解决方案
多维度特征交叉的重要性:“辛普森悖论”
POLY2模型--特征交叉的开始
-
暴力进行特征组合
训练复杂度高、稀疏数据下大部分权重得不到有效训练
FM模型-隐向量特征交叉
-
为每一个特征赋予一个对应的隐向量
更好地解决数据稀疏性问题
线上推断过程简单,更容易进行线上部署
不易扩展到三阶特征交叉
FFM模型-引入特征域的概念
-
域可以简单理解为采用one-hot编码形成的一段