题目

Interactive Path Reasoning on Graph for Conversational Recommendation

简介

这是一篇KDD 2020的文章,本文提出了会话路径推理,把Conversational Recommendation这个任务建模成一个在Graph中的路径推理任务。它按照用户反馈遍历属性顶点,以明确的方式利用用户偏好的属性,从而更有可能找到用户喜欢的items进行相关的推荐

引入了图结构,从而可以利用更多的信息。并且在这套框架中,推荐系统和对话系统是相互促进的。一方面,路径推理为对话系统提供了更自然的DST,使得对话选择从逻辑上更加完善;另一方面,可以直接从用户反馈中获得属性,使得搜索空间大大减小

why

传统的推荐系统根据过去的交互历史来估计用户对项目的偏好,因此受到获取细粒度和动态用户偏好的限制;对话式推荐系统(CRS)通过使系统能够直接询问用户他们对物品的偏好属性,解决了这些限制;然而,现有的CRS方法没有充分利用这种优势——它们只以相当隐含的方式使用属性反馈,只将用户反馈的attributes映射到latent space,没有发挥出最大的作用,要想让对话推荐系统更精确和可解释,需要更清楚明晰地利用attributes

因此,作者引入了图结构(进行更好地表示和可解释性),将对话推荐视为在user-item-attribute graph中交互地找到一条符合当前用户会话的path。这样不仅效果提升,还拥有更好的可解释性

what

  • MULTI-ROUND CONVERSATIONAL RECOMMENDATION SCENARIO
    对话推荐系统一般采用多轮的机制,即用户和系统进行交互的过程中,系统每向用户推荐一次items,即算一轮,推荐失败则进行下一轮,推荐成功则结束。此外,当系统询问的arribute用户喜欢/不喜欢时,增/删该用户的attribute集合;当系统推荐的item用户拒绝时,将该item从candidate items中删除

    但是上述MCR情景做出了两个假设:
    (1)假设用户通过指定属性明确表达自己的偏好,没有任何保留,数据集中包含首选属性的项目足够多。给定这个假设,CRS会将用户接受的属性作为一个强有力的指标。例如,它只考虑包含他接受的所有属性的所有项目(算法1中的第2行和第8行)。这是因为包含所有首选属性的项目比不包含的项目具有更高的优先级
    (2)假设CRS不处理强烈的负面反馈。这意味着,如果用户拒绝被询问的属性,CRS不会区分用户是不关心它还是讨厌它。这是因为这种负反馈在目前的数据中很难获得,使得在实验环境中很难模拟。因此,CRS一致把所有被拒绝的属性当作并不关心,只从候选集中移除属性,而不移除包含被拒绝属性的所有项目

how

在MCR中,系统将属性视为偏好反馈,并在属性顶点上游走(即推理)。假设当前活动路径为P = p0,p1,p2,…,pt。系统停留在某点P,将寻找下一个要行走的属性顶点。这个过程可以分解为三个步骤:推理、协商和过渡

  • Reasoning
    这一步骤可以解决这两个问题:
    (1)推荐哪些项目?(2)问哪个属性?

    这一步CPR对项目和属性进行评分,采用了一种异步方式交替的去更新item score和attribute score,把打分问题给定义成信息在Graph中的传递问题
    首先本文来计算candidate items的分数。文章将与一个path直接相连的items作为candidate items V,对于V中的每一个item v,可以计算它的分数,其中P代表一个用户在对话中偏爱的属性集合

    然后,将和一个path直接相连的attributes减去user不喜欢的attributes得到candidate attributes集合P,对于P中的每一个candidate attribute p,本文可以(抽象地)计算它的分数:

    这种相邻属性约束带来了两个好处:

    在推荐方面,显著减少了选择问哪个属性的搜索空间。像之前最先进的会话推荐系统将整个属性集P视为候选空间,增加了学习决策函数的难度

    在会话方面,约束相邻属性使对话更加连贯。在语言学中,任何两个相邻话语中的两个实体越接近,对话就越连贯

  • Consultation
    这一步骤可以解决以下问题:
    什么时候问属性,什么时候做推荐?

    定义:
    当Reasoning完成后,CPR进入到consultation step。这一步的目的是决定“当前是该问属性还是该推荐商品”,其目标是在最短的轮次达成一个成功的推荐,本文把这个选择问题定义成一个reinforcement learning proble

    方法:
    使用一个policy function π,s代表全局对话状态,可以是任何对推荐有用的信息,比如对话历史,候选商品的信息等。policy function的输出空间只有两个:
    ask:如果选择此action,从P中选择score最高的属性去问
    rec:如果选择此action,从V中选择top-k的items去推荐
    这个方法和之前的方法的区别是,之前的方法的policy function是决定“问哪个属性?”,这里是”问还是推荐?“,这样可以把action space降得很小,便于强化学习的训练

  • Transition
    当询问的属性p被用户接受时,transition step就会触发。这一步要做的事情是把路径延伸,更新用户选择的属性集P,且更新候选属性集P和候选item集V 。如果属性被用户拒绝,只需将其从候选属性集中移除,而无需顶点转换

