推荐系统中如何使用强化学习呢?

一、推荐中如何定义强化学习的几个元素

方式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(京东发表的论文中文理解)

posted @ 2021-02-22 17:44  光彩照人  阅读(869)  评论(0编辑  收藏  举报