深度学习推荐系统实战
王喆
Roku 推荐系统架构负责人,前 hulu 高级研究员,《深度学习推荐系统》作者
33298 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
深度学习推荐系统实战
15
15
1.0x
00:00/00:00
登录|注册

22|强化学习:让推荐系统像智能机器人一样自主学习

在线部分
离线部分
模型增量更新或实时更新的方法
竞争梯度下降算法的弊端
强化学习在推荐系统领域的应用细节
强化学习的通用过程
DRN的在线学习方法:竞争梯度下降算法
DRN的学习过程
智能体:推荐模型
模型训练和更新
推荐系统的行动和奖励
初始化推荐系统
目标
状态
奖励
行动
环境
智能体
课后思考
小结
深度强化学习推荐模型DRN
强化学习推荐系统框架
强化学习的基本概念
强化学习时代,如何让推荐系统自主学习?

该思维导图由 AI 生成,仅供参考

你好,我是王喆。这节课我们继续来讲深度推荐模型发展的前沿趋势,来学习强化学习(Reinforcement Learning)与深度推荐模型的结合。
强化学习也被称为增强学习,它在模型实时更新、用户行为快速反馈等方向上拥有巨大的优势。自从 2018 年开始,它就被大量应用在了推荐系统中,短短几年时间内,微软美团阿里等多家一线公司都已经有了强化学习的成功应用案例。
虽然,强化学习在推荐系统中的应用是一个很复杂的工程问题,我们自己很难在单机环境下模拟,但理解它在推荐系统中的应用方法,是我们进一步改进推荐系统的关键点之一,也是推荐系统发展的趋势之一。
所以这节课,我会带你重点学习这三点内容:一是强化学习的基本概念;二是,我会以微软的 DRN 模型为例,帮你厘清强化学习在推荐系统的应用细节;三是帮助你搞清楚深度学习和强化学习的结合点究竟在哪。

强化学习的基本概念

强化学习的基本原理,简单来说,就是一个智能体通过与环境进行交互,不断学习强化自己的智力,来指导自己的下一步行动,以取得最大化的预期利益
事实上,任何一个有智力的个体,它的学习过程都遵循强化学习所描述的原理。比如说,婴儿学走路就是通过与环境交互,不断从失败中学习,来改进自己的下一步的动作才最终成功的。再比如说,在机器人领域,一个智能机器人控制机械臂来完成一个指定的任务,或者协调全身的动作来学习跑步,本质上都符合强化学习的过程。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

