《学习《推荐系统与深度学习》读书笔记1》

  • Post author:
  • Post category:其他


2019.10.11至2019.10.13期间,自己阅读了《推荐系统与深度学习》这本书。通过对书中的内容的学习,自己了解和掌握了推荐系统的基本知识、算法和架构。下面,自己将按照书中的内容顺序对每章的内容进行整理。



第一章 什么是推荐系统(对相关内容的简介)



1.1 推荐算法和系统

基于内容的推荐算法:涉及TF-IDF。

主流推荐算法:基于协同过滤的推荐算法。

该算法最早由亚马逊提出并应用。

可被划分为:物品协同过滤、用户协同过滤、基于模型的协同过滤。

其中,基于模型的协同过滤包括聚类模型和贝叶斯网络等。目前最为广泛使用的是奇异值分解SVD方法。考虑到用户的隐形行

为和时间变化的维度,在此基础上衍生出SVD++、time-SVD++、三维矩阵分解等法。

混合推荐系统:特征很重要!

可将推荐问题转化为分类问题,之后使用LR等模型进行CTR预测。

基于深度学习的推荐系统。

推荐系统的架构:要求线上可用,解决高并发问题。



1.2 推荐系统、机器学习

SVM等机器学习方法都可看做是只有一层或没有隐层节点的NN。

词嵌入表示被广泛地用于推荐系统。



第二章 DNN的简要介绍



2.1 优化算法

1. 模型参数初始化

假设输入和输出神经元的数量是
n_{in}

n_{out}
。通常有以下几种方式来实现模型参数的初始化:

(1)高斯分布初始化

模型的初始化参数满足:
W\sim N(0,\sqrt{2/(n_{in}+n_{out})})

2)均匀分布初始化

参数服从U[-a,a]的均匀分布,进行随机初始化时也可考虑输入神经元的数量
n_{in}

模型的初始化参数满足:
W\sim U(-\sqrt{1/n_{in}},\sqrt{1/n_{in}})

3)Xavier初始化

参数服从U[-a,a]的均匀分布。进行随机初始化时,为了让输入和输出神经元的方差尽量一致,模型的初始化参数满足:

W\sim U(-\sqrt{2/(n_{in}+n_{out})},\sqrt{2/(n_{in}+n_{out})})

2. 学习率的选择

在训练DNN时,采用模拟退火的方法动态调整学习率。有以下两种形式:

(1)反向衰减学习率

\theta (t)=\eta_ {0}/(1+t\cdot \gamma )

其中,
t
是迭代次数,
\gamma
是衰减系数。

(2)指数衰减学习率

\theta (t)=\eta_ {0}/e^{t\cdot \gamma }

其中,
t
是迭代次数,
\gamma
是衰减系数。

(3)自适应调整学习率

1)动量方法

用累计梯度代替当前时刻的梯度,可以快速地收敛并减少目标函数的振荡。

2)RMSprop

3)自适应矩估计



2.2 CNN和序列模型

1. CNN

卷积层:提取特征。

池化层:减少特征和参数数量,减少网络的计算量,控制过拟合。

2. 序列模型


时序反向传播算法:详见P22~P23。


3. GAN



第三章 TensorFlow



3.1 TensorFlow中的计算分两步执行:

首先定义一个计算图,然后通过会话(Session)执行图中的操作。



3.2 其它深度学习平台

MXNet:作者推荐的学习平台。



版权声明:本文为qq_33335553原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。