Leveraging Post-click Feedback for Content Recommendations

Authors: Hongyi Wen, Longqi Yang, Deborah Estrin

Recsys'19 Cornell University

论文链接:https://dl.acm.org/doi/pdf/10.1145/3298689.3347037

本文链接:https://www.cnblogs.com/zihaojun/p/15708632.html


0. 总结

这篇文章证明了在推荐系统中,将用户点击之后没有看完的物品作为负样本的一部分参与训练是有效的。

1.研究目标

利用用户在点击之后的反馈数据,来解决点击数据中的噪声问题,提高推荐系统的性能。

  • 例如,用户观看视频或听音乐的时长,可以反映用户看到物品之后是否真正喜欢。

2.问题背景

在构建推荐系统时,通常会选用隐式反馈数据作为训练数据,但隐式反馈数据的正样本不一定都是用户喜欢的物品。例如,用户点击了一个物品,这只能反映用户对这个物品的第一印象比较好,用户在浏览之后可能并不喜欢这个物品。

3.分析点击之后的反馈信息

数据集:

  • Spotify:在线音乐数据集,包含上亿的听歌会话,每个会话包含最多二十首歌,记录了用户跳过还是听完了每首歌,跳过与否是根据挑战赛组委会设定的播放阈值。随机选择了九百万会话进行分析。
  • ByteDance:用户与短视频(10秒)的交互记录,包含是否完播。选取了13 million的数据。

3.1 反馈信息的特点

点击之后的用户反馈在很多场景中都存在,这种反馈可能是显式的(评分),也可能是隐式的(观看时长)。在上述两个数据集中,音乐和短视频场景下,分别有51%和56%的交互是点击之后被跳过的。也就是说,超过半数的交互是点击之后用户并不满意的。

具体到每个物品和每个用户的完播比例,如Figure 1所示,两个数据集上面,左边一列(用户跳过比例)的分布不同,可能是因为音乐和视频的使用场景不同,音乐被跳过会更加随机。

作者还观察到,越冷门的物品,被跳过的比例越。这可能是物品质量导致的。

3.2 点击和反馈信息

用点击数据作为训练集,分别在常规测试集和兴趣测试集上进行性能测试,研究模型对点击行为和对完播行为的推荐精度差别。

  • 常规测试集是指,将所有物品作为候选集,将测试阶段点击物品作为正样本。
  • 兴趣测试集是指,将测试阶段的点击样本作为候选列表,将完播数据作为正样本(看能不能把完播排在跳过前面)。

最后得出结论,模型对点击行为的预测能力远高于对完播行为的预测能力。

这一段实验设计有问题,详见Weakness部分

