-->

深度学习推荐系统实战_29_22强化学习让推荐系统像智能机器人一样自主学习

你好,我是王哲。

今天,我们继续来聊一聊深度推荐模型发展的前沿趋势。

学习一下强化学习与深度推荐模型是怎么结合的。

它强化学习也被称为增强学习。

它在模型实时更新、用户行为快速反馈等方向上拥有巨大的优势。

所以自从二零一八年开始,它就被大量应用在了推荐系统中。

短短几年时间,微软、美团、阿里等多家一线公司都已经有了强化学习的成功应用案例。

虽然强化学习,在推荐系统的应用是一个很复杂的工程问题。

我们自己很难在单机环境下模拟。

但是理解它在推荐系统中的应用方法,是我们进一步改进推荐系统的关键点之一,也是推荐系统发展的趋势之一。

所以这节课我会带你重点学习这三点内容,一是强化学习的基本概念。

二是我会以微软的DRN模型为例,帮你理清强化学习,在推荐系统的应用细节。

三呢就是帮助你搞清楚深度学习和强化学习的结合点究竟在哪儿。

好,我们先来看一看强化学习的基本概念,强化学习的基本原理。

简单来说是这样的过程,那一个智能体通过与环境进行交互。

三呢学习强化自己的智力,来指导自己的下一步行动,以取得最大化的预期收益。

事实上,任何一个有智能的个体,一是学习过程都遵循强化学习所描述的原理。

比如说婴儿学走路,就是通过与环境交互,不断从失败中学习来改进自己的下一步动作,才最终成功的。

再比如说,在机器人领域,一个智能机器人控制机械臂来完成一个指定的任务,或者协调全身的动作来学习跑步,本质上都符合强化学习的过程。

那为了把强化学习技术落地,只清楚它的基本原理显然是不够的。

我们需要清晰的定义出强化学习中的每一个关键变量,形成一套通用的技术框架。

一个通用的强化学习框架,必须要有六个元素,分别是智能体环境、行动、奖励状态和目标。

这几个元素的概念非常简单,智能体就是指强化学习的主体是做出决定的大脑。

其他五个元素分别指的是智能体所处的环境,它的行动它可以获得的奖励,所处的当前状态以及希望达成的目标。

当然,我也在文稿中给出了他们更精确的定义,你可以去看一看。

那为了方便你理解和记忆,我们可以用一段话把强化学习的六大要素串联起来。

那就是说一个智能体身处在不断变化的环境之中。

为了达成某个目标,它需要不断的做出行动,行动会带来好或者不好的奖励。

那智能体收集起这些奖励反馈,进行自我学习,改变自己所处的状态,再进行下一步的行动。

然后智能体会持续着这个行动奖励更新状态的循环不断,优化自身直到达成设定的目标。

这就是强化学习通用过程的描述了。

那对于推荐系统来说,我们能不能创造出这样一个会自我学习、自我调整的智能体,为用户进行推荐服务呢?但事实上,微软的DRN模型就已经实现了这个想法。

下面我就以DRN模型为例来给你讲一讲。

在推荐系统中强化学习的六大要素都是什么?以及强化学习具体是怎样应用在推荐系统中的。

那强化学习推荐模型,DRN也叫做深度强化学习网络是微软在二零一八年提出的,它被应用在了新闻推荐的场景上。

我在文稿里放了DRN的框架图,我们不仅可以把它当成微软DRN的框架图,也可以看作是一个经典的强化学习推荐系统的技术框图。

从这个技术框图中,我们可以清楚的看到强化学习的六大要素。

接下来我就以DRN模型的学习过程串联起所有的要素,来和你详细说说这六大要素。

在推荐系统场景下分别指的是什么,以及每个要素的位置和作用。

那在新闻的推荐系统场景下,DRN模型的第一步是初始化推荐系统,主要初始化的是推荐模型,可以利用离线训练好的模型作为初始化模型。

那其他的还包括初始化我们之前讲过的特征,存储、推荐服务器等等。

那接下来推荐系统作为智能体会,根据当前已收集的用户行为数据,也就是当前的状态对新闻进行排序,这样的行动,并在新闻网站或者APP这些环境中推送给用户。

