首页 > 其他分享 >MMGCN: Multi-modal Graph Convolution Network for Personalized Recommendation of Micro-video

MMGCN: Multi-modal Graph Convolution Network for Personalized Recommendation of Micro-video

时间:2023-12-29 15:01:24浏览次数:22  
标签:模态 Multi mathbf Convolution Graph MMGCN text mathcal id

目录

Wei Y., Wang X., Nie L., He X., Hong R. and Chua T. MMGCN: Multi-modal graph convolution network for personalized recommendation of micro-video. MM, 2019.

推荐领域里比较早的多模态方法.

符号说明

  • \(\mathcal{U}\), user set;
  • \(\mathcal{I}\), item set;
  • \(m \in \mathcal{M} = \{v, a, t\}\), 某个模态 (\(v\) 表示 visual, \(a\) 表示 acoustic, \(t\) 表示 textual);
  • \(\mathcal{G} = \{(u, i)| u \in \mathcal{U}, i \in \mathcal{I}\}\), user-item graph.

MMGCN

  • MMGCN 的思想很简单, 它对每一个模态都单独处理, 最后在汇总在一起得到 user/item 的表示.

  • 初始情况下, 我们有:

    \[ \mathbf{i}_m, \mathbf{u}_m, \mathbf{u}_{id}. \]

    其中 \(\mathbf{i}_m\) 是模态 \(m\) 的特征, 比如 \(m\) 是视频的使用, 可以是通过一些模型抽取得到的表征 (如用 ResNet50 对每一帧进行编码). \(\mathbf{u}_m\) 是用户在模态 \(m\) 处的表示 (应该是随机初始化然后再训练的吧?). \(\mathbf{u}_{id}\) 是用户的 id embedding.

  • MMGCN 的每一个 block 分为两步:

    1. aggregation:

      \[\mathbf{h}_m^{(l)} = f(\mathcal{N}_u), \]

      其中 \(f\) 可以是

      \[ f_{avg}(\mathcal{N}_u) = \text{LeakReLU}( \frac{1}{|\mathcal{N}_u|} \sum_{i \in \mathcal{N}_u} \mathbf{W}_{1, m}^{(l)} \mathbf{i}_m ), \]

      也可以是

      \[ f_{max}(\mathcal{N}_u) = \text{LeakReLU}( \max_{i \in \mathcal{N}_u} \mathbf{W}_{1, m}^{(l)} \mathbf{i}_m ). \]

    2. combination:

      \[ \mathbf{u}_m^{(l)} = g(\mathbf{h}_m^{(l)}, \mathbf{u}_m^{(l-1)}, \mathbf{u}_{id}). \]

      \[ \mathbf{\hat{u}}_m = \text{LeakyReLU}( \mathbf{W}_{2,m}^{(l)} \mathbf{u}_m^{(l-1)} ) + \mathbf{u}_{id}, \]

      \(g\) 可以为如下的二者之一:

      \[g_{co}(\mathbf{h}_m, \mathbf{u}_m, \mathbf{u}_{id}) = \text{LeakyReLU}( \mathbf{W}_{3,m}^{(l)}( \mathbf{h}_m \| \mathbf{\hat{u}_m} ) ), \\ g_{ele}(\mathbf{h}_m, \mathbf{u}_m, \mathbf{u}_{id}) = \text{LeakyReLU}( \mathbf{W}_{3,m}^{(l)} \mathbf{h}_m + \mathbf{\hat{u}_m} ). \]

  • 最后

    \[ \mathbf{u}^* = \sum_{m \in \mathcal{M}} \mathbf{u}_m^{(L)}, \mathbf{i}^* = \sum_{m \in \mathcal{M}} \mathbf{h}^{(L)}. \]

    注: 原文是 \(\mathbf{i}^* = \sum_{m \in \mathcal{M}} \mathbf{i}^{(L)}\), 但是并没有显式定义 \(\mathbf{i}^{(L)}\), 所以我的理解就是 \(\mathbf{h}^{(L)}\).

