登录    注册      
    
  

News Message

基于深度强化学习的新闻推荐模型



基于深度强化学习的新闻推荐模型



一、Introduction

在新闻推荐业务中,虽然很多机器学习模型有较好的建模能力,但是仍有如下问题:

  • 新闻推荐中的动态变化难以处理

动态变化表现在两种层次:一个是新闻的时效性,可能会很快过时;另一个是用户的浏览兴趣,随着时间会动态变化。虽然通过在线学习的方式可以捕获新闻特征和用户兴趣的动态变化,但是这些方法只注重短期回报,并未考虑长期回报。

  • 仅使用是否点击作为用户反馈

现有方法只考虑是否点击或者打分来作为用户的反馈。作者提出引入用户返回APP的时间,因为该指标也反映了用户对推荐的满意度。

  • 现有方法推荐结果重复较多

现有方法倾向于给用户推荐相似item,而这将降低用户对相似topic的兴趣,也不利于探索用户新的兴趣。

二、所提模型

为了解决上述问题,作者提出了基于DQN的框架来进行实时新闻推荐。具体来说,将用户和news的特征表示输入给Deep Q-Network来预测可能的reward,也就是用户点击news的概率。该框架通过DQN的在线更新来处理新闻推荐中的动态变化,并注重长期回报。框架除了用户click的反馈之外,引入了user activeness(用户在一次推荐后返回到APP的频率)作为回报。另外为避免传统的exploration策略比如 [公式] 或UCB可能带来的不准确推荐,作者引入Dueling Bandit Gradient Descent策略来改善推荐的多样性。

  • 模型框架
模型框架

如下图,整体框架包括离线和在线两部分。所需信息主要是从news和user中抽取4类特征,Deep Q-network则根据这4类特征来预测reward(用户click和activeness的结合)。离线部分主要是使用离线的用户点击日志来训练,给点击和未点击的news不同的奖励,然后训练一个Q网络。这部分和论文作者聊过,其实就是一个监督学习的过程。在线部分涉及推荐agent和用户的交互过程,按下面的流程对网络进行更新:

  1. Push:每当用户发送一个请求,推荐智能体G会根据用户和候选news集合的特征表示,综合exploitation和exploration生成top-k的news列表L。
  2. FeedBack:用户针对接受的列表L将会有点击行为。
  3. Minor Update:在每个时间戳后,根据user、news列表L和反馈B,智能体G将会比较exploitation network Q和exploration network [公式] 的推荐效果来更新模型。如果 [公式] 给出的效果更好,则将Q往 [公式] 的方向更新,否则Q保持不变。每次推荐发生之后都会进行Minor update。
  4. Major Update:在一个特定时期 [公式] 后,智能体G将使用用户反馈B和用户activeness来更新网络Q。这里使用经验回放来实现,智能体G保存近期历史click和用户activeness记录,当触发Major Update时,智能体随机选择一个batch来更新模型。Major Update通常间隔比如一个小时来进行,在这段时间会收集很多次的展现和反馈的记录。
  • 特征构造

针对预测用户是否会点击某个news,文中构造了4大类特征,包括News Feature、User Feature、User News Feature和Context Feature。篇幅有限,这里不再细讲。

  • 深度强化推荐

考虑到新闻推荐中的动态变化和长期回报,文章使用DQN来建模用户是否点击某一news的概率,而这一概率也是智能体能得到的奖励即reward。文章对total reward进行如下形式化:

[公式]

其中状态state表示成context feature和user feature,而动作action表示成news feature和user-news交互特征, [公式] 和 [公式] 分别表示当前情况下奖励(也就是用户是否点击新闻)和未来回报。给定当前状态s、动作a和时间戳t,使用DDQN来对total reward进行预测:

[公式]

其中 [公式] 表示采取动作a的立即回报, [公式] 和 [公式] 表示DQN中的两个不同参数集合。首先给定候选动作集,在参数 [公式] 的设置下根据长期回报最大选择出动作 [公式] 。然后估计 [公式] 采取动作 [公式] 所得到的长期回报。每几轮迭代之后 [公式] 和 [公式] 将互换。DDQN可解决Q值过高估计的问题。通过这个过程,模型可兼顾total reward进行决策。

Q-network

Q network如上图所示。底层将四类特征输入到网络中,user feature和context feature作为state feature,而user-news feature和news feature作为action feature。一方面,在一个特定状态采用某个动作的reward和所有特征均有关。另一方面,reward受user本身特征的影响要大于只用用户状态和context特征。基于此,文中类似Dueling Network将Q函数分解成V(s)和A(s,a),其中V(s)只受state特征影响,而A(s,a)则会受到state特征和action特征影响。

  • User activeness

文中采用留存模型来对用户activeness来建模。时间t后用户返回App的概率定义为 [公式] ,其中一个生命周期 [公式] (文中 [公式] 设为一天)。每次检测到一个用户返回App,我们将使得 [公式] 。如下图,开始时 [公式] ,然后activeness衰减,在 [公式] 时刻用户返回App,使得activeness增加 [公式] ,后续以此类推。整个过程保证活跃度保持在0-1之间,如果超过1的话直接截断成1。这里 [公式] 、 [公式] 等值的设定都是数据中的真实用户行为模式确定的。

User Activeness Estimation
  • Exploration

常见的探索方法包括 [公式] 和UCB等,其中前者会随机推荐一些新item,后者会选择一些未探索充分的item,这些都会导致推荐效果有一定下降。因此作者使用了Dueling Bandit Gradient Descent算法(最早来自online LTR领域)来进行exploration。智能体G使用当前网络Q产出推荐列表L,并使用explore网络 [公式] 产生另一个推荐列表 [公式] 。 [公式] 的参数可以通过Q的参数基础上增加微小扰动得到。然后使用L和 [公式] 进行interleave来产生一个融合的列表 [公式] 。如果探索网络[公式] 产生的item得到更好的反馈,则智能体G将网络Q向[公式]的方向更新,表示为[公式] ,否则Q的参数保持不变。

基于Dueling Bandit Gradient Descent的探索

三、总结

这篇文章结合了一些已有的DQN及改进实现了强化学习在新闻推荐上的应用,其中的框架设计和exploration机制值得相关的业务场景进行借鉴。



Share Http URL:  http://www.wittx.cn/get_news_message.do?new_id=539



请输入评论