IUG-CF论文精读

Neural collaborative filtering with ideal user group labels

(具有理想用户组标签的神经协同过滤)

论文地址:https://www.sciencedirect.com/science/article/pii/S0957417423023898

摘要:

       人口统计信息是推荐系统(RSs)的关键信息。大多数现有的基于人口统计的RSs关注用户肖像之间的相似性。然而,他们很少结合人口统计数据来描述一个项目,并建立项目和用户之间的联系。在本文中,我们提出了理想用户组(IUG)的概念,作为项目的动态标签。此标签根据其历史客户的人口统计数据指示最适合某项商品的用户。与一般标签(如类型或语言)不同,IUG是随着历史用户人口统计数据的分布而动态变化的,并且是基于经历分裂-组合过程的人口统计信息构建的。为了验证我们方法的有效性,我们提出了一个基于iug的神经协同过滤(IUG-CF)模型。在三个真实数据集上的实验结果表明,IUG是提高推荐性能的有效方法。

关键词:

协同过滤,人口统计信息,理想用户组,神经网络,推荐系统

传统的推荐系统:

基于内容的推荐系统(Content-based RS):

这种方法依据项目的内容特征来生成推荐。它假设用户会喜欢与他们过去喜欢的项目在内容上相似的项目。

例如,如果一个用户喜欢动作电影,基于内容的推荐系统会推荐其他动作电影给这个用户。

内容特征可能包括项目的描述、关键词、类别、导演、演员等。

基于人口统计信息的推荐系统(Demographic-based RS,简称 DRS):

这种方法使用用户的人口统计信息,如年龄、性别、职业、教育水平等,来预测用户的喜好。

它基于一个假设,即具有相似人口统计特征的用户可能有相似的偏好。

例如,年轻用户可能更喜欢流行音乐,而年长用户可能更倾向于古典音乐。

协同过滤(Collaborative Filtering,简称 CF):

协同过滤技术依据用户之间的相似性和项目之间的相似性来生成推荐。

用户基协同过滤发现与目标用户有相似喜好的其他用户,并推荐这些用户喜欢但目标用户尚未发现的项目。

项目基协同过滤则是寻找与用户过去喜欢的项目相似的项目,并推荐给用户。

协同过滤面临的一个主要问题是冷启动问题,即新用户或新项目缺乏足够的交互数据。

混合推荐系统(Hybrid RS):

混合推荐系统结合了以上提到的多种推荐技术,以提高推荐的准确性和覆盖范围。

它可以同时考虑用户的内容偏好、人口统计信息、以及其他用户的交互数据。

通过整合不同方法的优势,混合推荐系统能够提供更全面和个性化的推荐,同时减少单一方法可能带来的偏差和局限性。

IUG-CF

虽然年龄、性别和职业等人口统计信息有助于做出个性化的推荐,但重要的是要认识到,仅仅依靠人口统计信息可能导致有偏见的推荐,并使陈规定型观念长期存在。大多数现有的方法侧重于利用用户和项目标签之间的关系来进行预测。这种预测通常基于这样的假设:如果用户过去喜欢过带有类似标签的物品,那么他们很可能会喜欢当前的物品。相比之下,我们采用不同的方法,使用用户信息来描述项目。

传统方法vs我们的方法

在 (a) 中,电影通过类型(genre)、语言(language)和其他信息来描述。而在 (b) 中,电影被描述为最适合具有某些人口统计特征的用户组。这表明作者的方法侧重于使用用户信息来描述项目(如电影),并根据用户与理想用户组(IUG)的匹配程度来确定用户行为,而不是仅仅基于用户对项目的偏好。

IUG的动态构建

为了构建IUG,我们首先根据每个人口统计属性(如性别、职业等)分离用户组。接下来,我们根据历史评分记录计算每个组的平均评分,并使用贝叶斯平均来解决某些用户组成员较少但偏好较强的问题。然后,我们比较每个项目在不同人口统计数据中的受欢迎程度,并将该组对应的人口统计值与每个属性的最大平均评级相结合,以获得IUG的人口统计数据。我们强调IUG是“构建的”和“动态的”。

推荐流程示例

这张图是一个简化的示例,用于说明如何为用户生成个性化的推荐列表。

1.用户人口统计信息:系统首先考虑用户的人口统计信息,如年龄、性别、职业等。

