推荐系统
INTRODUCTION
- 新闻的数据量非常大,对用户进行个性化推荐十分有必要
- 当前新闻推荐存在的三个问题
- 新闻的时效性很低。随着时间的推移,用户的喜好会发生转变,因此,有必要定期更新模型,当前虽然有一些在线推荐方法可以通过在线模型更新捕捉新闻功能和用户偏好的动态变化,但他们只是尝试优化当前奖励
- 目前的推荐方法通常只考虑点击/不点击标签或评级作为用户的反馈。 但是,一个用户多久将返回此应用也将表明该用户对该推荐的满意度。
- 当前倾向于继续向用户推荐类似项目,这可能会降低用户对类似主题的兴趣。 在文献中,一些强化学习方法已经提出在添加新项目的决定中增加一些随机性(即,探索)。现有的一些改进策略不不足是可能会在短期内在一定程度上降低推荐准确率。因此,仍然需要更有效的探索。(也就是,即能够探索又不会那么降低推荐效率)
- 因此,在本文中,我们提出了一个深度强化学习框架,可以帮助解决在线个性化新闻推荐中的这三个挑战。
- 为了更好地模拟新闻特征和用户偏好的动态性,我们建议使用深度Q学习(DQN)框架。该框架可以同时考虑当前奖励和未来奖励。我们的框架使用DQN结构,可以轻松扩展。
- 我们通过维护每个用户的活跃度分数来将用户返回视为另一种形式的用户反馈信息。不同于现有工作,只能考虑最近的返回间隔,我们考虑多个历史返回间隔信息,以更好地衡量用户反馈。此外,我们的模型可以随时估计用户的活跃度(不仅仅是在用户返回时)。此属性启用DQN中使用的体验重播更新。
- 我们建议通过选择当前推荐者附近的随机项候选来应用决斗强盗梯度下降(DBGD)方法进行探索。这种探索策略可以避免推荐完全不相关的项目,从而保持更好的推荐准确性。
- 具体的强化学习过程
- 用户池和新闻池构成了环境,我们的推荐算法扮演着代理的角色。
- 状态被定义为用户的特征表示,并且动作被定义为新闻的特征表示。
- 过程:
- 每当用户请求新闻时,状态表示(即,用户的特征)和一组动作表示(即,新闻候选的特征)被传递给代理。
- 代理将选择最佳动作(即,向用户推荐新闻列表)并获取用户反馈作为奖励。
- 具体而言,奖励由点击标签和用户活动性的估计组成。
- 所有这些推荐和反馈日志将存储在代理的内存中。每隔一小时,代理将使用内存中的日志来更新其推荐算法。
PROBLEM DEFINITION
当用户u在时间t向推荐代理G发送新闻请求时,给定新闻的候选集I,我们的算法将为该用户选择前k个适当新闻的列表L.
METHOD
当在线情景中发生新闻推荐问题变得更具挑战性。
- 由于新闻特征和用户偏好的高度动态性,需要在线学习。
- 只使用点击/不点击标签不会捕获用户对新闻的完整反馈。
- 传统推荐方法倾向于推荐类似的项目,并将缩小用户的阅读选择范围。 这将使用户感到厌倦并导致长期用户满意度降低。
Model framework
Feature construction
- News features
- User features
- User news features
- Context features
Deep Reinforcement Recommendation
- user features和context features用作状态特征,而user-news eatures和context feature用作action feature。
- 一方面,在特定状态下采取行动的奖励与所有特征密切相关。
另一方面,由用户自己的特征确定的奖励(例如,该用户是否活跃,该用户今天是否已经阅读了足够的新闻)更受用户状态和上下文的影响。 - 基于这种观察,我们将Q函数分为值函数V(s)和有利函数A(s,a),其中V(s)仅由状态特征确定,并且A(s,a)由状态特征和动作特征决定。
Explore
- 解决推荐的新闻种类无变化问题
- 代理G将使用当前网络Q生成推荐列表L,并使用探索网络Q~生成另一个列表L〜。 网络Q~的参数W~可以通过向当前网络Q的参数W添加小干扰ΔW来获得。
- 我理解的:就是一个Q网络用来利用 ,另一个Q网络用来探索。解决强化学习的探索和利用困境,达到增加新颖度的目的。
- 具体怎么将两个Q网络所获取的推荐值选择出来放入候选列表L中:
- 通过新闻在各自网络中的候选列表中的排名进行随机概率抽取,
- 如果抽到就放入L中,
- 同时,如果探索网络推荐的值有更好的反馈,
- 那么将Agent更新网络Q向探索Q。
- 否则,代理G将保持网络Q不变。
- 通过这种探索,代理可以做更有效的探索而不会失去太多的推荐精度。