网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 动手学推荐系统 基于PyTorch的算法实现(微课视频版);计算机技术开发与应用丛书
分类 教育考试-考试-计算机类
作者 於方仁
出版社 清华大学出版社
下载
简介
编辑推荐
本书的重点是通过梳理脉络由浅入深地带领读者走进推荐算法领域并建立自己的推荐算法推理思路。配套112个示例源代码,1911分钟视频讲解。
内容推荐
本书从理论结合实践编程来学习推荐系统。由浅入深,先基础后进阶,先理论后实践,先主流后推导。
第1章较为简单,仅初步带领大家了解什么是推荐系统及推荐系统的简史。第2章到第5章介绍的是主流的推荐算法及推荐算法的推导过程,这部分是本书的核心,每个算法都描述的非常详细且有具体代码帮助大家理解,深度学习的框架将采用PyTorch。第6章介绍的是商业及推荐系统的组成结构,第7章系统地介绍了推荐系统的评估指标及方式。第8章则介绍整个推荐工程的生命周期。第6~8章可随时抽取出来提前看。本书配套示例代码及微课视频,帮助读者快速入门推荐算法及系统。
本书可作为高等院校、科研机构或从事推荐系统工作的工程师的参考书籍,也可作为高年级本科生和研究生的学习参考书籍。
目录
第1章 推荐系统的初步了解( 28min)
1.1 什么是推荐系统
1.2 推荐系统的由来
1.2.1 Tapestry
1.2.2 GroupLens
1.3 推荐系统的概况
1.4 推荐算法的概况
参考文献
第2章 基础推荐算法( 398min)
2.1 协同过滤
2.2 基础近邻指标
2.2.1 CN相似度
2.2.2 Jaccard相似度
2.2.3 Cos相似度
2.2.4 Pearson相似度
2.2.5 Pearson相似度与Cos相似度之间的联系
2.3 基于近邻的协同过滤算法
2.3.1 UserCF
2.3.2 行为相似与内容相似的区别
2.3.3 ItemCF
2.3.4 实战: UserCF
2.3.5 实战: ItemCF
2.3.6 实战: 标注为1~5的评分
2.4 推荐模型评估: 入门篇
2.4.1 广义的准确率、准确率、召回率
2.4.2 推荐系统的准确率、准确率、召回率
2.4.3 推荐列表评测
2.4.4 对近邻协同过滤模型进行评测
2.5 进阶近邻指标
2.5.1 UserIIF与ItemIUF
2.5.2 更高效地利用流行度定义近邻指标
2.5.3 自定义相似度指标的范式
2.6 矩阵分解协同过滤算法
2.6.1 SVD矩阵分解
2.6.2 将SVD用作推荐
2.6.3 LFM隐因子模型
2.6.4 ALS代码实现
2.6.5 推荐模型评估: MSE、RMSE、MAE
2.6.6 以深度学习端到端训练思维理解ALS
2.6.7 ALS代码实现PyTorch版
2.7 逻辑回归出发的推荐算法
2.7.1 显式反馈与隐式反馈
2.7.2 逻辑回归
2.7.3 POLY2
2.7.4 FM
2.7.5 以深度学习端到端训练思维理解FM
2.8 本章总结
2.8.13 个重要算法: 近邻协同过滤、ALS、FM
2.8.2 协同过滤算法总结
参考文献
第3章 进阶推荐算法( 351min)
3.1 神经网络推荐算法推导范式
3.1.1 ALS+MLP
3.1.2 特征向量+MLP
3.1.3 结合CNN的推荐
3.1.4 结合RNN的推荐
3.1.5 ALS结合RNN
3.1.6 联合训练的RNN
3.1.7 小节总结
3.2 FM在深度学习中的应用
3.2.1 FNN
3.2.2 改进后的FNN
3.2.3 Wide & Deep
3.2.4 DeepFM
3.2.5 AFM
3.2.6 小节总结
3.3 序列推荐算法
3.3.1 基本序列推荐模型
3.3.2 DIN与注意力计算方式
3.3.3 从PReLU到Dice激活函数
3.3.4 DIEN模拟兴趣演化的序列网络
3.4 Transformer在推荐算法中的应用
3.4.1 从推荐角度初步了解Transformer
3.4.2 多头注意力与缩放点乘注意力算法
3.4.3 残差
3.4.4 Layer Normalization
3.4.5 前馈神经网络层
3.4.6 位置编码
3.4.7 Transformer Encoder
3.4.8 利用Transformer编码器的推荐算法BST
3.4.9 Transformer Decoder
3.4.10 结合Transformer解码器的推荐算法推导
3.5 本章总结
参考文献
第4章 图神经网络与推荐算法( 275min)
4.1 图论基础
4.1.1 什么是图
4.1.2 无向图与有向图
4.1.3 无权图与有权图
4.1.4 同构图与异构图
4.1.5 图的表示: 邻接矩阵
4.1.6 图的表示: 邻接列表
4.1.7 图的表示: 边集
4.1.8 邻居与度
4.1.9 结构特征、节点特征、边特征
4.1.10 处理图的Python库推荐
4.2 基于图的基础推荐方式
4.2.1 链路预测(Link Prediction)
4.2.2 什么是路径
4.2.3 基于路径的基础链路预测
4.2.4 图游走算法DeepWalk
4.2.5 图游走算法Node2Vec
4.3 图神经网络
4.3.1 GCN图卷积网络
4.3.2 GAT图注意力网络
4.3.3 消息传递
4.3.4 图采样介绍
4.3.5 图采样算法: GraphSAGE
4.3.6 图采样算法: PinSAGE
4.4 基于图神经网络的推荐
4.4.1 利用GCN的推荐算法
4.4.2 利用GAT的推荐算法
4.4.3 图神经网络结合FM的推荐算法: GFM
4.4.4 GFM加入注意力机制的推荐算法: GAFM
4.4.5 小节总结
4.5 本章总结
参考文献
第5章 知识图谱与推荐算法( 408min)
5.1 知识图谱基础
5.1.1 知识图谱定义
5.1.2 RDF到HRT三元组
5.1.3 知识图谱推荐算法与图神经网络推荐算法的发展脉络
5.1.4 知识图谱推荐算法的概览
5.1.5 基于知识图谱推荐的优劣势
5.1.6 Freebase数据集介绍
5.2 Knowledge Graph Embedding知识图谱嵌入
5.2.1 翻译距离模型TransE
5.2.2 翻译距离模型TransH
5.2.3 翻译距离模型TransR
5.2.4 其他翻译距离模型
5.2.5 语义匹配模型RESCAL
5.2.6 其他语义匹配模型
5.3 基于知识图谱嵌入的推荐算法
5.3.1 利用知识图谱嵌入做推荐模型的基本思路
5.3.2 最简单的知识图谱推荐算法CKE
5.3.3 CKE扩展及演化
5.3.4 加强知识图谱信息的影响:MKR
精彩页
     第3章