2.构建理想用户组 (IUG):根据历史上与项目互动的用户群体的人口统计数据,构建一个理想的用户组,代表最适合推荐该项目的典型用户特征。

3.用户与 IUG 的匹配:系统将用户的人口统计特征与项目的 IUG 进行比较,以评估用户可能对该项目的偏好。

4.生成推荐列表:系统根据用户与各个项目 IUG 的匹配程度,计算出一个偏好分数,并基于这些分数为用户生成一个排序的推荐列表。

IUG-CF模型

IUG-CF 模型的流程可能包括以下几个关键步骤:

1.用户-项目交互数据:模型使用用户与项目的交互数据,如评分或观看记录,作为输入。

2.构建 IUGs:对于每个项目,基于历史用户数据中的人口统计信息,构建一个理想用户组(IUG),IUG 描述了最适合推荐该项目的用户群体特征。

构建 IUGs(理想用户组)
  1. 用户组的划分:基于每个人口统计属性(如性别、职业等),将用户分成不同的组。

  2. 计算平均评分:对每个组别,根据历史评分记录计算该项目的平均评分。

  3. 应用贝叶斯平均:为了解决某些用户组可能成员较少但偏好较强的问题,使用贝叶斯平均方法来调整平均评分,确保每个人口统计属性的评分更加公平和有代表性。

  4. 确定最受欢迎的人口统计属性:通过比较不同人口统计属性下项目的平均评分,找出对应于每个属性的最大平均评分对应的人口统计值。

  5. 构建 IUG:将这些最受欢迎的人口统计值组合起来,形成该项目的 IUG。IUG 代表了对该项目最感兴趣的理想用户群体的特征。

3.用户和项目的嵌入表示:使用嵌入技术将用户和项目映射到低维空间,以捕捉它们的特征和交互关系。

4.计算偏好分数:通过嵌入表示和神经网络,模型计算用户对项目的偏好分数。

计算偏好分数
  1. 嵌入技术:使用嵌入技术将用户和项目映射到低维空间中,以表示它们的特征。每个用户和项目的人口统计信息也被编码为嵌入向量。

  2. 元素级乘积和激活函数:对用户和 IUG 的嵌入向量执行元素级乘积,并通过 sigmoid 激活函数来累加结果,以模拟用户和 IUG 之间的潜在关系。

  3. 多层感知器(MLP):为了捕捉用户和项目之间的非线性交互,使用一个标准的 MLP 网络来学习它们之间的复杂关系。MLP 通过隐藏层中的 ReLU 激活函数和输出层的 sigmoid 函数来计算用户对项目的偏好分数。

  4. 调整偏好分数:通过计算用户与 IUG 之间的相似度(例如,使用曼哈顿距离),并根据相似度调整偏好分数,使得与 IUG 更匹配的用户获得更高的偏好分数。

  5. 损失函数和优化:定义一个损失函数,用于在训练过程中最小化模型预测的偏好分数与实际交互之间的差异。使用优化算法(如 Adam)来更新模型参数,以提高预测的准确性。

5.生成推荐列表:根据计算出的偏好分数,为每个用户生成个性化的推荐列表。

