首页 > 其他分享 >Do Loyal Users Enjoy Better Recommendations? Understanding Recommender Accuracy from a Time Perspect

Do Loyal Users Enjoy Better Recommendations? Understanding Recommender Accuracy from a Time Perspect

时间:2024-05-04 11:22:55浏览次数:11  
标签:Enjoy Do non Recommender users loyal user Time 交互

目录

Ji Y., Sun A., Zhang J. and Li C. Do Loyal Users Enjoy Better Recommendations? Understanding Recommender Accuracy from a Time Perspective. ICTIR, 2022.

讨论了推荐中一个奇怪的现象.

实验设置

  • 对数据集进行 leave-one-out 的分割, 得到 train/test sets;
  • 将整个数据集按照年份分成 10 份, 然后某个年份上测试, 该年份包括该年前的数据作为训练集. 比如, Y6, 表示将 Y1-Y6 且在之前 train set 中的数据作为训练集, 而将 Y6 且在 test set 中的作为测试. 这么做保证了测试集的时间尽可能保持在一个比较小的时间段内, 从而尽量避免数据的泄露.
  • 作者在 Y6, Y8, Y10 上进行了测试, 不过文中仅报告了 Y10 (因为结论是差不多的).
  • 然后本文会将用户分为 loyal user 和 non-loyal user, 然后判断这两种 user 类型的结果.

实验

Interaction-based Loyalty

  • 利用训练中每个用户的交互数量作为指标, 对 user 进行降序排列, 排在前 50% 的称为 loyal users, 否则为 non-loyal users.

  • 在不同的数据集上, 结果如下:

  • 有趣的是, 大部分情况下, non-loyal users 的结果都会比 loyal users 的结果好, 这个是反直觉的, 因为 loyal users 有更多的交互理应获得更容易建模兴趣.

Active Time Period based Loyalty

  • 利用训练中每个用户的交互时间跨度作为指标, 对 user 进行降序排列, 排在前 50% 的称为 loyal users, 否则为 non-loyal users.

  • 在不同的数据集上, 结果如下:

  • 结论是大致相同的, 但是对于 SASRec, TiSASRec 等序列模型, 结果会改善很多, loyal users, non-loyal users 的结果几乎是差不多了.

Recency

  • 作者认为, 得出上面反直觉的结论, 是因为真正的影响因素是: 无论是交互多的用户还是跨度大的用户, 他们大抵都会有很多 '过时' 的交互, 从而导致上面的结论.

  • 所以, 作者又根据 recency 来区分, 即根据用户的最后一个交互 (测试) 和 他倒数第二个交互的时间间隔进行升序排序, 然后以 \(50^{th}\) percentile 作为阈值, 之前的作为 active users, 之后的作为 inactive users.

  • 结果如下:

  • 可以发现, 此时 active users 的结果就明显优于 inactive users 了. 这一定程度上反映了作者的猜想.

  • 据此, 作者建议我们应该跟关注那些最近的交互而不是一视同仁.

代码

[official]

标签:Enjoy,Do,non,Recommender,users,loyal,user,Time,交互
From: https://www.cnblogs.com/MTandHJ/p/18172121

相关文章

  • Python 潮流周刊#49:谷歌裁员 Python 团队,微软开源 MS-DOS 4.0
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期周刊分享了12篇文章,12个开源项目,2则视频,赠书5本《Hello算法》。重......
  • dotnet的Lambda表达式 委托泛型(2) Action Func
    //总结://泛型:把类,方法,属性,字段做到了通用化//反射:操作dll文件的一个帮助类库//特性:就是一个特殊的类自定义标记属性特性他就是AOP的另一种实现方式验证属性//委托:就是多播委托,可以保存一个或者多个方法的信息。可以用来传递方法(把方法当作参数传递)。主要用来实现代码的解......
  • A* 算法、PathFinding问题中的 allow diagonal 和 don't cross corners,以及 .map文件
    地址:https://webdocs.cs.ualberta.ca/~nathanst/papers/benchmarks.pdf关于地图文件:.map文件的格式参考:https://movingai.com/benchmarks/formats.html......
  • Godot.NET C#IOC重构(11):攻击与死亡
    目录前言带上伤害HitboxHurtbox实现效果渐变淡出添加受攻击效果Hurtbox完善Enemy状态机结果剩下的都是逻辑完善的部分了,后面的我就跳过了。前言这次来深刻了解一下Godot中的伤害计算带上伤害我们将之前的Hitbox和HurtBox进行了一下简单的修改HitboxusingGodot;usingSyste......
  • 【Qt 资源】OpenSSL1.1.1d windows安装包资源
    笔者QT版本:5.14.2 用途:openssl1.1.1d 版本 今天尝试用百度云人脸识别api搭载QT的人脸识别程序,但是遇到了QT缺乏openssl的相关问题,找了大半天资源,1.1.1版本官网已经不再提供下载链接了。现在免费开源共享给大家。 链接:https://pan.baidu.com/s/1SLhNDmRC-tmm86lDn......
  • U423621 [HDK - NRC] Sqen Paradox
    [HDK-NRC]SqenParadox题目描述给定一个长度为\(n\)的数列\(S\).询问在给定区间\([l,r]\)内最长的没有重复元素的区间长度.输入格式第一行两个整数\(n,m\).第二行\(n\)个整数,描述数列\(S\).随后\(m\)行,每行一个询问.输出格式\(m\)行,请你对每个询问操作输......
  • Unity导出场景并导入Godot
    使用FBXExporter导出场景FBX创建ExportScene.cs导出场景OBJ(目的是创建碰撞体),代码:点击查看代码/******************************************//**//*Copyright(c)2018monitor1394*//*https://github.com/monito......
  • 本地化部署hoppscotch —— 使用docker compose一键部署 + https支持
    一、前言研究了好久,终于完成了hoppscotch本地一键部署,并支持https。hoppscotch的介绍这里就不做过多描述,网络上非常多,这里先放几张使用效果1、api界面 2、管理界面 2、部署效果:a.使用脚本,./create_and_start.sh(后面会提供),需要传入本机ip(能访问到的),可用的smtpurl(建议使......
  • Godot.NET C#IOC重构(9-10):三连击,攻击框
    目录前言AnimationPlayer和AnimatedSprite2D将导出属性添加到关键帧里面。状态机构建核心代码完整代码实现效果碰撞框和受攻击框全局类HitBox:攻击框HurtBox:受击框实现效果添加Player攻击总结前言这篇博客来深入讲解一下Godot中的AnimationPlayerAnimationPlayer和AnimatedSpr......
  • Adobe PS 2024 软件分享 torrent
    Adobe-Photoshop-2024-25.5.0.375下载工具建议使用qBittorrent-enhance,qBittorrent,Transmission,uTorrent等。种子下载地址磁链地址......