那用户收到了新闻推荐列表之后,可能会产生点击,也可能忽略这些推荐结果。

那这些反馈都会作为正向或者负向的奖励,再反馈给推荐系统。

推荐系统收到奖励之后,会根据它改变更新当前的状态,并进行模型训练来更新模型。

接着就是推荐系统不断的重复排序、推送反馈的步骤,直到达成提高新闻的整体点击率或者用户留存等目的为止。

呃,为了方便你进行对比,我也把这六大要素在推荐系统场景下的定义整理在了文稿里。

你可以去看一看到这儿,你有没有发现强化学习推荐系统跟传统推荐系统相比,它的主要特点到底是什么呢?那其实就是在于强化学习推荐系统,始终在强调持续学习和实时训练,它不断利用新学到的知识更新,自己做出最及时的调整。

这也正是强化学习应用于推荐系统的收益所在。

我们现在已经熟悉了强化学习推荐系统的框架,但其中最关键的智能体到底长什么样呢?微软又是怎么实现的实时训练呢?接下来就让我们深入到DRN的细节中去看一看。

那智能体是强化学习框架的核心。

作为推荐系统这一智能体来说,推荐模型就是推荐系统的大脑,在DRN框架中扮演大脑角色的是deep q network.那其中q是quality,简称,是指通过对行动进行质量评估,得到行动的效用得分来进行行动决策。

在文稿里给出的网络结构图中,我们可以看到DQN就是一个典型的双塔结构。

其中,用户塔的输入特征是用户特征和场景特征。

物品塔的输入特征是所有的用户环境、用户新闻交叉特征以及新闻特征。

在强化学习的框架下,用户塔特征向量因为代表了用户当前所处的状态,所以可以被叫做状态向量。

而物品塔特征向量代表了系统下一步要选择的新闻。

我们刚才说了,这个选择新闻的过程就是智能体的行动。

所以,物品塔特征向量也被称为行动向量双塔模型,通过对状态向量和行动向量分别进行了MRP的处理。

用互操作层生成了最终的行动。

质量得分QSA那智能体正是通过这一得分的高低来选择到底做出哪些行动,也就是推荐哪些新闻给用户。

其实到这里为止,我们并没有看到强化学习的优势。

貌似就是套用了强化学习的概念,把深度推荐模型又解释了一遍。

别着急,下面我要讲的DRN学习过程才是强化学习的精髓。

那第二人的学习过程是整个强化学习推荐系统框架的重点。

正是因为可以在线更新,才让强化学习模型,比其他静态深度学习模型有了更多实时性上的优势。

那接下来我们结合文稿中的示意图,按照从左至右的时间轴来描绘一下DRN学习过程中的重要步骤。

我们先来看离线部分。

那DRN根据历史数据训练好DQN模型作为智能体的初始化模型,而在线部分则根据模型更新的间隔分成了n个时间段。

这里我们以t一到t五时间段为例,那首先在t一到t二阶段,DRN利用次数化模型进行了一段时间的推送服务,积累了一定量的反馈数据。

接着是在t二时间点DRN利用t一到t二阶段积累的用户,点击数据进行模型微更新。

然后是在t四时间点DRN利用t一到t四阶段的用户点击数据以及用户活跃度数据进行模型的主更新。

那随着时间线不断的延长,我们就不断重复t一到t四这三个阶段的操作。

那这其中我要重点强调两个操作,一个是在t四时间点出现的模型主更新操作。

我们可以理解为利用了历史数据的重新训练,用训练好的模型来替代现有的模型。

另一个是t二和t三时间点提到的模型微更新操作。

想要搞清楚它是怎么回事,还真不是那么容易,必须要牵扯到DQN使用的一种在线训练方法,竞争梯度下降算法。

那我把竞争梯度下降算法的流程图放在了文稿里。

那接下来我就结合它来给你详细讲一讲竞争梯度下降算法的过程和它涉及的模型微更新操作。

那DRN的在线学习过程主要分为三个步骤。

那第一步是给已经训练好的当前网络q的模型参数w添加一个比较小的随机扰动,得到一个新的模型参数。

这里我把它对应的网络叫做呃探索网络q一撇。

