2019.10.11至2019.10.13期间,自己阅读了《推荐系统与深度学习》这本书。通过对书中的内容的学习,自己了解和掌握了推荐系统的基本知识、算法和架构。下面,自己将按照书中的内容顺序对每章的内容进行整理。
第一章 什么是推荐系统(对相关内容的简介)
1.1 推荐算法和系统
基于内容的推荐算法:涉及TF-IDF。
主流推荐算法:基于协同过滤的推荐算法。
该算法最早由亚马逊提出并应用。
可被划分为:物品协同过滤、用户协同过滤、基于模型的协同过滤。
其中,基于模型的协同过滤包括聚类模型和贝叶斯网络等。目前最为广泛使用的是奇异值分解SVD方法。考虑到用户的隐形行
为和时间变化的维度,在此基础上衍生出SVD++、time-SVD++、三维矩阵分解等法。
混合推荐系统:特征很重要!
可将推荐问题转化为分类问题,之后使用LR等模型进行CTR预测。
基于深度学习的推荐系统。
推荐系统的架构:要求线上可用,解决高并发问题。
1.2 推荐系统、机器学习
SVM等机器学习方法都可看做是只有一层或没有隐层节点的NN。
词嵌入表示被广泛地用于推荐系统。
第二章 DNN的简要介绍
2.1 优化算法
1. 模型参数初始化
假设输入和输出神经元的数量是
和
。通常有以下几种方式来实现模型参数的初始化:
(1)高斯分布初始化
模型的初始化参数满足:
。
2)均匀分布初始化
参数服从U[-a,a]的均匀分布,进行随机初始化时也可考虑输入神经元的数量
:
模型的初始化参数满足:
3)Xavier初始化
参数服从U[-a,a]的均匀分布。进行随机初始化时,为了让输入和输出神经元的方差尽量一致,模型的初始化参数满足:
2. 学习率的选择
在训练DNN时,采用模拟退火的方法动态调整学习率。有以下两种形式:
(1)反向衰减学习率
其中,
是迭代次数,
是衰减系数。
(2)指数衰减学习率
其中,
是迭代次数,
是衰减系数。
(3)自适应调整学习率
1)动量方法
用累计梯度代替当前时刻的梯度,可以快速地收敛并减少目标函数的振荡。
2)RMSprop
3)自适应矩估计
2.2 CNN和序列模型
1. CNN
卷积层:提取特征。
池化层:减少特征和参数数量,减少网络的计算量,控制过拟合。
2. 序列模型
时序反向传播算法:详见P22~P23。
3. GAN
第三章 TensorFlow
3.1 TensorFlow中的计算分两步执行:
首先定义一个计算图,然后通过会话(Session)执行图中的操作。
3.2 其它深度学习平台
MXNet:作者推荐的学习平台。