Recommendations with Negative Feedback via Pairwise Deep Reinforcement Learning
Recommender systems play a crucial role in mitigating the problem of information overload by suggesting users' personalized items or services. The vast majority of traditional recommender systems consider the recommendation procedure as a static process and make recommendations following a fixed strategy.
说推荐系统能够解决信息过载的问题。
但是传统的推荐系统只能是一种静态并且固定的方式做推荐。
传统的推荐系统推荐的东西被拒绝后对推荐系统策略并没有任何影响,它依然会推荐类似的东西,而基于RL的推荐系统可以根据推荐被受阻而改变策略推荐其他的东西We model the sequential interactions between users and a recommender system as MDP and leverage reinforcement learning to
automatically learn the optimal strategies via recommending trial-and-error items and receiving reinforcements of these items from users' feedbacjk.
强化学习的有点在于可以根据不断尝试不断改进策略,就是它所达到的目标并不是什么准确率或者什么其他。
contributions
1.发现了负反馈的影响并且将其运用到了推荐当中
2.我们推出了一个基于RL的推荐系统,并且用到了负反馈和正反馈。
3.在真实的数据上进行实验并且发现很流弊
用户和items组成environment,然后推荐系统为agent由于基本的DQN模式输入state,输出的确是所有动作action(在推荐系统中action其实是推荐的物品)的价值,所有文中采用了状态动作对的方法。
你可以对召回后的商品每一个都试一下然后挑选价值最高的一个或是几个作为推荐结果DQN,表示可以看一下李宏毅老师的视频,超级推荐
然后先讲一下文章提出来的模型
浅蓝色是推荐的item被用户所接受,右边的是推荐的item被拒绝或是直接无视,和序列化推荐一致是最近的几个items文中还提出了一个pairwise的方法,即将距离当前最近推荐的同类型item但是是被拒绝或是无视的东西作为负item形成BPR的模式,如下图


DQN公式改变为


下面的就比较重要了哈
1.离线训练

主要讲一下数据的收集,off-policy b(st),这里采用的是离线的AC:采用的是监督学习的方法像基于NN的序列化推荐一样采用留一法训练off-policy b(st),然后将其当作是一个模拟器用于收集数据训练文中提出的模型。
2.离线测试
这里用的是每个用户点击过的items作为item set,因为其只有这些存在的数据才用相应的ratings3.在线测试
先离线训练好了在做真正的线上测试好了好了又想学习推荐系统科研的小可爱们,但又不知道该怎样写代码的可以可我的github主页或是由中国人民大学出品的RecBole
https://github.com/xingkongxiaxia/Sequential_Recommendation_System 基于ptyorch的当今主流推荐算法
https://github.com/xingkongxiaxia/tensorflow_recommend_system 我还有基于tensorflow的代码
https://github.com/RUCAIBox/RecBole RecBole(各种类型的,超过60种推荐算法)
欢迎大家点小星星