那在这一步中,由当前网络q生成的探索,网络产生随机找动的方式是由文稿中的公式一定义的那在这个公式,阿尔法指的是一个探索因子,决定了了索索度的大大,而round负一到一产生了一个负一到一之间的随机数来产生这个随机扰动。

第二步是对当前网络q和探索,网络q一撇分别产生推荐列表l和l一撇。

再把这两个推荐列表用间隔穿插的方式融合起来,组成一个推荐列表后推送给用户。

最后一步是实时收集用户反馈的过程。

如果探索网络q一撇生成的内容的效果要好于当前网络q那就用探索网络代替当前网络进入下一轮迭代。

但如果不好,我们就保留当前的网络。

总的来说,DRN的在线学习过程利用了探索的思想,它的调整模型的力度可以精细到每次获得反馈之后,这一点很像随机梯度下降的思路。

虽然一次样本的结果可能产生随机找动,但只要总的下降趋势是正确的,我们就能够通过海量的尝试达到最优点。

那DRN正是通过这种方式,让模型时刻与最新鲜的数据保持同步,实时的把最新的奖励信息融合进模型中。

那模型的每次探索和更新,也就是我们之前提到的模型微更新到这里,我们就讲完了微软的深度强化学习模型DRN.我们可以想这样一个问题,这个模型本质上到底改进了什么?从我的角度来说,它最大的改进就是把模型推断模型更新、推荐系统工程,整个一体化了让整个模型学习的过程变得更加高效能。

根据用户的实时奖励学习到新知识,做出最实时的反馈。

但同时,也正是因为工程和模型紧紧的耦合在了一起,让强化学习在推荐系统中的落地并不容易。

那既然说到了强化学的落地,这里我还想多说几句啊。

因为涉及到了模型训练、线上服务、数据收集、实时模型更新等几乎所有推荐系统的工程环节。

所以强化学习整个落地过程的工程量其实非常大。

这不像我们之前学过的深度学习模型,改进一个模型结构,只要重新训练一下就可以了。

那强化学习模型需要工程和研究部门通力合作才能够实现。

在这个过程中能不能有一个架构师一样的角色来通盘协调,就成为了整个落地过程的关键点。

有一个环节出错。

比如说模型在做完实时训练后,模型参数更新的不及时,那整个强化学习的流程就被打乱了,整体的效果就会受到影响。

所以对我们个人来说,掌握强化学习模型的框架,就多了一个发展的方向。

而对于团队来说,如果强化学习能够成功落地,也一定证明了这个团队有着极强的合作能力。

在工程和研究方向上都有着过硬的实践能力。

好了,今天的内容讲完了,我们一起来做个总结。

那强化学习是近来在学术界和业界都很火的话题,它起源于机器人领域。

这节课我们重点掌握了强化学习的通用过程,以及它在深度学习中的应用细节。

简单来说,强化学习的通用过程就是训练一个智能体,让它通过与环境进行交互,不断学习,强化自己的智力,并指导自己的下一步行动,以取得最大化的预期收益。

这也让强化学习在模型实时更新、用户行为快速反馈等方向上拥有巨大的优势。

但强化学习的落地并不容易,整个落地工程的工程量非常大。

那现阶段我们只需要以微软的DR模型作为参考,重点掌握强化学习在推荐系统领域的应用细节就可以了。

那其中一个是DRN构建了双塔模型作为深度推荐模型来得出行动得分。

第二个是DRN模型的更新方式。

它利用微更新实时的学习用户的奖励反馈、更新推荐模型,再利用阶段性的主更新学习全量样本更新模型。

第三个是微更新的方法,竞争梯度下降算法。

它通过比较原网络和探索网络的实时效果来更新模型的参数。

为了方便你复习,我们把这节课的重点知识总结在了文稿的表格中。

你可以看一看。

那最后我们再来看一道课后题,那DRN的微更新用到了竞争梯度下降算法。

那你觉得这个算法有没有弊端呢?你还知道哪些可以进行模型增量更新或者实时更新的方法吗?欢迎把你的思考和疑问写在留言区。

如果你的朋友也在关注强化学习,在推进系统上的发展,那不妨也把这节课转发给他们。

我们下节课见。