zoukankan      html  css  js  c++  java
  • 推荐系统中如何使用强化学习呢?

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

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

  • 相关阅读:
    Zookeeper 笔记
    个人学习笔记
    VS Window窗体 (C#)程序 连接sql server 数据库
    每周总结 11.9~11.15
    需求分析 第七稿 功能实现进度09
    数据简单清洗和图标联动展示
    IDEA创建文件自动添加作者名及时间
    springcloudalibaba中文文档
    ContractHolder.parseAndValidateMetadata(Ljava/lang/Class;)Ljava/util/List;
    Sentinel fallback失效
  • 原文地址:https://www.cnblogs.com/gczr/p/14431719.html
Copyright © 2011-2022 走看看