SCPR Model

为了实现CPR框架,一般需要指定函数f (v,u,Pu),g(u,p,Vcand)和π(s)。本文提供了一个简单的实现SCPR,在EAR的基础上更新了一些设计(更少的搜索空间和决策空间)

  • Reasoning - Item Scoring
    在推理阶段,f (v,u,Pu)通过传播来自user-preferred attributes的信息来对itemv进行评分,使用两个顶点Embedding之间的内积作为消息:

  • Reasoning - Attribute Scoring
    推理阶段的另一个问题,是根据当前系统状态决定哪个属性值得询问,一个理想的解决方案是找到一个很好地消除项目不确定性的策略。由于信息熵已被证明是一种有效的不确定性估计方法,所以将g(u,p,Vcand)函数设定为信息熵,但将其调整为加权方式:

    其中,σ是sigmoid函数,Vcand表示candidate items,而Vp表示包含属性p的items。与原始的标准熵(平等对待每个项目)不同,本文在此使用加权熵为属性评分中的重要项目分配了更高的权重。如果没有消息传播到attribute,本文将其熵定义为0(notes:本文为了简单,没有考虑useru来计算g,虽然公式中有u,这并不意味着在决定属性时不重视u的重要性,未来可以基于此进行探索)

  • Consultation - RL Policy
    使用两层前馈神经网络作为本文的策略网络。为了加快收敛速度,本文使用标准的Deep Q-learning进行优化

    policy network的输入是全局状态s,输出是一个值 Q(s,a),其中a是 a(rec)或a(ask),表明是对action(rec或ask)的estimated reward,系统总是会选择具有较高估计回报的action

    状态向量s是两个向量的串联:
    输入s:

    其中s(his)编码对话历史,s(len)代表候选item set的大小

    reward定义:
    r(rec_suc):推荐成功
    r(rec_faill):推荐失败
    r(ask_suc):用户接受了询问的属性
    r(ask’_faill): 用户拒绝了询问的属性
    r(quit):session达到了最大轮次

Experiments

Conclusion

本文首次引入图来解决多轮会话推荐问题,并提出了会话路径推理框架。CPR将会话与基于图的路径推理同步,使得属性的利用更加明确,从而大大提高了会话推荐的可解释性

