一、总述
离线强化学习(Offline RL)是交互推荐中的一种常用技术,它离线地学习离线数据以学习策略而不必与用户进行在线交互。Offline RL存在高估用户对离线数据中很少出现的物品的偏好的问题,当前采用了保守主义去解决这一问题,即尽量不去推荐这些很少出现的物品。当前采用了保守主义去解决Offline RL高估用户对离线数据中很少出现的物品的偏好的问题,即尽量不去推荐这些很少出现的物品。 然而这会导致严重的马太效应,即强者越强弱者越弱,不利于追求用户的长期满意度。在该篇论文中,作者提出了基于去偏模型的离线强化学习模型(Debiased model-based Offline RL,DORL),对多样性较低的推荐进行了惩罚。首先,作者使用离线数据训练了一个模拟用户的模型,它可以对推荐给它的视频进行”反馈“以模拟用户对该视频的偏好程度。然后,使用策略对该”用户“进行视频推荐,该”用户“面对多样性越低的推荐时的”反馈“会越差,以表明它不喜欢这一推荐视频。最后,策略接收”用户“的”反馈“再为”用户“进行推荐,进而不断地学习策略。
二、论文的工作
该论文主要进行了三步工作: 训练模拟用户的模型——GPM(Gaussian Process Model)、利用GPM来学习策略以及评价策略。
相较于在线场景,离线场景的痛点在于我们没法知道用户对于随意一个推荐动作的反馈。2.1 训练GPM就很好地解决了这个问题。
假设我们要给用户小红推荐视频,如果是在在线环境下,小红会对推荐的视频进行观看,观看率越大表明她越喜欢这个视频。但是在离线环境下,我们只有小红与部分视频的历史交互记录以及小红的信息和她观看过的视频的信息。如果为她推荐别的视频,那么在离线场景下是无法得知她的观看率的。因此,我们可以使用这些离线数据训练一个模型来模拟小红,从而可以在离线环境下得知小红对任意一个推荐视频的反馈。
然而我们还面临一个问题:假设小红喜欢看电影解说类的视频,如果我们一直推荐该类视频,可能出现下面的情况
一直为小红推荐这类视频单次会得到较好的反馈,但是这并不利于追求小红的长期满意度。试想一个总是推荐同一类或同几类视频的推荐系统怎么会招人喜欢呢,说不定小红还喜欢美食、教育知识……
总是推荐主流的视频而不推荐用户较少涉及的视频,即强者越强,弱者越弱。这就是马太效应。2.2学习策略就很好地缓解了这一情况。
2.1 训练GPM
首先,得到离线数据集Dataoff,它主要包括三个部分:XLogs(用户与视频的交互记录)、XU(用户信息)以及XI(视频信息)。得到的离线数据集并不是实际输入GPM的,我们需要筛选出需要的数据并对数据进行一定的处理,这一处理过程较为复杂,此处不多赘述。处理好后得到图2中的 ① :Xlog(整理后的交互记录)、XY(用户观看对应视频的标准化观看率)以及dictentro(离线数据中某视频出现的熵)。
以Xlog的一条数据为例:0 0 13 0 0 0.13746。表示0号用户观看过0号视频,该视频属于类别13且其标准化时长为0.13746。用户id、视频id以及视频所属类别等数据实际上是用一个8维向量表示的。
以XY的一条数据为例:0.24。表示0号用户观看0号视频的标准化观看率为0.24。标准化观看率是一维的向量。
以dictentro的第一条数据为例:(0,)=0.8554。表示当前时刻 t 或者前一时刻 t-1 推荐的是0号视频,在离线数据中,满足这一条件的推荐后面所紧跟的推荐视频的熵为0.8554。熵越大表示推荐地越随机,历史交互记录越不单调。这种情况下的学习更加无偏,因此要加大学习力度。
然后,将Xlog和XY传入GPM。GPM有三个子模型,每个子模型会模拟Xlog中出现的所有用户对所有视频进行偏好预测。以一个子模型为例,得到图2 中的 ③ :epre(偏好预测矩阵)和evar(方差矩阵)。
以epre的第一条数据为例:-0.12 0.01 0.24 0.15 0.07。表示GPM预测的0号用户观看0号视频的标准化观看率为-0.12,GPM预测的0号用户观看1号视频的标准化观看率为0.01 ……
以evar的第一条数据为例:0.0001 0 0.0009 0.0001 0。表示GPM预测的0号用户观看0号视频的标准化观看率的方差为0.0001,GPM预测的0号用户观看1号视频的标准化观看率的方差为0 ……
接着,计算损失loss。
其中,θk表示集成用户模型中的第k个子模型,σ2θk(xi)表示θk对样本xi的预测方差,fθk表示θk对样本xi预测的标准化观看率。yi表示样本xi的真实的标准化观看率。
最后,通过最小化loss来使GPM的预测更接近真实用户的反馈。
这样,就得到了一个可以模拟用户的模型了。每当输入给GPM一个视频id后,GPM的三个子模型就会模拟用户并给出预测的平均标准化观看率,还会给出GPM的三个子模型预测的方差,来刻画GPM的不确定性。方差越大表示GPM模拟的不确定性越高。
至此,离线场景中不能与用户进行在线交互的问题就被解决了。
2.2 学习策略
假设GPM模拟用户小红,策略πθ为模拟的小红进行推荐。为了进行推荐,πθ需要知道小红的用户id以及可以推荐的视频id,还有当前的状态S(S表示推荐的视频的id以及所属类别和标准化时长以及用户观看该视频得到的奖励)。如果曾为小红推荐过视频,还需得到小红对上一推荐的反馈。然后将要推荐的视频推荐给小红,小红再给πθ一个反馈……不停地交互,在这个过程中不断地学习策略。
首先, 我们得到小红的用户id以及可以推荐的视频id的最大值,将其传给策略πθ。πθ给出第一个推荐的视频id,即图4中的 a 。GPM的三个子模型得到小红的id以及视频的id,分别给出预测的小红观看该视频的标准化观看率和预测的方差,也即图4中的fθ1 ~ fθ3和σ2θ1 ~ σ2θk。
假设三个子模型预测的标准化观看率取平均后得到
r
^
\hat{r}
r^ = 0.7,预测的方差取最大值后得到PU = 0.5。PU衡量了GPM的不确定性,PU越大表明GPM的不确定性越大,GPM的模拟效果越差。
该论文的主要贡献在于为最终的奖励
r
~
{\widetilde r}
r
新增了一个惩罚项PE,来惩罚使历史交互记录变得更加单调的动作。实现为 2.1中的dictentro。查找dictentro中的(0,),得到PE=0.8554+1=1.8554(此处加1是因为当前只为小红推荐了一个视频而PE是dictentro中的(当前推荐的视频id,)以及(当前推荐的视频id,上一时刻推荐的视频id)的和,不足两个推荐则用1弥补)
然后, 计算最终的奖励
r
~
{\widetilde r}
r
=
r
^
\hat{r}
r^ - λ1PU + λ2PE
= 0.7-0.010.5+0.051.8554
=0.78777
接着, 更新状态。
a为推荐的视频的id以及所属类别和标准化时长拼接成的向量。视频id为1维的,四个所属类别和标准化时长都是8维的,at-1是41维的向量。r为用户观看该视频得到的奖励,为1维向量。经过步骤①和②,将a和r进行水平拼接,得到S。
将上一时刻的St-1和当前时刻的St经过步骤③,即将各个元素进行取平均的操作后得到下一时刻的St+1(还未进行推荐时,S为空向量)
最后, 将
r
~
{\widetilde r}
r
和St+1传给πθ,πθ再次为小红进行推荐……
经过不断地训练,πθ就可以更好地为小红进行推荐。因为增加了惩罚项PE,πθ就”明白“了如果一直为小红推荐电影解说类视频,小红的反馈就会不好,从而减少一直推荐这类视频而去丰富推荐的视频类别,缓解了马太效应。
2.3 评价策略
该论文采取了“Feel bored then quit”机制:若当前推荐商品与前序N个商品的相似度超过一定阈值,则认为用户会觉得无聊,不会再继续推荐,而是退出。
实验规定:在前N(N=4)轮推荐中只要有一个推荐视频所属的类别与当前推荐的视频所属类别相似,则结束交互,并且最多交互30轮。
随着N的增大,用户对相似内容的容忍度越低。
该论文使用的了4个评价指标,分别是累积奖励Rtra(将所有用户从开始至退出得到的所有奖励进行累加得到的)、交互轨迹的长度Length(将所有用户从开始至退出进行交互的轮数累加并取平均得到的)、单轮奖励Reach(Rtra/Length得到的)以及MCD。
MCD (Majority Category Domination),表示标记为主导类别的物品在推荐结果中所占的比例。假设某一用户共交互了10轮。推荐的10个视频中所属类别为主导类别的有3个,则其MCD为3/10=0.3 。将所有用户的MCD累加并取平均,得到MCD。
Rtra、Length和Reach越大,表示推荐效果越好。MCD越大表示推荐结果中的马太效应越强,推荐效果越差。
由图6,①的交互序列中的Rtra=0.6、Length=1、Reach=0.6/1=0.6、MCD=1/1=1,②的交互序列中的Rtra=0.4+0.2=0.6、Length=2、Reach=0.6/2=0.3、MCD=1/2=0.5.
由图7,DORL在两套数据集中四个评价指标的效果均较好,尤其是在Rtra和Length上的表现相当优越。表明了DORL在追求用户长期满意度上的效果突出,并且DORL的MCD指标较小,一定程度上缓解了马太效应。