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

相关文章

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Golan中 new() 、 make() 和简短声明符的区别和使用

《Golan中new()、make()和简短声明符的区别和使用》Go语言中的new()、make()和简短声明符的区别和使用,new()用于分配内存并返回指针,make()用于初始化切片、映射... 详细介绍golang的new() 、 make() 和简短声明符的区别和使用。文章目录 `new()`

Python中json文件和jsonl文件的区别小结

《Python中json文件和jsonl文件的区别小结》本文主要介绍了JSON和JSONL两种文件格式的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 众所周知,jsON 文件是使用php JSON(JavaScripythonpt Object No

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)