代码

[official]

标签:模态,Multi,mathbf,Convolution,Graph,MMGCN,text,mathcal,id
From: https://www.cnblogs.com/MTandHJ/p/17934881.html

相关文章

  • 【五期杨志】CCF-A(CVPR'22) Dual-Key Multimodal Backdoors for Visual Question Answe
    WalmerM,SikkaK,SurI,etal.Dual-KeyMultimodalBackdoorsforVisualQuestionAnswering[C]//ProceedingsoftheIEEE/CVFConferenceonComputerVisionandPatternRecognition(CVPR).2022:15375-15385.  目前多模态学习在多种领域方面取得了重要进展,但......
  • C++STL常用关联式关联容器(set/multiset , map/multimap)
    2.1set/multiset容器2.1.1set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素2.1.2set构造和赋值功能描述:创建set容器以及赋值构造:set<T>st......
  • multiprocessing.Event()
    `multiprocessing.Event()`是Python中的一个类,用于在多进程之间共享布尔变量。这个类提供了一种简单的并发原语,允许进程之间进行通信。`multiprocessing.Event()`包装了一个布尔变量,可以设置为“已设置”(True)或“未设置”(False)。进程共享`Event`实例后,可以检查事件是否已设......
  • Generalised f-Mean Aggregation for Graph Neural Networks
    目录概符号说明GenAgg代码KortvelesyR.,MoradS.andProrokA.Generalisedf-meanaggregationforgraphneuralnetworks.NIPS,2023.概基于MPNN架构的GNN主要在于aggregator和updatefunction两部分,一般来说后者是参数化的主要方式.本文提出一种新的参数......
  • Oracle 11g RAC(openfiler +multipath +udev +补丁升级)
    配套视频:《Oracle11gRAC安装》 或《Oracle11gRAC安装》配套文档:《一步一步在linux上部署Oracle11gR2RAC》......
  • 袋鼠云数栈前端从 Multirepo 到 Monorepo 研发效率提升探索之路
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:星野困境频生前端代码管理何解?前端代码管理一直是困扰着不少前端开发团队的难题,从开发到发布的整体工作流程中,除了常规的技术问题外,往......
  • ARC105E Keep Graph Disconnected 题解
    ARC105E正向考虑是很难的,从结果入手,发现最后一定是分别包含\(1\),\(n\)的两个完全图。考虑表示出这两个人一共加了多少边:\(\frac{n(n-1)}{2}-m-x(n-x)\),\(x\)表示点\(1\)所在集合的大小。由于是判断先手还是后手必胜,所以只需看结果对\(2\)的余数,于是对\(n\)的奇偶进行......
  • Multivariate Function in Mathematics Education: 30 Engaging Blog Posts for Teach
    1.背景介绍在数学教育领域,多变量函数是一个非常重要的概念。它们在许多实际应用中发挥着关键作用,例如经济学、生物学、物理学等领域。然而,在教育中,多变量函数的教学和学习往往受到一些挑战。这篇博客文章将探讨如何通过30个有趣的博客帖子来提高多变量函数在数学教育中的教学质量。......
  • Maven – Guide to using Multiple Repositories
     [Maven–GuidetousingMultipleRepositories](https://maven.apache.org/guides/mini/guide-multiple-repositories.html)PSD:\gitrepo\fairbeautycrm\fairbeauty-crm-test>mvn--versionApacheMaven3.9.6(bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)Mave......
  • GPT-2 《Language Models are Unsupervised Multitask Learners》解读
    背景GPT1采用了pre-train+fine-tuning训练方式,也就是说为了适应不同的训练任务,模型还是需要在特定任务的数据集上微调,仍然存在较多人工干预的成本。GPT-2想彻底解决这个问题,通过zero-shot,在迁移到其他任务上的时候不需要额外的标注数据,也不需要额外的模型训练。 训练数据......