原文:https://arxiv.org/pdf/1811.05869.pdf
近两年来,由于强化学习(RL)与生俱来的考虑长期交互与规划的特性,频繁被用在交互式推荐系统(IRS)当中。IRS通常会有大量的items用来做推荐(action空间很大)候选,尤其是在一些基于RL 的方法当中,然而,要处理大规模的离散的动作空间以及性能问题通常是很困难的。当前,通常用DDPG处理大规模离散空间的问题,however,同样面临着连续动作表达与真实离散动作不一致的问题。为了解决这种不一致,获得更高的性能和推荐效果,作者提出了TPGR模型,在items上构建了一棵平衡层次聚类树,这样一来,检索一个item的过程可以看成是从树的根节点开始到叶子节点的一次检索。后续的试验当中,作者模拟了Environment来验证TPGR,结果也是SOTA的。
Problem definition:
1.State,用户与RS的交互历史数据,用RNN网络编码成低维向量。文中用的是是一种RNN的简化版本SRU,具体实践过程中又加了些先验来生成state
2.Action,被定义为挑选一个item用来推荐,如一首音乐或者一部视频等等。
3.Reward,用户对推荐物品的反馈
4.Transition,在当前state下,推荐item ,并且给出相关的反馈,状态转移就确定了
一个trajectory可以认为是一系列的user state,recommended action,user's feedbacks,e.g.(s1,a1,r1,s2,a2,r2,···,sn,an,rn,sn+1)。
Tree-structured Policy Gradient Recommendation Intuition for TPGR
为了解决大规模离散空间的问题并且获得好的推荐效果,首先构建了一棵平衡层次聚类树(Figure 1 left),之后用策略梯度的方法在这颗构建好的树上面学习一个在非叶子节点选择最优子节点的策略(Figure 1 right),在这颗树当中,所有的item都被映射到了叶子节点上,所有的非叶子节点都与一个策略网络相关联(尽管途中仅仅显示了三个)。在这种前提下,给定state,在策略网络的指导下,来做一次从root节点到叶子结点的检索,找出相关的item推荐给特定给该用户。
Balanced Hierarchical Clustering over Items
一种很流行的方法是分割法,即把原始数据分割成一些列的簇,之后用同样的方法将这些簇分割成不同的子簇,直到每个子簇只包含一个item。本文当中,构建了一棵简单的平衡聚类树,该树的每一个非叶子节点具有相同的子节点(c),叶子节点的父节点至多含有c个子节点。具体到实现算法上面,文中实验了两种分割方法,PCA 和K-means,具体实伪代码如图2.图3
图2.K-means_based balanced cluster 图3.PCA_based balanced cluster如此一来,对于item集合A和聚类树的深度d,显然有 ,so,可以设置。至于item的表示,文中用三种不同的方法表示,rating_based,mf_based(pmf),vae_based。
Architecture of TPGR
TPGR是基于构建好的聚类树的,简化说明,假设status point表示当前所处的节点,这样一来,挑选item的过程就是把status point从root移动到leaf node。 每一个非叶子节点都和一个policy network相关联,而这些policy network都是由输出层是softmax的全连接网络构建的。假设status point现在到了节点v,policy network 以当前状态作为输入,输出v子节点的概率分布,来表示status point移动到每个子节点的概率,举例来说,用只有八个item的推荐场景来说明一下,生成的平衡聚类树如图一的左边部分,给定,status point初始的时候在root(),之后根据子节点的概率分布移动到它的一个子节点(),同时status point也跟着移动,直到到达叶子结点,然后把该叶子结点推荐给用户。
既然文章是按照policy gradient的思想来做的,那么,它的目标函数还是很明确的,最大化折扣回报期望,即公式3,同时策略每次的更新也就是公式4.
1.Deep Reinforcement Learning in Large Discrete Action Spaces
2.Auto-Encoding Variational Bayes
网友评论