进阶推荐算法
本章会介绍如今深度学习时代下热门的几个经典算法,以及如何推导深度学习推荐算法模型。笔者认为推荐算法工程师切勿生搬硬套前沿论文的模型。一定要有自己对于目前推荐场景的思路,学习他人的算法模型是为了帮助自己更好地建立思路,而不是单纯地搬运他人算法在自己的场景中使用。
因为对于推荐算法而言,至少现在并不存在一个万金油的模型可以覆盖一切场景,而是需要推荐算法工程师结合当前场景及当前的数据,结合前沿及经典算法的思路推导出最合适的推荐算法。
身处当代的大家,是否觉得目前正是推荐算法百家争鸣的年代呢?网上随便一查就可以查到诸多推荐算法,但其实如果纵观历史,每个年代当时的学问无不处于百家争鸣的状态,而之所以会对当代百家争鸣的状态更有印象,正是因为我们是局中人。
3.1神经网络推荐算法推导范式
6min
1992年,协同过滤问世之后,直到2003年才出现ItemCF算法,这11年间没有别的推荐算法吗?当然不是,只是经过多年的沉淀,成为经典的只有协同过滤而已,而今天众多的推荐算法也一样,20年后能流传下去的也不会太多,所以对于学习算法的大家,一定要在基础巩固的前提下,形成推导算法的范式。
自深度学习问世以来,神经网络的概念也随之而来。神经网络复杂吗?当然复杂,因为神经网络直接将算法的层次拉深且拉宽,动辄就会有好几个层级,以及无数个神经元。神经网络简单吗?其实简单无比,了解了基本网络层的组成后,就会发现深度学习神经网络像搭积木一样。
3.1.1ALS+MLP
15min
先从最基础的推荐算法ALS结合最基础的深度学习网络MLP开始讲解。首先,如果把ALS的模型结构画成神经网络图,则如图31所示。
多层感知机(MultiLayer Perceptron,MLP)[2]是深度学习的开端,简单理解是在最终计算前,使向量经过一次或多次的线性投影及非线性激活从而增加模型的拟合度。ALS结合MLP的神经网络如图32所示。
图31ALS神经网络示意图
图32ALSMLP示意图
6min
其中,每个隐藏层(Hidden Layer)都由一个线性层和非线性激活层组成。
线性层是y=w·x的一个线性方程的形式,非线性激活层
类似于Sigmoid、ReLU和Tanh等激活函数。线性层加非线性激活层的组合又被称为全连接层(Dense Layer)。 基础知识——非线性激活层的意义
这里顺便提一下,如果没有非线性激活单元,则多层的线性层是没有意义的。假设有l个隐藏线性层,则x经过多层投影得到第l层输出的这一过程可被描述为式(31)。
h1=w0·x
h2=w1·h1

