超图学习及其在推荐系统中的应用

Hypergraph Learning and Its Application in Recommendation System

超图学习及其在推荐系统中的应用

本文基于以下公开讲座及论文来介绍超图学习及其在推荐系统中的应用:

1. 研究背景

我们生活的世界上存在着大量的复杂系统,绝大部分可以通过形形色色的复杂网络来加以描述,其中图是描述复杂网络拓扑的工具。随着网络规模的日益扩大和连接的复杂多变,出现了许多超大规模的复杂网络,这些网络节点和边的数量众多,节点间的关系复杂,并且处在不断动态变化之中。复杂网络的普通图表示有时不能完全刻画这些真实世界网络的特征。因此,超网络应运而生。超网络的拓扑结构是超图,超图中的“超边”可以包含任意多个节点,表示节点之间复杂多变的多维关系。在现实生活中超网络已经被广泛应用在社会、生物、生态和科技等系统中。

复杂信息建模与优化(图片来自高跃公开讲座)

  • 多模态:多模态数据是指对于同一个描述对象,通过不同领域或视角获取到的数据,并且把描述这些数据的每一个领域或视角叫做一个模态。由两种或两种以上模态组成的数据称之为多模态数据(多模态用来表示不同形态的数据形式,或者同种形态不同的格式,一般表示文本、图片、音频、视频、混合数据)。
  • 异构: 不同种类、不同版本或数据之间具有不同结构的数据。在知识图谱中,实体类型数量|A|>1 or/and 关系类型数量|R|>1,即为异构信息网络。

2. 普通图与超图的区别

  • 超图可以使用它灵活的超边建模复杂数据关联
    普通图的边最多连接两个节点(点对关系),而超图的边能够连接任意多个节点(非点对关系)

在这里插入图片描述

  • 超图可以使用它灵活的超边建模多模态数据和混合结构的数据
    直接通过超边关联矩阵的拼接来融合多模态数据

在这里插入图片描述

  • 普通图的邻接矩阵与超图的超边矩阵

在这里插入图片描述

  1. 普通图使用节点与节点的关联构建矩阵:
    如下图节点v1与节点v2有连接,则矩阵中的对应位置v1-v2/v2-v1标为1
  2. 超图使用节点和超边的关联构建矩阵:
    如下图超边e1连接节点v5和节点v6,则矩阵中的对应位置v5-e1/v6-e1标为1

3. 超图的构建

超图建模与优化(图片来自高跃公开讲座)

4. 超图的学习

  • 超图的定义

在这里插入图片描述

  • 超图的节点度及边度

在这里插入图片描述

  • 超图的更新公式

在这里插入图片描述

  • 超图学习案例

在这里插入图片描述

  • 超图学习与普通图卷积的区别

在这里插入图片描述

  • 超图的学习模型 2

在这里插入图片描述

5. 超图学习增强的推荐算法DHCF

  • 基于图的CF和所提出的双通道超图CF之间的比较
    如图所示,给定原始的用户-项目连接,基于图的方法生成一个图结构来学习表示和推荐结果。与这些方法不同的是,所提出的DHCF框架可以分别在两个超图中使用高阶信息来学习用户和项的表示。这两个超图,即用户超图和项目超图,可以在复杂的数据相关建模和与不同类型的数据合并时更加灵活。
    在这里插入图片描述
  1. 根据给定的数据为用户和项目构建多个连接组:这里可以将连接生成规则看作是描述原始数据的一个新视角,可以灵活地定义。例如,它可以将具有相似行为但没有直接连接的用户关联起来,因此在连接组中基于这种关联规则构建的关系可以表示高阶相关性,从而生成相应的超边。
  2. 分而治之:基于这些生成的连接组(即超边),可以为用户和项目构造两个超图,分别代表这两个通道的表示。文章引入了一种新的跳跃超图卷积(JHConv),通过聚合邻域的嵌入,并引入先验信息,有效地在超图上进行信息传播。
  3. 联合学习:学习到的用户和项目表示可以进一步融合,以生成推荐列表。
  • 定义不同的关联规则建立多个超边组

在这里插入图片描述
在这里插入图片描述

  • 模型架构

在这里插入图片描述

  1. 构建user和item的初始表示。通过不同的关联规则定义一系列超边组以显式建模高阶关联,并融合成超图关联矩阵H:
    在这里插入图片描述
  2. 第一阶段:超图上的高阶信息传递
    提出新的超图卷积方法——跳跃超图卷积(JHConv)
    JHConv同时考虑自身原始特征和领域聚合特征,有效防止信息稀释
    在这里插入图片描述
  3. 第二阶段:联合消息更新。在同一空间中共同优化user和item。
    在这里插入图片描述

6. 超图在其他领域的应用

在这里插入图片描述

  • 相关论文(来自高跃公开讲座)

在这里插入图片描述
在这里插入图片描述

参考资料


  1. Ji S, Feng Y, Ji R, et al. Dual channel hypergraph collaborative filtering[C]//Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2020: 2020-2029. ↩︎

  2. Feng Y, You H, Zhang Z, et al. Hypergraph neural networks[C]//Proceedings of the AAAI conference on artificial intelligence. 2019, 33(01): 3558-3565. ↩︎

  • 20
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
,我们可以使用 bindPopup 属性来绑定一个弹出框,但是这个弹出框的内容通常是一个固定的字符串或者 HTML 代码。如果我们想要在弹出框显示一个列表,我们可以使用 JavaScript 来动态生成该列表,然后将其插入到弹出框。 下面是一个示例代码,演示了如何在使用 bindPopup 属性来显示一个列表: ```javascript // 创建一个层 var layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", url); // 设置层的 click 事件处理程序 layer.events.on({ "click": function(event) { var feature = event.feature; // 创建一个列表 var list = document.createElement("ul"); for (var i=0; i<5; i++) { var item = document.createElement("li"); item.innerHTML = "Item " + i; list.appendChild(item); } // 创建一个弹出框,并将列表插入到其 var popup = new SuperMap.Popup.FramedCloud( "popup", feature.geometry.getBounds().getCenterLonLat(), null, list, null, true ); // 将弹出框添加到地上 map.addPopup(popup); } }); // 将层添加到地上 map.addLayer(layer); ``` 在上述代码,我们首先创建了一个 TiledDynamicRESTLayer 对象,并设置了它的 click 事件处理程序。当用户点击该层时,我们创建了一个列表,并使用 JavaScript 动态生成了列表项。然后,我们创建了一个 FramedCloud 弹出框,并将列表插入到其。最后,我们将弹出框添加到地上,以便用户可以在点击层时看到列表。 需要注意的是,由于弹出框的内容可以是任意的 HTML 代码,因此我们可以使用 JavaScript 来生成复杂的内容,例如表格、表等。但是需要注意弹出框的大小和样式,以确保其在地上的显示效果良好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值