序列推荐SRS 交互式推荐IRS 对话推荐CRS 以及建模为MDP后的区别

2024-02-06 22:38

本文主要是介绍序列推荐SRS 交互式推荐IRS 对话推荐CRS 以及建模为MDP后的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

序列推荐

  1. SRS:通过用户历史交互数据预测用户下一个要点击的物品。history interaction -> recommend the next item
  2. 如GRU4Rec,将用户点击过的物品一个一个输入模型,预测下一个要点击的物品。
  3. 属于one-step prediction

交互式推荐

  1. IRS:是循环推荐,收集反馈的过程
  2. 多步决策过程:1)推荐一个列表;2)收集用户对于该推荐的反馈。然后往复循环这两个步骤。
  3. 属于multi-step interaction

对话推荐

  1. CRS:① IRS可以视为 CRSs 的一种早期雏形,CRSs 引入了更多的交互模式,其核心任务是关注如何问问题,即什么时候问问题(不一定是对话的形式,也可以是给出选项让用户选择的形式),什么时候做推荐。
  2. 相比较task-oriented dialogue system,CRSs 关注的重点并不在于语言,而是推荐的质量。CRSs 的核心任务,还是利用其交互的能力去想方设法获得用户喜好,做出高质量体验。与此同时,CRSs 的输入输出可以用基于规则的文本模版来实现。当然,这并不代表语言不重要。随着技术的的发展迭代以及学者们研究方向的重合,不同领域的差距将越来越小。
  3. 例如,其可以主动问用户问题,例如问关于商品属性的问题:“你喜欢什么样颜色的手机?”“你喜欢关于摇滚类乐曲吗?”丰富的交互模式克服了交互式推荐系统的三个问题(太单调;需要在信息充足时推荐;用推荐商品刺探用户喜好是低效的),用更高效的方式来进行交互,从而快速获得用户的兴趣爱好,在信心比较充足的情况下,才作出推荐。

建模为MDP过程的SRS与IRS是一样的吗?

先说结论:可以! 原因如下:

  1. 二者的核心区别在于SRS是离线模型,IRS是在线策略,即前者只推荐一次,后者需要循环推荐。
  2. 离线模型:模型在一系列静态的历史数据上学习,可以当成单点学(传统推荐)或者序列学(SRS),不过都是静态的学,最后在test data上进行测试。
  3. 交互式学习:需要不断提供反馈,因此是一个动态的过程。
  4. 举个栗子:我们想给用户推荐一双臭袜子,但是用户并没有买过(没有历史数据),那要如何评价推荐的好坏呢(evaluation)?对于离线/静态模型,通常是求precision和recall指标,也就是看该用户之前买过的商品和推荐的商品有多少是重合的。那在这种情况下,就没有办法评估啦!但是交互式模型会提供一个反馈(reward),如rating,这样我们就可以知道推荐的商品用户是否满意啦~ 不过这就有了一个问题,用户没有买过这个商品,我们却需要他的评分,该怎么办呢?通常,我们会建立一个environment simulator,专门做这个事情!感兴趣的同学可以去搜搜相关论文哈
  5. 因此,将序列推荐和交互式推荐都建模为MDP后,相当于都引入了反馈机制(reward),也都需要不停推荐,因此二者这个时候就是一样的啦。

思考

读了对话推荐的综述(Advances and Challenges in Conversational Recommender Systems: A Survey)后,产生了一些问题,以下是自己的一些思考:

  1. CRSs其实并不强调“对话”的概念,dialogue只是一种形式,就像论文里写的“any form of interactions between users and systems, including written or spoken natural language, form fileds, buttons, and even gestures” (这里的form fields指的是“表单”,如筛选的小窗口等) 他的重点是能够通过多轮交互引出用户偏好“through real-time multi-turn interactions, elicit the dynamic preferences of users”。

  2. Q:CRS和 ask question的关系? A:除了问问题,CRS还可以做其他事情不是问问题的交互,比如做可解释性(以聊天的形式来解释为什么推荐这个产品,对用户而言不是黑盒的了)。并且问问题不一定是通过对话来问,有可能是给出选项让用户选。

  3. Q:综述里的“Question-based User Preference Elicitation”部分,写的是关注“问什么问题可以引出用户偏好”以及“怎么根据用户反馈调整问题”。“Multi-turn Conversational Recommendation Strategies”关注“什么时候问问题,什么时候推荐,只有在有信心的时候才做推荐” 。“Natural Language Understanding and Generation”关注“怎么像人一样交流”,需要提取语义信息,这里就涉及到NLP领域了,“利用树形结构制定模板、端到端的方法”。
    那这三部分挑战,好像都在强调对话、textual呀,没有涉及到“written or spoken natural language, form fileds, buttons, and even gestures”这些交互手段啊? A:因为NLP-based 比较新,综述中没有强调早期的东西(基于规则的)。

  4. 和IRS的区别:
    Q:IRS强调“推荐一个物品,收到反馈”这样一个循环的过程(属于早期CRSs)。综述里写“they focus on improving the recommendation strategy online by leveraging real-time user feedback on previously recommended items.”可是强调推荐策略,不是应该的嘛?难道重点在“online”和“real-time”?可是IRS很多也是离线的呀,难道只有线上的、实时的才算IRS吗?A:IRS的出发点是online,用离线的学是一种妥协;IRS就是为了在线场景打造的。
    ②二者获取/刺探用户偏好的渠道不太一样。 IRS是推荐一个item之后,才能收到反馈,即获取用户偏好。但是CRS是通过交互的形式获取用户偏好。(前者靠推荐,后者靠交互)
    ③ 推荐item的步骤不太一样。IRS是每次都要推荐;CRS是交互多轮,有信心了才推荐;综述里还提到一个critquing-based recommender system,它是问一个问题推荐一个item。

这篇关于序列推荐SRS 交互式推荐IRS 对话推荐CRS 以及建模为MDP后的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/685768

相关文章

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

Java 关键字transient与注解@Transient的区别用途解析

《Java关键字transient与注解@Transient的区别用途解析》在Java中,transient是一个关键字,用于声明一个字段不会被序列化,这篇文章给大家介绍了Java关键字transi... 在Java中,transient 是一个关键字,用于声明一个字段不会被序列化。当一个对象被序列化时,被

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

解读@ConfigurationProperties和@value的区别

《解读@ConfigurationProperties和@value的区别》:本文主要介绍@ConfigurationProperties和@value的区别及说明,具有很好的参考价值,希望对大家... 目录1. 功能对比2. 使用场景对比@ConfigurationProperties@Value3. 核