01.基于深度强化学习的新闻推荐算法

论文阅读笔记系列:编号01

文章标题:DRN: A Deep Reinforcement Learning Framework for News Recommendation

 

一、摘要:

文章主要框架:深度强化学习框架的新闻推荐

文章主要解决问题:新闻特性和用户偏好的动态性前提下的在线个性化新闻推荐

当前推荐存在的三个问题:

  1. 只尝试模拟当前的奖励(例如:点击率)。
  2. 除了 点击/不点击 标签外很少考虑使用 用户其他反馈(例如,用户返回的频率)
  3. 倾向于不断向用户推荐类似的新闻

提出基于 Deep Q-Learning 的推荐框架,具有的创新或优势如下:

  1. DQN的特点可以明确模拟未来的奖励
  2. 进一步将用户返回模式作为点击/不点击标签的补充
  3. 采用有效的探索策略,寻找对用户有吸引力的新新闻

结果:在一个商业新闻推荐应用的离线数据集和在线生产环境上进行了大量的实验,证明了方法的优越性能。

 

二、介绍

需要研究的原因:在线内容和服务的爆炸性增长、无法消化的海量内容、个性化的在线内容推荐是提高用户体验的必要手段。

利用DQN的原因:基于内容的方法、基于协同过滤的方法、混合推荐方法不能有效解决新闻推荐中的以下三个挑战

  • 第一、新闻的动态变化
  1. 很快过时(一条新闻的发布和它的最后一次点击之间的平均时间是4.1小时)、新闻特征和新闻候选集也在迅速变化
  2. 用户对不同新闻的兴趣可能会随着时间的推移而变化(如图 Figure 1)、所以必要对模型进行周期性的更新。现有方法没有考虑很多的未来、但从长远来看,考虑未来的奖励将有助于提高推荐绩效(比如体育新闻可能比天气新闻在长远上更有吸引性)。

01.基于深度强化学习的新闻推荐算法

  • 第二、用户反馈的多样化

       目前的推荐方法通常只将 点击/不点击 标签 或 评级 作为用户的反馈,一个用户多久会返回到这个服务也会显示这个用户对这个推荐的满意程度,在整合用户反馈模式以帮助改进推荐方面却鲜有工作

  • 第三、倾向于不断向用户推荐相似的项目

       需要加入必要的探索,现有有以下两种,但这两种策略都可能在短时间内对推荐绩效产生一定的影响:

       ϵ-greedy :可能建议客户提供完全无关的物品

       Upper Confidence Bound (UCB):不能得到一个相对准确的奖励评估一个项目直到这个项目已经被尝试过好几次了

 

文章框架解决问题的思路:

  1. DQN方法考虑未来的奖励(也列举其他相关强化学习推荐算法做对比)
  2. 通过维护活跃度评分,并可考虑用户的多个历史返回时间间隔信息,以更好地度量用户反馈。此外,模型可以在任何时候(而不仅仅是在用户返回时)估计用户的活动。
  3. 提出新的 Dueling Bandit Gradient Descent(DBGD) 方法,在当前推荐器的邻域内随机选择候选项。这种探索策略可以避免推荐完全不相关的项目,从而保持更好的推荐准确性。

系统的整体框架(图:Figure 2):

  1. 环境:用户池+新闻池
  2. 算法:推荐代理
  3. 状态:用户的特征表示(比如:活跃度)
  4. 动作:新闻的特征表示(比如:推荐 or 不推荐)
  5. 流程:用户请求新闻>>>状态和动作传递给代理>>>代理采取行动(比如:向用户推荐一个新闻列表)并获取用户反馈作为奖励>>>反馈存储与代理的内存中,每一小时更新一次。

01.基于深度强化学习的新闻推荐算法

 

三、相关工作

以往的一些推荐系统:

  1. 基于内容的方法

  2. 协同过滤

  3. 混合推荐