伪代码

  1. 初始化模型参数集合 𝛩: 这一步是算法开始之前进行的,确保所有的模型参数都被正确地设置为初始值,这些值可以是随机的,也可以是预先设定的。

  2. 循环遍历所有项目: 这一步意味着对数据集中的每个项目进行处理,以便为它们构建 IUG。

  3. 循环遍历项目的每个人口统计属性: 这一步是针对每个项目,遍历所有可能的人人口统计属性(例如性别、年龄、职业等)。

  4. 循环遍历属性的所有可能值: 这一步是针对每个属性,遍历该属性下所有可能的值(例如性别属性下的“男”和“女”)。

  5. 使用贝叶斯平均公式和给定的参数计算项目在属性值下的平均评分: 这一步通过贝叶斯平均来计算每个项目在特定人口统计属性值下的平均用户评分,这有助于处理数据稀疏性问题。

  6. 结束对属性值的循环: 这一步结束了对当前人口统计属性的所有值的遍历。

  7. 结束对人口统计属性的循环: 这一步结束了对项目的所有人口统计属性的遍历。

  8. 通过公式 (3) 到 (6) 来生成项目的 IUG: 在这些步骤中,计算每个属性的平均评分向量,并基于这些评分向量来识别最受欢迎的属性值集合,即 IUG。

  9. 结束对项目的循环: 这一步结束了对所有项目的遍历,此时所有项目的 IUG 都应该已经生成完毕。

  10. 创建一个包含所有项目 IUG 的集合 V′: 这一步创建了一个集合,其中包含了数据集中所有项目的 IUG。

  11. 开始训练循环,迭代 Epochs 次: 训练循环是模型学习过程中的核心,通常迭代一定的次数或直到模型收敛。

  12. 使用调整后的偏好分数公式(公式 7 到 10)和 IUG 集合 V′ 以及用户的人口统计信息来计算用户对项目的偏好分数: 这一步计算用户对每个项目的偏好分数,这是基于用户和项目的人口统计信息以及项目的 IUG。

  13. 使用正则化项公式(公式 14)和 IUG 集合 V′ 以及用户的人口统计信息 D 来计算用户的正则化项: 正则化项用于鼓励模型生成与 IUG 更接近的用户嵌入,提高推荐的准确性。

  14. 使用损失函数公式(公式 15)和计算出的偏好分数、正则化项以及学习率来计算损失: 损失函数衡量了模型预测的偏好分数与实际交互数据之间的差异,并通过正则化项来防止过拟合。

  15. 使用 Adam 优化器和学习率 𝜁 来更新模型参数,以最小化损失函数: Adam 优化器是一种流行的梯度下降算法,用于根据损失函数的梯度来更新模型参数。

  16. 结束训练循环: 这一步结束了模型的训练过程。

  17. 在训练完成后,返回模型的所有参数: 训练完成后,返回模型参数集合 𝛩,这些参数包含了模型的所有学习到的知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2979831.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql用语句创建表/插入列【示例】