强化学习在推荐系统中的应用是当前深度学习时代的热门话题。微软的DRN模型成功将强化学习应用于新闻推荐场景,通过智能体与环境的交互,实现了推荐系统的自主学习和实时训练。该模型以Deep Q-Network为核心,通过双塔结构处理用户和物品特征向量,实现了对行动质量得分的评估和选择,从而推荐最合适的新闻给用户。强化学习的优势在于其持续学习和实时训练的特点,使得推荐系统能够不断优化自身,做出最及时的调整,从而提高推荐效果。然而,强化学习的落地并不容易,需要工程和研究部门通力合作才能实现。总的来说,强化学习在推荐系统中的应用为推荐技术的发展带来了新的可能性和趋势。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深度学习推荐系统实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(18)

  • 最新
  • 精选
  • LUO FAN
    一直没想明白DBGD工程上是如何实现的。 按照论文,首先对原网络进行随机扰动,那么需要保存随机扰动之后的模型W',然后用W和W'产生的结果进行交织,根据结果选取好的保留。因为这里最后推荐是一个列表。要评估整个列表的推荐结果,至少需要等到用户手动刷新推荐或者离开推荐页。这个过程,按照我的现有知识,整个过程从生成推荐列表到获取列表反馈,完成下来可能需要几分钟。请问一次更新真的一般都是这么长时间吗?是否业界有其他办法? 如果真的像我所想,那么DBGD的弊端就是在这几分钟内网络权重只能迭代一次,而且探索方向只有一个。 如果增加要增加网络更新频率,可以用反向传播计算梯度,在线更新模型,这就和一般的神经训练一样,只是根据实时样本流训练。 增加探索方向可以使用Evolution Strategy。从当前网络权重为中心按照高斯分布采样,根据每个子网络的用户反馈计算梯度,用梯度上升更新网络。

    作者回复: 好问题,一看就是资深工程师的“老成谋国”之言,哈哈。 我其实完全赞同你的观点,我觉得它不可能完成秒级别的更新,应该是以分钟为级别,而且应该是收集少量的mini batch数据之后进行一次梯度更新。 因为像你说的,列表展示、用户反应和交互最好需要几十秒到几分钟的时间,更别提整个数据流的延迟了。 我觉得这篇论文其实已经做了大量的工程妥协,我们也主要理解思路即可,不用太多纠结于具体的思路。

    2021-02-19
    17
  • 张弛 Conor
    思考题:我认为这个算法相比于随机梯度下降算法的弊端是:每个参数的更新方向是随机的,而不是像随机下降算法一样,是沿着梯度更新的。随机更新可能导致的结果就是:1.收敛是缓慢的。2.很难收敛到全局最优值。 课后问题: 1.请问老师,竞争梯度下降算法需要比较探索网络和当前网络的推荐效果,但是在模型结构图中,微更新的参考只有上阶段的推荐反馈,这里的推荐反馈只有一个,那么如何去更新竞争梯度下降算法呢?探索网络和当前网络的推荐效果是在图示的哪个阶段进行实现的呢? 2.请问老师,主更新的训练策略使用的也是竞争梯度下降算法吗?老师在文中提到,使用历史数据重新训练,这里指的是从零训练,还是说从离线阶段输出的模型进行fine-tune呢?

    作者回复: 思考很好,赞。 问题1. 在实际实现中肯定不是只用一个效果就更新网络,而是做一小段实践的数据收集,再根据这个batch的效果进行探索网络和当前网络的选择。这部分在实际的工程中一般是在flink等流计算平台上实现的。 问题2. 主更新不使用梯度下降算法。实际工程中可视为一次正常的模型更新,使用的是全量历史样本,当然这其中包括了最近收集到的样本。

    2020-11-30
    2
    13
  • 对方正在输入
    老师您好!我曾经修读过《强化学习》系列课程,但是在阅读本节内容后有所疑惑: 1.首先我想请问的是这里的drn与进行序列决策的强化学习联系在哪?进行序列决策的dqn一般使用最小化TD error的方式更新,进行序列决策的policy network一般使用policy gradient公式更新,而这里的drn貌似是借用了dqn的概念而采用了完全不同的更新方式,这么做的优势何在? 2.这里ΔW的更新公式看起来像是随机的,似乎是一种gradient free的更新方式,现有的强化学习方法中,gradient free的方法是采样效率最低的,用这种方式更新drn是否会导致收敛速度过慢的问题? 3.目前强化学习领域的sota算法包括ppo、ddpg、sac、a3c等,这些算法是否有在推荐系统领域的应用? 谢谢老师!

    作者回复: 这三个问题都非常非常好。但我觉得可以用一个简单的回答来尝试解决你的疑问。 我个人觉得DRN其实是为了工程上线做了大量的妥协。比如为什么用随机的方式尝试更新网络,因为不用online learning,减少了大量学习训练,模型上线的过程。 其他类似问题也可以从这个角度思考。总的来说,DRN是从传统模型更新方式转向强化学习的一个过渡工作。

    2021-02-03
    10
  • 旗开得胜
    微更新部分主要是学习用户的实时反馈,直接使用梯度下降也可以学习到,为什么要采用竞争梯度下降呢?

    作者回复: 说的非常好,基于SGD的online learning确实可以做实时学习。但它的整个工程难度比竞争梯度下降难非常多,你可以从整个框架的角度去思考这个问题,为什么落地难度大非常多。

    2021-01-31
    8
  • 浣熊当家
    请问老师,非强化学习的模型,在业界一般模型参数多久更新一次呢?

    作者回复: 一般的公司天更新的居多,算力强的公司也有一小时级别更新的。

    2020-11-30
    7
  • 那时刻
    “微更新”实时地学习用户的奖励反馈,更新推荐模型,再利用阶段性的“主更新”学习全量样本,更新模型。此时主更新更新的模型,会把微更新调优的模型完全覆盖么?如此的话,会不会把微更新调优的模型参数给抹掉了,从而导致模型参数变坏呢?

    作者回复: 理论上主更新会使用包含最近样本及历史样本的全量数据进行更新,主更新的作用其实恰好是对微更新的参数进行一定程度的纠偏。因为实践中往往有一些延迟反馈、数据噪声等问题。 微更新的主要作用是获取实时反馈,提高模型实时性,二者是互补的。

    2020-12-01
    6
  • 孙晓波
    老师你好 增加实时性上采用FTRL进行在线学习和强化学习在最终结果上有什么区别,如何判断选择

    作者回复: online learning其实可以看作强化学习的一个子集,或者说是子类。所以FTRL做在线学习本质上就是强化学习的一种。

    2020-11-30
    5
  • Abigail
    DRN 的微更新用到了竞争梯度下降算法,理解上可以近似我们的遗传算法/进化刷法。小的扰动可以理解为“网络offspring的变异”,然后根据反馈选择优秀的“子代”模型替代“上一代模型”。 另外一个思路就是,可以考虑集成学习的策略(Ensemble Learning)。建立合适的模型群,设计增加或者减少模型的策略,例如基于contribution scores 或者添加基于时间的权重等。 因为线上推荐系统的数据流是变化的,所以不存在一个“当前vs所有”或者历史意义上的最优模型, 只要用户对推荐效果的反馈不发生大幅度变差,就可以算是成功了!

    作者回复: 我觉得这个理解非常好,确实是类似于遗传算法的模式去寻找最优参数。

    2021-05-05
    4
  • Geek_0d974b
    请教一个新闻推荐的问题,相对于商品的推荐问题,新闻更加有时效性,就是说每次候选集都是“新”的商品。是不是意味着每条新闻都要面临embedding 冷启动?除了你在专栏里提过的冷启动方法,业界还有没有别的针对新闻推荐的技巧呢?

    作者回复: 是我在知乎专栏上详细介绍了一些embedding冷启动方法https://zhuanlan.zhihu.com/p/351390011 另外针对新闻推荐,我不是主要做这块的,但跟一些相关同行交流,有一个特点是新闻推荐其实在主模型之后掺杂着大量reranking的策略。比如会单独判断一些新的重大的news然后基于规则插入。这应该是新闻推荐的一个特点。

    2021-02-26
    4
  • 浣熊当家
    想继续请教老师,如果非强化学习模型参数的更新速度一般可以达到一天甚至一个小时一次,那么我可以理解为,强化学习的核心在于t1到t3这部分的微调整吗,我觉得强化学习本质采取了multi-bandit的探索&利用的模式,但是区别是,multi-bandit是划分人群,而强化学习是采用全部人群,随机排序不同模型的结果,并且把模型评估和模型训练融合在一个快速迭代的过程成,本质优势是降低了机会成本。

    作者回复: 其实宽泛的意义上,mutli-bandit,online learning都属于强化学习的范畴。 但确实像你说的,典型的强化学习的最大功夫就在于如何进行这里的微调,一般来说mutli-bandit中的exploration策略会粗放一些,偏global的调整,但RL一般会通过进行新样本的学习,调整智能体也就是这里的模型来实现不断的学习。

    2020-12-02
    4
收起评论
显示
设置
留言
18
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部