基于RL的一些推荐系统:

  1. Contextual Multi-Armed Bandit models.
  2. Markov Decision Process models. 

 

四、参数定义

        当用户 u 在时间 t 向推荐代理 G 发送新闻请求时,给定候选新闻集 I ,我们的算法将为该用户选择一个 top-k 中适合的新闻列表L。Table 1 总结了使用的符号:

01.基于深度强化学习的新闻推荐算法

 

五、方法

 

模型框架:离线+在线(Figure 3)

  • 离线:从新闻和用户中提取四种特征(详细在下面),通过这些特征使用DQN来预测奖励(即用户新闻点击标签和用户活跃度的结合)
  • 在线:通过代理与用户之间的交互,并以下列方式更新网格:
  1. PUSH:在每一个时间戳(t1、t2、t3、t4、t5…),当用户向系统发送一个消息请求,推荐代理G将当前用户的特征表示和新闻候选人作为输入,并生成一个top-k新闻推荐列表L,L生成结合当前模型的开发(将在4.3节讨论)和探索新奇的物品(将在4.5节讨论)。
  2. FEEDBACK:收到推荐新闻 L 的用户 u 会通过点击这组新闻给出反馈 B 。
  3. MINOR UPDATE: 在每一个时间戳(例如,t1后),与前面的特征表示用户 u 和新闻列表 L 和反馈 B,代理 G 将更新的模型通过比较推荐性能开发网络 Q 和探索网络 Q˜ (将在4.5节讨论)。如果Q˜提供更好的推荐效果,当前网络对Q˜将被更新。否则Q将保持不变。次要更新可以发生在每个推荐印象发生后。
  4. MAJOR UPDATE:经过一段时间TR(例如:t3后),agent G将使用存储在内存中的用户反馈 B 和用户活跃度来更新网络 Q 。在这里,我们使用  experience replay technique  来更新网络。具体来说,代理G维护一个内存,其中包含最近的历史单击和用户活动记录。每次更新发生时,代理G将抽取一批记录来更新模型。主要更新通常发生在一定的时间间隔,比如一小时,在这段时间内,会进行数千次推荐观感,并收集他们的反馈。
  5. Repeat step 1-4.

01.基于深度强化学习的新闻推荐算法

 

 

特征建设:为了预测用户是否会点击某条新闻,构建了四类特征如下:(此处特征没有实际的参考,很难理解)

  1. 新闻特征:包括417个维度热点特征,描述特定属性是否出现在该新闻中,分别包括标题、提供者、排名、实体名称、类别、主题类别和最近1小时、6小时、24小时、1周和1年的点击计数。(此处不理解为何417维度只有这几个(⊙o⊙))

  2. 用户特征:主要描述用户在1小时、6小时、24小时、1周、1年内点击的新闻的特征(标题、提供者、排名、实体名称、类别、话题类别)。对于每个时间粒度,还有一个总点击计数。所以总共有413×5 = 2065个维度。(不理解)

  3. 用户-新闻特征:这些25维特征描述了用户与某条新闻之间的交互,即实体(也包括类别、主题类别和提供者)在用户阅读历史中出现的频率。(不理解)

  4. 上下文特征:这些32维特性描述了发生新闻请求时的上下文,包括时间、工作日和新闻新鲜度(请求时间和新闻发布时间之间的间隔)。(不理解)

 

深度强化学习推荐:

        DQN总报酬方程:Equation 1

01.基于深度强化学习的新闻推荐算法

        DDQN总体框架:状态 s 由 上下文特性 和 用户特性 表示,动作 a 由 新闻特性 和 用户-新闻交互特性 表示,r immediat 为当前情况提供奖励(例如,用户是否点击了这条新闻),r future 为代理提供对未来奖励的预测。γ 是一个折现因子来平衡当前奖励和未来奖励的相对重要性。具体地说,给定 s 为当前状态,我们使用 DDQN 目标,通过在时间戳 t 采取行动 a 来预测总奖励,如 Equation 1 所示:

01.基于深度强化学习的新闻推荐算法

其中,ra,t+1 通过行动 a 表示即时奖励(下标t+1 是因为奖励总是延迟 1个时间对比当前的动作)这里,Wt  和 W ' t 表示DQN的两组不同的参数。在这个公式中,我们的代理 G 将推测下一个状态 sa,t+1,假设动作 a 被选择。在此基础上,给定一个候选动作集 {a '} ,根据参数Wt 选择给出最大未来奖励的动作 a ' ,之后根据W 't 计算给出状态 sa, t+1的未来估计奖励,每隔几次,将Wt 和 W ' t  交换。该策略已被证明可以消除Q的过拟合。通过这个过程,DQN将能够同时考虑当前和未来的情况做出决策。

        如图4所示,我们将四类特征输入到网络中。用户特性上下文特性 被用作 状态特性,而 用户新闻特性上下文特性 被用作 动作 特性。一方面,在一定状态 s 下采取行动 a 的奖励与所有特征密切相关。另一方面,由 用户自身特征 (例如,用户是否活跃,用户今天是否阅读了足够的新闻)决定的奖励更多地受到 用户状态 和 上下文 的影响。基于这种观察,我们将Q -函数分为 价值函数 和 优势函数 ,其中v(s)仅由 状态特征 决定,a (s,a)由 状态特征 和 动作特征 决定。(此处缺少相应算法知识,未理解)

 

01.基于深度强化学习的新闻推荐算法

 

用户活跃度:

        传统只考虑 CTR-like metrics ,解释用户会在观看新闻时切出,切回,并且总是在切回(未点击新闻时)刷新。

        使用 survival models 去模拟用户返回和用户活跃度。(此处主要记录如果通过用户返回时间维护用户活跃度),并提出可能替代的方法:Poisson point process

(详细见: 

survival models :

Joseph G Ibrahim, Ming-Hui Chen, and Debajyoti Sinha. 2005. Bayesian survival analysis. Wiley Online Library

Rupert G Miller Jr. 2011. Survival analysis. Vol. 66. John Wiley & Sons.

How Jing and Alexander J Smola. 2017. Neural survival recommender. In Proceed-ings of the Tenth ACM International Conference on Web Search and Data Mining.ACM, 515–524.

Poisson point process:

Nan Du, Yichen Wang, Niao He, Jimeng Sun, and Le Song. 2015. Time-sensitive recommendation from recurrent user activities. InAdvances in Neural Information Processing Systems. 3492–3500.

 

探索:Dueling Bandit Gradient Descent (Figure 7)

01.基于深度强化学习的新闻推荐算法

        代理G将使用当前的 网络 Q 生成一个推荐列表L ,和 使用一个探索网络Q˜ 生存另一个列表 L˜ 。Q˜ 网络的参数 W˜ 可以通过添加一个干扰 ∆W (Equation 7)  到 W 中 对应当前的网络 Q

01.基于深度强化学习的新闻推荐算法

       其中,01.基于深度强化学习的新闻推荐算法为探索系数,rand(−1,1)为-1和1之间的随机数。然后,代理G将做一个概率交错(probabilistic interleave )生成合并 Lˆ 使用L和Lˆ 推荐列表。确定项目推荐列表中的每个位置ˆL,概率之间的交错方法基本上首先随机选择列表L和˜L。假设选择L, L的一个项目我将投入ˆL L的概率取决于它的排名(选择项与最高的排名将会有更高的概率)。然后,列表ˆL将建议用户u和代理G将获得推荐的反馈如果项目探索网络˜问得到更好的反馈,代理G将更新网络向˜,与网络的参数。(Equation 8)

01.基于深度强化学习的新闻推荐算法

否则,代理G将保持网络Q不变。通过这种探索,agent可以在不损失太多推荐准确度的前提下进行更有效的探索。