论文-Interactive Path Reasoning on Graph for Conversational Recommendation相关推荐

  1. 【论文阅读】Unifying Knowledge Graph Learning and Recommendation

    Unifying Knowledge Graph Learning and Recommendation: Towards a Better Understanding of User Prefere ...

  2. 【论文不精读】Reinforced Path Reasoning for Counterfactual Explainable Recommendation

    Reinforced Path Reasoning for Counterfactual Explainable Recommendation 1 Introduction 现代推荐系统在对复杂的用户 ...

  3. 【NIPS2018】Reasoning with Graph Convolution Nets for Factual Visual Question Answering【事实视觉问答推理】

    "Out of the box:Reasoning with Graph Convolution Nets for Factual Visual Question Answering&quo ...

  4. P - The Shortest Path in Nya Graph HDU - 4725

    P - The Shortest Path in Nya Graph HDU - 4725 最短路 不是 每两个点之间按层数设置边权 + 额外边权 TLE 是 相邻两层之间设置边权 + 额外边权 需注 ...

  5. 1971. Find if Path Exists in Graph

    1971. Find if Path Exists in Graph 有一个具有 n个顶点的 双向 图,其中每个顶点标记从 0 到 n - 1(包含 0 和 n - 1).图中的边用一个二维整数数组 ...

  6. LeetCode 1548. The Most Similar Path in a Graph(动态规划)

    文章目录 1. 题目 2. 解题 1. 题目 We have n cities and m bi-directional roads where roads[i] = [ai, bi] connect ...

  7. 论文阅读笔记—Reasoning on Knowledge Graphs with Debate Dynamics(AAAI,2020)

    这是一篇非常有趣的工作,看完会觉得眼前一亮. 论文标题:Reasoning on Knowledge Graphs with Debate Dynamics 发表于AAAI,2020 动机  很多机器 ...

  8. 论文记录:Reasoning with neural tensor networks for Knowledge Base completion

    论文记录:Reasoning with neural tensor networks for Knowledge Base completion Paper points Neural tensor ...

  9. [Paper Reading] Towards Conversational Recommendation over Multi-Type Dialogs

    [Paper Reading] Towards Conversational Recommendation over Multi-Type Dialogs 文章目录 [Paper Reading] T ...

  10. Unifying Task-oriented Knowledge Graph Learning and Recommendation

    Unifying Task-oriented Knowledge Graph Learning and Recommendation ABSTRACT 背景 将知识图纳入推荐系统(知识感知推荐),以辅 ...

最新文章

  1. Java中的访问控制权限
  2. 花了一上午,终于完成了作业
  3. CodeSign error: code signing is required for product type Application in SDK iOS
  4. 软件自动化测试成功之道_是什么使测试自动化成功?
  5. VMware中NAT网络模式设定
  6. ORA-14402: 更新分区关键字导致分区的更改
  7. 【jQuery笔记Part2】05-jQuery自定义动画
  8. linux下pwd命令学习
  9. 3月19日 视觉里程计,PnP方法对两帧求解,BA优化的直观理解
  10. idea项目工程里面自动生成的.iml文件无法删除的解决方法
  11. 如何使用命令行进行基本操作
  12. Qt 防止程序二次运行 实现应用单例
  13. 目前三大前端主流框架
  14. 蜜罐技术的初识以及HFish(开源蜜罐)的Docker搭建姿势
  15. 无法连接阿里云 Windows 实例远程桌面
  16. 美国卡内基梅隆大学计算机排名,美国卡内基梅隆大学世界排名情况
  17. span标签置灰_ant-desgin-vue——tree自定义不可选用的置灰或禁用
  18. 开封抖音广告如何有效投放?
  19. QQ传输文件原理参考(来自互联网)
  20. 怎样识别三洋18650锂电池电芯

热门文章

  1. java虚拟机之java堆
  2. Big Sur菜单栏颜色遭吐槽?如何将Big Sur菜单栏调成暗黑模式
  3. 哈希表,设计哈希集合,
  4. 计算机图像变为红色是什么故障,电脑显示器变成红色怎么办
  5. python高级进阶_20_进程之间的通信之queue(Poo演示)
  6. Python:下载数据——CSV文件格式练习题
  7. oracle 时间毫秒数,计算Oracle中两个时间戳之差(以毫秒为单位)
  8. js中深克隆与浅克隆
  9. (一)八卦起点作家转会纵横-------- 比较全(包括JJ,起点ceo.邪月MM的发言的发言)...
  10. Python开发基础(一)基本数据类型