《深度学习推荐系统》阅读笔记 1.互联网的增长引擎—推荐系统

第一章 互联网的增长引擎—推荐系统

近期把王喆老师的著作《深度学习推荐系统》阅读了一遍,受益良多。为了再深入吸收书中的实战经验,决定从头到尾梳理一遍书中的我认为的重要知识点,并对书中介绍较少的细节进行补充,同时补充一些代码来解释某些理论。

推荐系统的意义

“推荐”是目前互联网应用中不可或缺的技术手段。购物、阅读和学习,都要面对网络上大量的良莠不齐的内容。推荐系统从来没有像现在这样影响着人们的生活。从用户和公司的两个角度可以阐述推荐系统存在的意义:

  1. 用户:推荐系统解决在“信息过载”的情况下,用户如何高效获取感兴趣信息的问题。
  2. 公司:推荐系统解决产品能够最大限度的吸引用户、留存用户、增加用户粘性、提高用户转化率的问题,从而达到公司商业目标连续增长的目标。
    结合用户和公司角度的优化目标来看,YouTube视频推荐的优化目标体现的非常充分。作为一家以广告作为主要收入来源的公司,商业增长的关键在于用户对视频的观看时长,所以在YouTube的推荐系统中,优化目标就是观看时长,而非传统推荐系统中的“点击率”。它将点击率与观看时长结合,使用加权逻辑回归方法并在serving时转换后的指数值进行推荐,推导后能发现建模目标就是观看时长。后续将会详细介绍YouTube的建模方式,感兴趣的读者可以先先阅读论文原文《Deep Neural Network for YouTube Recommenders》。

推荐系统的架构

推荐系统逻辑框架

推荐模型的输入是用户、物品、场景信息以及候选的物品,根据模型输出值的大小,按照序列对物品进行排序。

在这里插入图片描述

推荐系统的技术架构

推荐系统中,容易想到的着重解决的问题主要有两类:

  1. 数据和信息相关的问题:如何存储、更新和处理用户、物品和场景信息?
  2. 算法和模型相关的问题:模型如何训练、预测和达到更好的效果?
    “数据和信息”包括:数据离线批处理、实时流处理的数据流框架;
    “算法和模型”包括:训练、评估、部署和线上推断。

数据部分

推荐系统的数据部分主要负责信息的收集和处理。按照实时性排序:

  1. 客户端及服务器端实时数据处理:包含客户端的数据收集、服务器端的日志输出等等;
  2. 流处理平台准实时数据处理:包含通过storm、spark、flink等处理后生成的模型实时特征等;
  3. 大数据平台离线数据处理:包含生成模型离线训练样本等;
    推荐系统的数据部分是推荐系统的水源。

模型部分

推荐系统的模型部分是推荐系统的主体。模型的结构一般包括:召回层、排序层和补充策略与算法层。
召回层:利用高效的召回规则、算法或简单的模型,快速从海量的候选集中召回用户可能感兴趣的物品;
排序层:利用排序模型对初筛的候选集进行精排序;
补充策略与算法层:“再排序层”,为了兼顾结果的多样性、新鲜度等指标,结合补充的策略与算法对推荐列表进行一定的调整,最终形成用户可见的推荐列表。
对于模型来说,训练方法有两种:离线训练和在线更新。离线训练的特点是可以利用全量样本的特征,使得模型逼近全局最优点。在线更新可以准实时地消化新的数据样本,更快地反映新的数据变化趋势,满足模型实时性的要求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章