首页 > 其他分享 >KGAT Knowledge Graph Attention Network for Recommendation

KGAT Knowledge Graph Attention Network for Recommendation

时间:2024-03-15 21:13:06浏览次数:27  
标签:mathbf Network big KGAT Attention text mathcal pi

目录

Wang X., He X., Cao Y., Liu M. and Chua T. KGAT: Knowledge graph attention network for recommendation. KDD, 2019.

知识图谱 for 推荐系统.

符号说明

  • \(\mathcal{G}_1 = \{(u, y_{ui}, i)| u \in \mathcal{U}, i \in \mathcal{I}\}\), \(y_{ui} = 1\) 表示 \(u\) 曾经交互过 \(i\), \(y_{ui} = 0\) 则代表 \(u\) 未曾交互过 \(i\);

  • \(\mathcal{G}_2 = \{(h, r, t)| h, t \in \mathcal{E}, r \in \mathcal{R}\}\), knowledge graph, \(\mathcal{E}\) 表示 knowledge graph 中的 entities, \(\mathcal{R}\) 表示各种关系;

  • \(\mathcal{G} = \{(h, r, t)| h, t \in \mathcal{E}', r \in \mathcal{R}'\}\), collaborative knowledge graph, \(\mathcal{E}' = \mathcal{E} \cup \mathcal{U}\), \(\mathcal{R}' = \mathcal{R} \cup \{\text{Interact}\}\).

KGAT

KGAT 分为两个步骤, 一个是普通的知识图谱的 embedding 建模, 另外一个是协同过滤的任务.