一、 创建表 COMMENT表示字段或列的注释 -- 新建student表 CREATE TABLE student (id BIGINT NOT NULL COMMENT 学生id, enroll_date DATE NOT NULL COMMENT 注册时间, NAME VARCHAR(18) DEFAULT NOT NULL COMMENT 学生姓名, deal_flag TINYINT(1) DEFAULT 0 NOT NULL COMM…

TLV61048非同步升压BOOST转换器输入电压2.6-5.5V输出电流4A输出电压最高15V

推荐原因: 输入电压较低,输出电流可达3.5A SOT23-6封装 批量价格约0.70元 TLV61048引脚 TLV61048引脚功能 7 详细说明 7.1 概述 TLV61048是一款非同步升压转换器,支持高达 15 V 的输出电压和输入范围从 2.61 V 到 5.5 V。该TLV61048集成了…

Nacos配置中心动态刷新原理

三种模式: ①:pull模式:主动拉去配置,通过固定的时间间隔。缺点:频繁请求,时效性不高,时间间隔不好设置。 ②:push模式:服务端检测到变化,主动将新配置推送给…

Atlas Vector Search:借助语义搜索和 AI 针对任何类型的数据构建智能应用

Atlas Vector Search已正式上线! Vector Search(向量搜索)现在支持生产工作负载,开发者可以继续构建由语义搜索和生成式人工智能驱动的智能应用,同时通过 Search Node(搜索节点)优化资源消耗并…

http 3.0 有哪些新特性

HTTP/3 是超文本传输协议(HTTP)的最新主要版本,其显著特点是放弃了传统的TCP作为传输层协议,转而采用基于UDP的QUIC(Quick UDP Internet Connections)协议。以下是HTTP/3利用QUIC实现高性能传输的关键特性&…

简单的图像处理算法

基础:图像处理都是用卷积矩阵对图像卷积计算,如3X3 的矩阵对640 X 480分辨率的图像卷积,最终会得到638 X 478 的图像。卷积过程是这样的: 一、中值滤波 : 找出矩阵中的最中间值作为像素点 二、均值滤波:找…

作为面试官,我在面试产品经理时,重点考察的5个能力

以往的面试经验,都是从打工人的角度去谈该如何准备;少有人从面试官角度去分析为什么会这样。这篇文章,作者从面试官角度出发,直接告诉大家,他考察的,会是这几个方面的问题。 最近在招聘面试产品经理&#x…

第三章、汇编1

编译选项知识 -Og:这是 GCC 和 Clang 编译器提供的优化选项之一。-Og 的含义是“优化级别为 g”,其中的 “g” 代表了"g优化"。这个选项的作用是启用一些基本的优化,以尽量保持生成的代码易读易调试。它通常会保留变量名和源代码结…

Idea如何本地调试线上测试服务器代码?

线上出现问题,但是没加日志打印拍脑门惋惜为啥不多打一行日志 加日志重新部署,半小时没了,问题还没有找到,头顶的灯却早已照亮了整层楼...... 排查别人线上的 bug,不仅代码还没看懂,还没一行日志&#…

Linux:目录目录、文件管理

Linux:目录、文件管理 文件系统 Linux 系统中的所有文件存储在文件系统中,它们被组织到一个颠倒的目录树中,称为文件系统层次结构。这棵树是颠倒的,因为树根在该层次结构的顶部,树根的下方延伸出目录和子目录的分支。…

高级控件3:ViewPager

ViewPager:翻页视图,可以在水平方向上滑动。常用于做欢迎页、图片轮播、标签页等场景一个页面View就是一个数据条目(可以理解为一个子项)适配器:PagerAdapter,该接口有两个子类,FragmentPagerAd…

【Linux】理解文件系统——那就浅聊一下吧

前言 在上一篇文件描述符详解中谈论的都是打开的文件,但是在我们的系统中不仅有打开的文件还有许多未打开的文件,那么这些未打开的文件又该如何理解呢?阅读完本篇文章相信你会得到答案。 如果觉得文章内容对你有所帮助的话,可以给博主一键三…

【计算机网络】MAC地址简介

MAC(Medium Access Control),即媒介访问控制,是计算机网络通信中的重要概念。每个NIC(Network Interface Card),即网络适配器,都具有独自且不变的MAC地址(烧录的&#xf…

线程-条件变量和生产者消费者模型

这个内容比较重要,并且面试很容易被问道。所以把他单独拿出来了。 条件变量 条件变量是一种线程同步机制 当条件不满足时,相关线程被一直阻塞,直到某种条件出现,这些线程才会被唤醒。为了保护共享资源,条件变量需要…

ROM修改进阶教程------安卓7_____安卓13去除签名验证操作步骤解析

同类博文: 安卓玩机搞机技巧综合资源-----修改rom 制作rom 解包rom的一些问题解析【二十一】_qcn改区域锁-CSDN博客 安卓系列机型rom修改。如果你删减了系统相关的app。那么严重会导致开机系统卡米 定屏等问题。这类一般都是系统签名验证导致的。而破解签名验证一般都是修改…

JAVA:Kettle 强大的开源ETL工具

请关注微信公众号:拾荒的小海螺 1、简述 Kettle(Pentaho Data Integration):强大的开源ETL工具Kettle,又称作Pentaho Data Integration,是一款流行的开源ETL(Extract, Transform, Load&#x…

ubuntu如何运行python程序

打开LINUX UBUNTU操作系统。 找到左边的TERMINAL,打开窗口。 输入python,如果没有安装,就会提示需要安装。 如果已经安装好python3,直接输入,那么就会进入。 exit()就可以退出python3的模式。 创建一个文件&#xff0c…

有没有学网络空间安全的学长,想知道学长们毕业以后都去干嘛了?

我作为一个零基础小白到白帽黑客,也认识到了很多零基础小白的,有一些网络空间安全的学员,但是大多数还是非计算机相关专业的学员。他们通过系统学习网络安全,掌握黑客技术之后,都找到了自己满意的工作。 同学A&#x…

二叉树oj题(2)

1.二叉树的最近公共祖先 解题思路:方法一: 1.先判断p或者q 是不是 root当中的一个 2.左子树当中递归査找p或者q 3.右子树当中递归查找p或者q 如何查找: root 的 left 和 right 都不为空 ->root root的 left 为空 right 不为空->right这一侧找…

话题——为什么要学习程序,成为程序员呢?

选择成为一名程序员,这对我而言并非是一时冲动,而是深思熟虑后的坚定选择。在当下这个信息化、数字化的时代,程序员这一职业不仅具有极高的技术含量,更承载了推动社会进步、引领科技发展的重任。特别是在深度学习这一前沿领域&…