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.
说推荐系统能够解决信息过载的问题。
但是传统的推荐系统只能是一种静态并且固定的方式做推荐。
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.在真实的数据上进行实验并且发现很流弊
由于基本的DQN模式输入state,输出的确是所有动作action(在推荐系统中action其实是推荐的物品)的价值,所有文中采用了状态动作对的方法。
DQN,表示可以看一下李宏毅老师的视频,超级推荐
然后先讲一下文章提出来的模型
文中还提出了一个pairwise的方法,即将距离当前最近推荐的同类型item但是是被拒绝或是无视的东西作为负item形成BPR的模式,如下图
DQN公式改变为
下面的就比较重要了哈
1.离线训练
主要讲一下数据的收集,off-policy b(st),这里采用的是离线的AC:采用的是监督学习的方法像基于NN的序列化推荐一样采用留一法训练off-policy b(st),然后将其当作是一个模拟器用于收集数据训练文中提出的模型。
2.离线测试
3.在线测试
好了好了又想学习推荐系统科研的小可爱们,但又不知道该怎样写代码的可以可我的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种推荐算法)
欢迎大家点小星星