Embedding Layer

  • 对于知识图谱的 embedding 建模, 作者遵循的是 TransR 的方法, 对于关系三元组 \((h, r, t)\), 对应的 embedding 为 \((\mathbf{e}_h, \mathbf{e}_r, \mathbf{e}_t) \in \mathbb{R}^{d \times d}\), TransR 度量三元组的关系

    \[g(h, r, t) = \|\mathbf{W}_r \mathbf{e}_h + \mathbf{e}_r - \mathbf{W}_r \mathbf{e}_t \|_2^2, \]

    这里 \(\mathbf{W}_r \in \mathbb{R}^{k \times d}\) 是将 \(\mathbf{e}_h, \mathbf{e}_r\) 映射到和 \(\mathbf{e}_r\) 一样的隐空间中.

  • 然后通过如下损失进行训练

    \[\mathcal{L}_{\text{KG}} =\sum_{(h, r, t, t') \in \mathcal{T}} -\ln \sigma \bigg( g(h, r, t') - g(h, r, t) \bigg). \]

    其中 \((h, r, t)\) 表示真实存在的三元组, \((h, r, t')\) 则是负样本.

Attentive Embedding Propagation Layers

  • 接下来, KGAT 通过图网络进行信息传播, 对于 entity \(h\), 它和它周围的邻居按照如下方式进行更新:

    \[ \mathbf{e}_{\mathcal{N}_h} = \sum_{(h, r, t) \in \mathcal{N}_h} \pi (h, r, t) \mathbf{e}_t, \]

    其中 \(\pi(h, r, t)\) 为 knowledge-aware attention, 按照如下方式计算:

    \[ \pi(h, r, t) = \frac{ \exp( \pi(h, r, t)) }{ \sum_{(h, r', t') \in \mathcal{N}_h} \exp(\pi(h, r', t')) }, \\ \hat{\pi}(h, r, t) = (\mathbf{W}_r \mathbf{e}_t)^T \tanh \big( (\mathbf{W}_r \mathbf{e}_h + \mathbf{e}_r) \big). \]

  • 然后按照如下三种方式之一进行节点更新:

    1. GCN:

      \[ f_{\text{GCN}} = \text{LeakyReLU}\big( \mathbf{W}(\mathbf{e}_h + \mathbf{e}_{\mathcal{N}_h}) \big); \]

    2. GraphSage:

      \[ f_{\text{GraphSage}} = \text{LeakyReLU}\big( \mathbf{W}(\mathbf{e}_h \| \mathbf{e}_{\mathcal{N}_h}) \big); \]

    3. Bi-Interaction:

      \[ f_{\text{Bi-Interaction}} = \text{LeakyReLU}\big( \mathbf{W}_1(\mathbf{e}_h + \mathbf{e}_{\mathcal{N}_h}) \big) + \text{LeakyReLU}\big( \mathbf{W}_1(\mathbf{e}_h \odot \mathbf{e}_{\mathcal{N}_h}) \big). \]

  • 按照类似的方式, 不断迭代更新, 得到多层的节点表示:

    \[ \{ \mathbf{e}_u^{(1)}, \cdots, \mathbf{e}_u^{(L)} \}. \]

  • 最后 user/item 的节点表示为:

    \[\mathbf{e}_u^* = \mathbf{e}_u^{(0)} \| \cdots \| \mathbf{e}_u^{(L)}, \quad \mathbf{e}_i^* = \mathbf{e}_i^{(0)} \| \cdots \| \mathbf{e}_i^{(L)}. \]

  • 然后评分预测为:

    \[ \hat{y}(u, i) = {\mathbf{e}_u^*}^T \mathbf{e}_i^*. \]

  • 协同过滤的损失为:

    \[ \mathcal{L}_{\text{CF}} = \sum_{(u, i, j) \in \mathcal{O}} -\ln \sigma \big( \hat{y}(u, i) - \hat{y}(u, j) \big). \]

  • 最终的损失为:

    \[ \mathcal{L}_{\text{KGAT}} = \mathcal{L}_{\text{KG}} + \mathcal{L}_{\text{CF}} + \lambda \|\Theta\|_2^2. \]

代码

[official]

标签:mathbf,Network,big,KGAT,Attention,text,mathcal,pi
From: https://www.cnblogs.com/MTandHJ/p/18076241

相关文章

  • 猫头虎分享已解决Bug || 网络攻击(Network Attack):DDoSError, NetworkIntrusion
    博主猫头虎的技术世界......
  • 孪生网络(Siamese Network)和数字孪生的区别?
    1.孪生网络孪生网络是一种特殊的网络框架,基于两个人工神经网络建立的耦合构架,通过比较两个样本在高维度空间的表征来判断它们的相似程度。它包含两个相同结构的神经网络,一个用于学习,一个用于验证学习效果。在训练过程中,两个网络同步更新参数,但验证网络的参数更新较慢,这有......
  • Masked Self-Attention(掩码自注意力机制)
    2024.3.13MaskedSelf-Attention(掩码自注意力机制)自注意力机制自注意力机制计算单词相似度时,已经明确知道这句话有多少个单词,而掩码则是分批次给,最后一次给全为什么要做这个改进:生成模型,生成单词,是一个个生成的当我们做生成任务的是时候,我们也想对生成的这个单词做注意力......
  • Self-Attention相比较RNN和LSTM的优缺点
    2024.3.13Self-AttentionSelf-Attention相比较RNN和LSTM的优缺点RNN基本单元结构无法做长序列,当一段话达到50个字,效果就很差了复杂度为n的平方$X_0$往后面越传播,信息越少(如你爷爷的爷爷的爷爷的名字)LSTM基本结构LSTM通过各种门,遗忘门,选择性的可以记忆之前的信息(200词)Se......
  • Adaptive Diffusion in Graph Neural Networks论文阅读笔记
    AdaptiveDiffusioninGraphNeuralNetworks论文阅读笔记Abstract​ 最近提出了图扩散卷积(GDC),利用广义图扩散来扩展传播邻域。然而,GDC中的邻域大小是通过在验证集上进行网格搜索来手动对每个图进行调整的,这使得其泛化实际上受到了限制。为了解决这个问题,我们提出了自适应扩散......
  • Be Your Own Teacher: Improve thePerformance of Convolutional Neural Networks via
    摘要本文中,提出了一种名为自蒸馏的通用训练框架,该框架通过缩小网络的规模而不是扩大网络的规模,而提高卷积神经网络的性能。传统的知识蒸馏是一种网络之间的知识转换方法,它迫使学生神经网络接近预先训练的教师神经网络的softmax层输出,与此不同,所提出的自蒸馏框架提取网络......
  • Self-Attention和Attentiond的区别
    2024.3.12Self-Attention和Attentiond的区别注意力机制是一个很宽泛(宏大)的一个概念,QKV相乘就是注意力,但是他没有规定QKV是怎么来的通过一个查询变量Q,去找到V里面比较重要的东西假设K==V,然后QK相乘求相似度A,然后AV相乘得到注意力值Z,这个Z就是V的另外一种形式的表示Q可以是任何......
  • Attention(注意力机制)
    2024.3.12Attention(注意力机制)##怎么做注意力我(查询对象Q),这张图(被查询对象V)如:我看这张图,第一眼,我就会去判断哪些东西对我而言更重要,哪些有更不重要(去计算Q和V里的事物的重要度)重要度计算,其实是不是就是相似度计算(更接近)Q,$K=k_1,k_2,\cdots,k_N$,(图中所有事物的一个列......
  • C++ Qt开发:QNetworkAccessManager网络接口组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QNetworkAccessManager组件实现Web网页访问。QNetworkAccessManager是Qt网络模块中的关......
  • userNetworkMonitor
    constuseUserNetworkMonitor=()=>{constinfo={startTime:0,duration:5000,};lettimer=null;constloop=(url,interval=5*1000)=>{timer=setTimeout(()=>{conststartTime=Date.now();info.sta......