Large-Scale Interactive Recommendation with Tree-Structured Policy Gradient AAAI2019 阅读笔记_tpgr-程序员宅基地

技术标签: 论文阅读  聚类  算法  树结构  深度学习  强化学习  


代码解释在另一篇文章~)
补充知识:

  • K-means:划分式聚类算法
  • 层次聚类算法:通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。
  1. 法一:
    每一个样本点视为一个簇;
    计算各个簇之间的距离,最近的两个簇聚合成一个新簇;
    重复以上过程直至最后只有一簇。

  2. 分割法(本文使用):
    先将数据点分为c个聚类
    再将分好的数据点继续划分为更小的聚类
    直到每个子聚类仅与一个点相关联。

Introduction

  • We propose a Tree-structured Policy Gradient Recommendation (TPGR) framework which achieves high efficiency and high effectiveness at the same time.
  • a balanced hierarchical clustering tree is built over the items and picking an item is thus formulated as seeking a path from the root to a certain leaf of the tree, which dramatically reduces the time complexity in both the training and the decision making stages.
  • We utilize policy gradient technique to learn how to make recommendation decisions so as to maximize long-run rewards.
  • 针对IRS(Interactive recommender systems)的算法及缺点 :
  1. MAB:假设用户兴趣在推荐过程中不变
  2. RL:无法处理大规模离散空间问题
  3. Wolpertinger Architecture[1]:一种针对动作空间来说复杂度为次线性而且在动作空间上能较好泛化的方法(基于actor-critic框架,通过DDPG来训练参数);存在学习的连续动作和实际期望的离散动作之间的不一致性的问题。

[1] Dulac-Arnold G, Evans R, van Hasselt H, et al. Deep reinforcement learning in large discrete action spaces[J]. arXiv preprint arXiv:1512.07679, 2015.

Methods

  • State. A state s is defined as the historical interactions between a user and the recommender system, which can be encoded as a low-dimensional vector via a recurrent neural network (RNN)
  • Action. An action a is to pick an item for recommendation
  • Reward. all users interacting with the recommender system form the environment that returns a reward r after receiving an action a at the state s, which reflects the user’s feedback to the recommended item.
  • Transition. As the state is the historical interactions, once a new item is recommended and the corresponding user’s feedback is given, the state transition is determined.

Tree-structured Policy Gradient Recommendation Intuition for TPGR

在这里插入图片描述
每个叶节点都映射到item,每个非叶节点与policy network相关联
给定一个state,在policy network的引导下,从根节点到叶节点进行自顶向下的移动,并向用户推荐相应的item

Balanced Hierarchical Clustering over Items

在这里插入图片描述

  • 平衡树:对于每个节点,其子树的高度最多相差1。
  • 每个非叶节点具有相同数量的子节点,表示为c。(叶节点的父节点除外)
  • 通过聚类算法以一组向量(这里我理解的是所有item的向量)和整数c为输入,并将向量分成c个平衡的聚类;通过重复应用聚类算法直到每个子聚类只与一个item相关联,构建了一个平衡的聚类树。
    在这里插入图片描述
  • 采用的聚类方法:
  1. PCA-based(better)
  2. K-means-based
  • 采用的item向量表示方式:
  1. Rating-based:用评分矩阵对应列表示(后续实验表明这是最佳表示方法);
  2. VAE-based:使用变分自编码器降维;
  3. MF-based:使用矩阵分解表示item

Architecture of TPGR

  • status point指示当前位于哪个节点,选择item就变成将status point从根节点移到某个叶子节点。
  • 树的非叶节点与policy network相关联(全连接层+激活单元)。
    status point所在的节点v的policy network以当前state为输入,输出v在子节点上的概率分布,表示移动到v每个子节点的概率。
    在这里插入图片描述

State Representation

  • 输入为时间t前推荐的item ids以及相应的rewards,其中每个item id都被映射为一个embedding vector(可以端到端训练,也可以使用MF提前训练好),每个reward映射为一个one-hot向量。
  • user_status表示一些统计信息,如在时间步长t之前的positive reward、negative reward 、连续的positive reward和negative reward的数量
  • 采用SRU(simple recurrent unit)编码,得到state
    在这里插入图片描述

Experiments and Results

  • 数据集:
    在这里插入图片描述
  • 将评分大于3视为positive reward,其余视为negative reward
    在这里插入图片描述
  • 纵坐标为连续positive(negative) reward的平均分。
  • 表明用户以前消费的满意(令人失望)的项目越多,她获得的快乐(不愉快)就越多,因此,她倾向于对当前项目给出更高(更低)的评级

结果:

在这里插入图片描述

Time Comparison

在这里插入图片描述
虽然DDPG-KNN(k=1)时间复杂度低,但是推荐性能很差

Influence of Clustering Approach & Tree Depth

在这里插入图片描述
结果表明:PCA聚类方式,rating-based向量表示方式,深度为2时,效果最好
原因分析:

  1. Rating-based保留了用户和item之间的所有交互信息,而VAE和MF的表示都是低维的,在降维后保留的信息比基于评分的表示少。
  2. K-means方法对初始点的选择以及距离函数度量都有要求,不稳定。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/strawberry47/article/details/116697266

智能推荐

GIoU DIoU CIoU loss 损失函数-程序员宅基地

