推荐系统中如何使用强化学习呢?
一、推荐中如何定义强化学习的几个元素
方式1:
Agent:推荐引擎。
Environment:用户。
Reward:如果一条新闻被点击,计+1,否则为0。一次推荐中10条新闻被点击的新闻个数作为Reward。
State:包含3个部分,分别是用户标签、候选新闻的新闻标签和用户前4屏的点击历史(如果没有就置0)。
Action:推出的10篇新闻。
方式2:
状态S:定义为用户的使用历史,比如用户过去在时间 t 前点击、下载、安装、购买过的 N 个 item。而且这个序列要按照时间顺序。
动作A:被模型基于用户状态 s计算出来的一个推荐列表(多个item)
奖励R:推荐智能体给出了at之后,用户会给出他的反馈,他可以进行曝光、点击、下单,智能体立即根据这些反馈计算出来奖励
二、与ctr预估的区别
Ctr预估只考虑预测新闻的点击率,不考虑具体的推荐策略。利用ctr进行的推荐的流程通常是预测候选新闻的ctr,策略部分是人为规定的规则,可以简单的取top10或者经过各种过滤,去掉重复,规定不同大类下的新闻个数之后取10个新闻,然后推荐给用户。强化学习可以说一方面在给新闻预测得分的同时,另一方面考虑了推荐的策略,也就是说策略部分也由模型自己学到。
Ctr模型的推荐过程只考虑了单次推荐里用户的点击率,对于不同的Session之间无法建模。相反,强化学习的本质是用于解决序列决策问题,在给用户第一次推荐的时候,就可以考虑之后第5次、第10次推荐的收益(由参数决定),让用户在整个浏览app的过程中的点击量最高,这一点是ctr完全无法胜任的。
当然强化学习也有缺点,就是训练复杂,往往需要更细致的参数设置和更多训练trick才可能有效。Ctr预测则是一个完全常规的有监督问题,输入用户和新闻特征,拟合ctr,训练起来相对强化学习简单许多。
Deep Reinforcement Learning for List-wise Recommendations(京东发表的论文中文理解)