hl=wl-1·hl-1
(31)
如果将此公式稍微改变一下形式,则可得
hl=wl-1…w1w0x(32)
所以可以发现,中间隐藏层的输出全部都没有意义,wl-1…w1w0这些计算最终只是输出一个第l层的权重wl,因为永远
进行的是线性变换,所以多次线性变换接近可由一次合适的线性变化代替,所以这个多层的神经网络与只初始化一个wl的单层神经网络其实并无差别,而加入非线性激活单元就不一样了,通常由σ(·)表示一次非线性激活计算,所以
l个隐藏层的公式就必须写成:
h1=σ(w0·x)
h2=σ(w1·h1)

hl=σ(wl-1·hl-1)(33)
如此一来,多层的神经网络就变得有意义了。
接下来是ALS+MLP的核心代码部分,代码如下:
#代码的地址: recbyhand\chapter3\s11a_ALS_MLP.py
class ALS_MLP (nn.Module):
def __init__(self, n_users, n_items, dim):
super(ALS_MLP, self).__init__()
'''
:param n_users: 用户数量
:param n_items: 物品数量
:param dim: 向量维度
'''
#随机初始化用户的向量
self.users = nn.Embedding( n_users, dim, max_norm=1 )
#随机初始化物品的向量
self.items = nn.Embedding( n_items, dim, max_norm=1 )
#初始化用户向量的隐含层
self.u_hidden_layer1 = self.dense_layer(dim, dim //2)
self.u_hidden_layer2 = self.dense_layer(dim//2, dim //4)
#初始化物品向量的隐含层
self.i_hidden_layer1 = self.dense_layer logit = self.sigmoid(out)
return logit
大家也许会有一个疑问,这里仅仅将用户的历史物品序列
通过RNN网络训练了一遍,对推荐能有效果吗?当然有,RNN的优势就在于在消息传递的过程中能保留顺序信息,所以把RNN层当作聚合用户的历史物品序列信息的函数会更好理解,也
就是说RNN最后一层的输出向量可以认为是用户向量与物品向量的拼接。如果还是不太
理解,则3.1.5节
有助于更好地理解RNN对推荐作用的原理。
3.1.5ALS结合RNN
大家对
ALS已经再熟悉不过了,中心思想是求用户向量与物品向量的点积。求点积
不是重点,重点是用户向量与物
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/4/17 18:07:30