\[\begin{array}{cccccc}
\hline \text { Dataset } & \text { # of users } & \text { # of items } & \text { # of records } & \text { Density } & \text { Percentage of skips % } \\
\hline \text { Spotify } & 229,792 & 100,586 & 4,090,895 & 0.018 \% & 51.05 \% \\
\text { ByteDance } & 37,043 & 271,259 & 9,391,103 & 0.093 \% & 55.13 \% \\
\hline
\end{array}
\]

4.方法

方法是比较简单的,虽然写的很复杂。

总体思路就是把用户跳过的样本(skip)也当做负样本。

4.1 Pointwise Loss

\(O_P\)表示用户未跳过的交互,\(O_N\)表示用户跳过的交互,\(O_M\)表示用户未交互的物品。

\[\arg \min _{x^{*} y^{*}} \alpha \sum_{(u, i) \in O_{P}}\left(1-\hat{p}_{u i}\right)^{2}+\beta \sum_{(u, i) \in O_{N}} \hat{p}_{u i}^{2}+\gamma \sum_{(u, i) \in O_{M}} \hat{p}_{u i}^{2}
\]

其实就是把跳过的物品当做负样本,并且加个权重。

4.2 Pairwise Loss

\(O_P\)中,i表示没跳过的物品,j表示跳过的物品。

\(O_N\)中,i表示没跳过的物品,j没交互过的物品。

\[\arg \max _{\theta} \alpha \sum_{(u, i, j) \in O_{P}} \ln \sigma\left(\hat{p}_{u i j}\right)+\beta \sum_{(u, i, j) \in O_{N}} \ln \sigma\left(\hat{p}_{u i j}\right)
\]

注意论文中把第二项的ij反了过来(增加一点复杂度),其实没有必要。

当\(\beta = 0\)时,模型只利用没有跳过的交互作为正样本,而没有利用跳过的样本,称为BL。

当\(\beta \not = 0\)时,模型称为-NR。

5.实验结果

实验结果表明,将跳过的样本作为负样本(NR)是有效的,且直接将这些样本从正样本集中去除(BL)也是有效的

可以借鉴的地方

  • 3.1的分析方法
  • 数据集 Spotify[1]

Weakness

  • 3.2的分析不合理

    • 两种测试任务的难度是不同的,常规测试任务的负样本很简单,但是兴趣测试任务是很难的,因此直接比较两种设置下的AUC绝对值是不合理的。
    • 比较合理的实验设置应该是保持测试方法一致,修改训练集数据,用(跳过+完播)和(完播)两种训练方式,看测试效果有什么不同。(看到后面才发现,这已经是论文主实验了)
  • 有错词,例如5.2部分第三个单词purposed,应为proposed。

  • 符号不一致,5.1部分使用的符号\(\lambda_p\)和\(\lambda_n\)在前文并没有提到。

  • [29]和[30]两篇引用是同一篇

进一步阅读

[15] Hongyu Lu, Min Zhang, and Shaoping Ma. 2018. Between Clicks and Satisfaction: Study on Multi-Phase User Preferences and Satisfaction for Online News Reading. In The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval. ACM, 435–444.

[34] Qian Zhao, F Maxwell Harper, Gediminas Adomavicius, and Joseph A Konstan. 2018. Explicit or implicit feedback? engagement or satisfaction?: a feld experiment on machine-learning-based recommender systems. In Proceedings of the 33rd Annual ACM Symposium on Applied Computing. ACM, 1331–1340.

[5] Yifan Hu, Yehuda Koren, and Chris Volinsky. 2008. Collaborative fltering for implicit feedback datasets. In Eighth IEEE International Conference on Data Mining (ICDM’08). IEEE, 263–272.

[8] Youngho Kim, Ahmed Hassan, Ryen W White, and Imed Zitouni. 2014. Modeling dwell time to predict click-level satisfaction. In Proceedings of the 7th ACM international conference on Web search and data mining. ACM, 193–202.

[11] Mounia Lalmas, Janette Lehmann, Guy Shaked, Fabrizio Silvestri, and Gabriele Tolomei. 2015. Promoting positive post-click experience for in-stream yahoo gemini users. In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 1929–1938.

【论文笔记】Leveraging Post-click Feedback for Content Recommendations的更多相关文章

  1. 【论文笔记】 Denoising Implicit Feedback for Recommendation

    Denoising Implicit Feedback for Recommendation Authors: 王文杰,冯福利,何向南,聂礼强,蔡达成 WSDM'21 新加坡国立大学,中国科学技术大学 ...

  2. 【论文笔记】用反事实推断方法缓解标题党内容对推荐系统的影响 Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue

    Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue Authors: 王文杰,冯福利 ...

  3. 【论文笔记】SamWalker: Social Recommendation with Informative Sampling Strategy

    SamWalker: Social Recommendation with Informative Sampling Strategy Authors: Jiawei Chen, Can Wang, ...

  4. Perceptual Losses for Real-Time Style Transfer and Super-Resolution and Super-Resolution 论文笔记

    Perceptual Losses for Real-Time Style Transfer and Super-Resolution and Super-Resolution 论文笔记 ECCV 2 ...

  5. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  6. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

  7. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  8. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

  9. Deep Learning论文笔记之(六)Multi-Stage多级架构分析

    Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些 ...

随机推荐

  1. [luogu3292]幸运数字

    考虑点分治,将询问离线后计算重心到每一个点的线性基,然后再询问重心到每一个点的线性基,时间复杂度为$o(3600q)$,可以过(然而太菜的我写了倍增维护线性基,震惊于倍增和线性基常数之小) 1 #in ...

  2. [noi1773]function

    以统计x坐标的数量为例:x为下标建一棵线段树,然后对每一个区间按照y坐标建一棵可持久化线段树(每一个x只保留最大的一个y),询问时,二分找到这个区间内最大的y以前的点并统计,复杂度为$o(nlog^{ ...

  3. CODING 项目协同 2.0 —— 让协作有条不紊

    本文为 CODING 高级产品经理王海明 在腾讯云 CIF 工程效能峰会上所做的分享.文末可前往峰会官网,观看回放并下载 PPT. 大家好,我是 CODING 高级产品经理王海明,今天与大家分享的是项 ...

  4. 【Microsoft Azure 的1024种玩法】六、使用Azure Cloud Shell对Linux VirtualMachines 进行生命周期管理

    [文章简介] Azure Cloud Shell 是一个用于管理 Azure 资源的.可通过浏览器访问的交互式经验证 shell. 它使用户能够灵活选择最适合自己工作方式的 shell 体验,本篇文章 ...

  5. Python之阶乘代码

    #coding=utf-8 while True:     num = int(input("请输入要阶乘的正整数数字,按负数退出:"))     jiec=1     if nu ...

  6. 洛谷 P4002 - [清华集训2017]生成树计数(多项式)

    题面传送门 神题. 考虑将所有连通块缩成一个点,那么所有连好边的生成树在缩点之后一定是一个 \(n\) 个点的生成树.我们记 \(d_i\) 为第 \(i\) 个连通块缩完点之后的度数 \(-1\), ...

  7. ACAM 题乱做

    之前做了不少 ACAM,不过没怎么整理起来,还是有点可惜的. 打 * 的是推荐一做的题目. I. *CF1437G Death DBMS 见 我的题解. II. *CF1202E You Are Gi ...

  8. gcc 的编译流程 和gdb的调试方法

    GCC的编译流程分为四个步骤: 预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking) 可以看的出来文件大小 gdb 调试 gdb - ...

  9. 详解 Rainbond Ingress 泛解析域名机制

    Rainbond 作为一款云原生应用管理平台,天生带有引导南北向网络流量的分布式网关 rbd-gateway.区别于一般的 Ingress 配置中,用户需要自行定义域名的使用体验,Rainbond 的 ...

  10. 日常Java 2021/11/16

    获得applet参数 下面的例子演示了如何使用一个Applet响应来设置文件中指定的参数.该Applet显示了-个黑色棋盘图案和第二种颜色.第二种颜色和每一列的大小通过文档中的Applet的参数指定. ...