文章浏览阅读1w次,点赞28次,收藏98次。目标检测任务中,Bounding Box的评估指标是IoU,IoU范围在(0,1)(0,1)(0,1)之间,具有尺度不变性,而且可以衡量各种形状的匹配程度。我们自然会考虑能否将IoU设计为一个损失函数。IoU loss最简单的,直接将1-IoU定义为损失,我自己在简单的目标检测项目中尝试过,基本没有办法学习,主要原因是:当预测框和目标框不相交时,IoU始终为0,损失函数不可导,无法优化。另外这种损失定义方式无法区分IoU的各种情况,同样的IoU值,重叠形状可以有许多种,它们在效果上是有差异的,因此_ciou loss

Nodejs爬虫(定时爬取)_nodejs 定时爬虫-程序员宅基地

文章浏览阅读7.5k次,点赞3次,收藏12次。Nodejs爬虫(定时爬取)l 前言Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。Node.js是一个基于Chrome JavaScript运行时建立的平台,_nodejs 定时爬虫

CS224W-图神经网络 笔记3.2:Motifs and Structural Roles in Networks - 网络的结构(Structural Roles)_cs224wwinter-程序员宅基地

文章浏览阅读218次。CS224W-图神经网络 笔记3.2:Motifs and Structural Roles in Networks - 网络的结构(Structural Roles)本文总结之日CS224W Winter 2021只更新到了第四节,所以下文会参考2021年课程的PPT并结合2019年秋季课程进行总结以求内容完整课程主页:CS224W: Machine Learning with Graphs视频链接:【斯坦福】CS224W:图机器学习( 中英字幕 | 2019秋)文章目录CS224W-图神经网_cs224wwinter

maven 默认安装路径-小白实操记录_maven默认安装路径-程序员宅基地

文章浏览阅读1.6k次。使用命令安装路径如下: /usr/bin/mvn /usr/share/maven2/ /etc/maven2 maven配置信息在 /etc/maven2_maven默认安装路径

HTML5标准学习 - 编码-程序员宅基地

文章浏览阅读60次。HTML5标准学习 - 编码 from:http://www.cnblogs.com/GrayZhang/archive/2011/04/11/learning-html5-charset.html相信每一个前端工程师都或多或少遇上过“乱码”这位仁兄,无论你的基...

AB压测工具的介绍及安装-程序员宅基地

文章浏览阅读1.9k次。今天我要和大家聊聊AB压测工具,如果你对网站性能测试感兴趣或有需要,那么这篇文章一定会帮到你。我曾经也因为缺少良好的压力测试工具而苦恼,直到我发现了AB压测工具。它可以帮助我们测试网站在高并发情况下的性能表现,让我们更好地了解网站的性能瓶颈和优化方向。接下来,我将为大家介绍AB压测工具的安装和使用方法,希望能够帮助大家更好地进行网站性能测试,提升网站的质量和用户体验。_ab压测工具

随便推点

混合隐喻并使事情变得过于复杂(REST和SOAP)-程序员宅基地

文章浏览阅读364次。Folks keep trying to push metaphors (or similes, like, depending on how you say it) a smidge too far. Steve Maine had some words for Mark Baker. That said:人们一直试图将隐喻(或类似的词,取决于您的称呼)推得太远。 史蒂夫·缅因(Steve Ma..._混合隐喻例子

如何取消a标签的下划线_a 标签点击不出现下划线-程序员宅基地

文章浏览阅读9.4k次,点赞4次,收藏4次。使用"text-decoration:none;"属性即可:<a style="text-decoration:none;">我们没有下划线</a> _a 标签点击不出现下划线

《时は,走り出す》-《时光奔流》 EVA同人·绝品老文……_明日香本子-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏3次。第一部 三年的岁月流逝   那之后三年。 我已是17岁了。 已比明日香高出半个头的我,由于在田径部里锻炼的关系,已经不再像以前那么纤瘦了。 依靠着从世界再建委员会(前NERV)得到的退职金,还有打工时攒到的钱,一个人过着清贫的生活。 每天都和最终留在日本的明日香一起上学。 自己比以前更沉默寡言,除了和冬二,剑介,班长...还有明日香以外几乎都不怎么 说话。_明日香本子

python提取数据指定列_Python:提取特定列数据并将其存储到变量中-程序员宅基地

文章浏览阅读5.4k次。我有一个csv文件,我想从中提取ratings和comments字段,并将其存储在两个变量中-rating和comment。这个过程完成后,我需要查看提取的数据。CSV文件中存储的数据如下:在我的dataclean python文件中,目前编写的代码是:class Extractdata:def __init__(self, rating, comment):self.rating = ratin..._python提取特定列数据

<jsp:include page="" /> org.apache.jasper.JasperException: Unable to compile c-程序员宅基地

文章浏览阅读404次。[b]引入一个页面,出现如下异常:[/b] [code="java"] 2010-10-6 11:44:08 org.apache.catalina.core.ApplicationDispatcher invoke严重: Servlet.service() for servlet jsp threw exceptionorg.apache.jasper.JasperExcept..._exception: unable to compile expression "$.data": syntax error token recogni

Android5.0 WebView中Http和Https混合问题-程序员宅基地

文章浏览阅读981次。http://blog.csdn.net/luofen521/article/details/51783914http://blog.csdn.net/luofen521/article/details/51783914http://blog.csdn.net/luofen521/article/details/51783914场景复现:

推荐文章

热门文章

相关标签