序列推荐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

相关文章

MySQL 筛选条件放 ON后 vs 放 WHERE 后的区别解析

《MySQL筛选条件放ON后vs放WHERE后的区别解析》文章解释了在MySQL中,将筛选条件放在ON和WHERE中的区别,文章通过几个场景说明了ON和WHERE的区别,并总结了ON用于关... 今天我们来讲讲数据库筛选条件放 ON 后和放 WHERE 后的区别。ON 决定如何 "连接" 表,WHERE

Mybatis的mapper文件中#和$的区别示例解析

《Mybatis的mapper文件中#和$的区别示例解析》MyBatis的mapper文件中,#{}和${}是两种参数占位符,核心差异在于参数解析方式、SQL注入风险、适用场景,以下从底层原理、使用场... 目录MyBATis 中 mapper 文件里 #{} 与 ${} 的核心区别一、核心区别对比表二、底

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

C# Semaphore与SemaphoreSlim区别小结

《C#Semaphore与SemaphoreSlim区别小结》本文主要介绍了C#Semaphore与SemaphoreSlim区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、核心区别概览二、详细对比说明1.跨进程支持2.异步支持(关键区别!)3.性能差异4.API 差

Java中自旋锁与CAS机制的深层关系与区别

《Java中自旋锁与CAS机制的深层关系与区别》CAS算法即比较并替换,是一种实现并发编程时常用到的算法,Java并发包中的很多类都使用了CAS算法,:本文主要介绍Java中自旋锁与CAS机制深层... 目录1. 引言2. 比较并交换 (Compare-and-Swap, CAS) 核心原理2.1 CAS

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与