群组推荐模型---AGREE(Attentive Group Recommendation)

2023-12-17 08:52

本文主要是介绍群组推荐模型---AGREE(Attentive Group Recommendation),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

群组推荐模型---AGREE

  • AGREE简单概述
  • 基于注意力的群组表征学习(Attentive Group Representation Learning)
  • NCF(Neural Collaborative Filtering)

AGREE简单概述

群组推荐领域比较经典的论文便是AGREE(Attentive Group Recommendation),此文的主要贡献如下:(1)利用神经注意力网络从数据中动态学习聚合策略的群体推荐系统。进一步整合了用户-项目交互,提高了群组推荐的性能.(2)有效缓解项目推荐的用户冷启动问题。(3)在一个自建数据集和一个公共数据集上进行了大量的实验,以证明方法有效性。
群组推荐可以大致分为四个模块:偏好获取群组划分偏好融合预测推荐。首先,在推荐算法中一般将偏好定义为用户对两个及以上项目的排序关系。其次对于群组划分,本文中使用的为开源真实数据集(Mafengwo和CAMRa2011),数据集中群组已经划分完毕,因此不再需要利用其他手段进行群组划分。如若需要构建其他数据集中的虚拟群组,可以利用聚类算法完成群组划分。在偏好融合层面,利用注意力机制学习群组成员权重替代预定义策略,最后一步使用NCF进行交互学习,为用户和组推荐项目。

基于注意力的群组表征学习(Attentive Group Representation Learning)

大多数的群组推荐系统都是通过一些预定义的策略对群组成员的评分进行聚合。例如最大最小值策略等。这类策略需要预定义参数,无法获知群组成员内部相互影响,缺乏动态调整群组成员权重的灵活性。使用注意力机制来学习聚合策略。它的基本思想是,当将一组表示压缩成一个表示时,对它们执行加权和,其中的权值由神经网络学习。偏好融合公式如下:
g l ( j ) = ∑ u t ∈ g l a ( j , t ) u t + q l g_l(j)=\displaystyle\sum_{u_t \in g_l}a(j,t)u_t+q_l gl(j)=utgla(j,t)ut+ql
g l g_l gl为群组 l l l中用户, a ( j , t ) a(j,t) a(j,t)为注意力权重,本文最为主要的部分便是注意力权重的训练,公式如下:
o ( j , t ) = h T R e L U ( P v v t + P u u t + b ) o(j,t)=h^TReLU(P_vv_t+P_uu_t+b) o(j,t)=hTReLU(Pvvt+Puut+b)
a ( j , t ) = s o f t m a x ( o ( j , t ) ) = e x p ( o ( j , t ) ) ∑ t ∈ g l e x p ( o ( j , t ) ) a(j,t)=softmax(o(j,t))=\frac{exp(o(j,t))}{\textstyle\sum_{t\in g_l}exp(o(j,t))} a(j,t)=softmax(o(j,t))=tglexp(o(j,t))exp(o(j,t))
P v P_v Pv P u P_u Pu表示物品v和用户u的权重矩阵,通过激活函数和归一化的处理,训练出最终的用户权重。
而在群组偏好融合的公式中,还有一个 q l q_l ql变量,表示群组偏好向量,目的是考虑群组的整体偏好。

NCF(Neural Collaborative Filtering)

NCF是一种用于项目推荐的多层神经网络框架。它的想法是将用户嵌入和物品嵌入到一个专用的神经网络中,从而从数据中学习交互功能。由于神经网络具有较强的数据拟合能力,因此NCF框架比传统的MF模型具有更强的通用性,后者简单地使用与数据无关的内积函数作为交互函数。因此,选择NCF框架来对嵌入(表示用户、项目和组)和交互功能(预测用户-项目和组-项目交互)执行端到端学习。
pooling layer
对输入的向量 g l ( j ) g_l(j) gl(j) v ( j ) v(j) v(j)进行逐元素乘积,然后与 g l ( j ) , v ( j ) g_l(j),v(j) gl(j),v(j)进行连接。
e 0 = φ p o o l i n g ( g l ( j ) , v ( j ) ) = [ g l ( j ) ⨀ v ( j ) g l ( j ) v ( j ) ] e_0=\varphi_{pooling}(g_l(j),v(j))= \begin{bmatrix} g_l(j)\bigodot v(j)\\ g_l(j)\\ v(j) \end{bmatrix} e0=φpooling(gl(j),v(j))= gl(j)v(j)gl(j)v(j)
内积能够有效的捕获到群组和物品之间的交互,同时连接群组和物品本身的信息能够避免信息丢失。
hidden layer
池化层之上是一堆完全连接的层,这些层使模型能够捕获用户、组和项目之间的非线性和高阶相关性。
{ e 1 = R e L U ( W 1 e 0 + b 1 ) e 1 = R e L U ( W 1 e 0 + b 1 ) . . . . e h = R e L U ( W h e h − 1 + b h ) \begin{cases} e_1=ReLU(W_1e_0+b_1)\\ e_1=ReLU(W_1e_0+b_1)\\ ....\\ e_h=ReLU(W_he_{h-1}+b_h) \end{cases} e1=ReLU(W1e0+b1)e1=ReLU(W1e0+b1)....eh=ReLU(Wheh1+bh)
最后一层输出 e h e_h eh经过下面的公式转化为预测分:
{ r i j ^ = w T e h , i f e 0 = φ p o o l i n g ( u i , v j ) y i j ^ = w T e h , i f e 0 = φ p o o l i n g ( g l ( j ) , v j ) \begin{cases} \hat{r_{ij}}=w^Te_h,if e_0=\varphi_{pooling}(u_i,v_j)\\ \hat{y_{ij}}=w^Te_h,if e_0=\varphi_{pooling}(g_l(j),v_j) \end{cases} {rij^=wTeh,ife0=φpooling(ui,vj)yij^=wTeh,ife0=φpooling(gl(j),vj)
w w w表示预测层的权重 r i j ^ \hat{r_{ij}} rij^ y i j ^ \hat{y_{ij}} yij^分别表示用户对物品的预测分和群组对物品的预测分。设计了两个任务的预测共享相同的隐藏层。这是因为群嵌入是从用户嵌入聚合而来的,这使得它们本质上处于相同的语义空间中。此外,这可以增强用户-项目交互数据对组-项目交互功能的训练,反之亦然,有利于二者的相互强化。

代码链接:点击

这篇关于群组推荐模型---AGREE(Attentive Group Recommendation)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/503799

相关文章

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}