首页 > 其他分享 >HS-GCN Hamming Spatial Graph Convolutional Networks for Recommendation

HS-GCN Hamming Spatial Graph Convolutional Networks for Recommendation

时间:2023-08-08 11:35:59浏览次数:40  
标签:Convolutional mathbf HS Recommendation GCN ui text mathcal

目录

Liu H., Wei Y., Yin J. and Nie L. HS-GCN: Hamming spatial graph convolutional networks for recommendation. IEEE TKDE.

二值化的 node embedding.

符号说明

  • \(\mathcal{U}\), users;
  • \(\mathcal{I}\), items;
  • \(\mathcal{V} = \mathcal{U \cup I}\), nodes;
  • \(\mathcal{G} = (\mathcal{V}, \mathcal{E})\), graph;
  • \(\mathbf{h}_u \in \{+1, -1\}^{K}\), user embedding;
  • \(\mathbf{h}_i \in \{+1, -1\}^{K}\), item embedding;
  • \(\text{sim}(u, i) = \frac{1}{K} \sum_{k=1}^K \mathbb{I} (h_{uk} = h_{ik})\), Hamming similarity;

HS-GCN

Initial Layer

  • 为了能够训练, 在实际中, 我们会利用两个 proxy \(\mathbf{e}_u, \mathbf{e}_i\) 来实际建模, 并令

    \[\mathbf{h}_u = \lim_{\beta \rightarrow \infty} \text{tanh}(\beta \mathbf{e}_u), \mathbf{h}_i = \lim_{\beta \rightarrow \infty} \text{tanh}(\beta \mathbf{e}_i). \]

  • 下面我们用 \(\mathbf{h}^{(0)}\) 表示这类初始化, 并用 \(\mathbf{h}^{(l)}\) 表示第 l 层的输出.

Propagation Layer

  • HS-GCN 希望利用 Propagation Layer 来聚合邻居的信息, 具体的:

    \[\mathbf{m}_u^{(l)} = \text{clamp}(\mathbf{x}) = \left \{ \begin{array}{ll} 1, & \text{if } \mathbf{x} > 1, \\ \mathbf{x}, & \text{if } -1 \le \mathbf{x} \le 1, \\ -1, & \text{if } \mathbf{x} < -1. \end{array} \right., \]

    其中 \(\mathbf{x} = \mathbf{h}_u^{(l)} + \sum_{i \in \mathcal{N}_u} \mathbf{h}_i^{(l)}\).

  • 显然 \(\mathbf{m}_u^{(l)} \in \{-1, 0, 1\}^K\).

Hash Code Encoding

  • 获得 \(l+1\) 层的输出, HS-GCN 通过:

    \[\mathbf{h}_u^{(l+1)} = \mathbf{c}_u^{(l)} \odot \mathbf{h}_u^{(l)} \\ \mathbf{c}_u^{(l)} = - \text{ReLU}(-2 \times \mathbf{d}_u^{(l)}) + \mathbf{1}, \\ \mathbf{d}_u^{(l)} = \mathbf{h}_u^{(l)} \odot \mathbf{m}_u^{(l)}. \]

  • 我们注意到, \(\mathbf{d}_u^{(l)} \in \{-1, 0, 1\}^K\), 其中 \(-1\) 表示当前的结点表示 \(\mathbf{h}_u^{(l)}\) 和邻居的结点在某个位置上很不相似, 而 \(1\) 则表示和绝大部分结点的方向是一致的.

  • \(\mathbf{c}_u^{(l)}\) 则是进一步考虑 \(0\) 的情况, 它实际上是将 \(0\) 纳入 \(-1\) 的范围.

矩阵表示

  • 上述的过程可以用如下的矩阵表示:

    \[\mathbf{H}^{(l+1)} - \text{ReLU}(-2 \times \text{clamp}((\mathbf{A} + \mathbf{I}) \mathbf{H}^{(l)}) \odot \mathbf{H}^{(l)}) + \mathbf{1} \mathbf{1}^T. \]

    其中

    \[\mathbf{A} = \left [ \begin{array}{cc} \mathbf{0} & \mathbf{R} \\ \mathbf{R} & \mathbf{0} \end{array} \right ]. \]

Prediction Layer

  • HS-GCN 用最后一层的输出作为最后的 embedding

    \[\mathbf{h}_u^* = \mathbf{h}_u^{(L)}, \mathbf{h}_i^* = \mathbf{h}_i^{(L)}, \]

    然后

    \[\hat{y}_{ui} = {\mathbf{h}_u^*}^T \mathbf{h}_i^*. \]

Optimization

  • HS-GCN 采用如下的损失训练:

    \[\mathcal{L} = \mathcal{L}_{cross} + \lambda_1 \mathcal{L}_{rank}. \]

  • 其中

    \[\mathcal{L}_{cross} = -\sum_{r_{ui} \in \mathbb{R}} r_{ui} \log (\sigma(\hat{y}_{ui})) + (1 - r_{ui}) \log (1 - \sigma(\hat{y}_{ui})) \]

    为 BCE 损失.

  • 另外

    \[\mathcal{L}_{rank} = \sum_{(u, i, j) \in \mathcal{D}} \max (0, -\sigma(\hat{y}_{ui}) + \sigma(\hat{y}_{uj}) + \alpha), \]

    其中 \(\mathcal{D} = \{(u, i, j)| (u, i) \in \mathcal{R}^+, (u, j) \in \mathcal{R}^-\}\). \(\mathcal{R}^+, \mathcal{R}^-\) 分别表示 observed 和 unobserved interactions, \(\alpha\) 表示 margin.

代码

[official]

标签:Convolutional,mathbf,HS,Recommendation,GCN,ui,text,mathcal
From: https://www.cnblogs.com/MTandHJ/p/17613703.html

相关文章

  • 实时入库不用愁,HStore帮分忧
    海量数据时代,如何实现数据实时入库与实时查询?GaussDB(DWS)HStore表为数据高效存储与查询提供了哪些助力?本期《数仓实时入库利器—HStore表原理与应用实践详解》的主题直播中,我们邀请到华为云EIDTSE技术布道师马俊松,针对GaussDB(DWS)HStore表与开发者和伙伴朋友们展开交流互动。......
  • HS8145C5光猫桥接与路由器拨号
    前言  前几天在外边连接家里的设备总是提示离线,最奇怪的是离线时间段集中在某一个时间范围内,一度怀疑是网络不稳定造成的。  我起初的想法是,写个程序用来监控网络状况,一旦检测到异常及时向我发送通知,但是刘老哥建议我把光猫改成桥接用路由器拨号,每天定时重启一下得了。试了......
  • 08、从0到1实现SECS协议之HSMS协议中的connection
    前面实现优先级队列,现在就准备开始实现HSMS协议中如何处理connection。在之前定义的接口中,我们定义了IConnection接口,现在我们先来实现这个接口。我们知道,此软件既可以作为Host端,主动去连接equipment,也是可以作为equipment端,让其他系统来连接我们的系统。因此,connect......
  • HashSet的new两个相同的String类字符串的变化
    一、定义HashSet的底层是通过HashMap实现的,所以要通过HashMap去寻求答案二、源码分析其实关于这个问题的答案关键源码需在putVal方法中寻找,我用的版本是JDK8//源码publicVput(Kkey,Vvalue){returnputVal(hash(key),key,value,false,true);//......
  • vs编译 error C2001: 常量中有换行符(XTHS实测有效)
    出现该错误的其中一种可能:编码问题,其中一个解决办法是:找到这个文件位置,选择用Notepad++方式打开,选择菜单项中的"编码"---》“使用UTF-8-BOM编码”,然后保存,再回到VS将会收到重新加载文件的提示。 转自:vs编译errorC2001:常量中有换行符_简单前行的博客-CSDN博客......
  • .Net设置SplashScreen,在高DPI下不居中的解决方案
    .Net设置SplashScreen,在高DPI下不居中的解决方案根据.Net官方文档,设置图片类型的软件的启动屏幕非常简单,只需要将图片放在工程里,并将图片的生成操作设置为SplashScreen后即可。但是这个办法在高DPI屏幕中没有适应,图片显示的位置不居中,对于强迫症来说会非常非常难受。查......
  • 理解了 HSL 颜色表示法,就能实现 ColorPicker 组件
    HSL颜色表示法是一种常用的颜色表示方法,它由色相(H)、饱和度(S)和亮度(L)三个参数组成。色相表示颜色的种类,饱和度表示颜色的纯度,亮度表示颜色的明暗程度。HSL颜色表示法相对于其他颜色表示法来说,更符合人类对颜色的感知和理解,因此被广泛应用于图形界面设计和网页开发等领域。实现一个Col......
  • kernel源码(二十三)Bochs运行linux0.11
    1下载Bochshttps://sourceforge.net/projects/bochs/我下载的版本为Bochs-win64-2.7.exe,双击即可安装2运行linux0.112.1不使用配置文件http://oldlinux.org/Linux.old/images/下载如下两个镜像bootimage-0.11-20040305操作系统引导镜像,包含了操作系统启动引导程序和......
  • HS6621CXC低功耗蓝牙5.1支持nordic2.4G私有协议SOC芯片
    2.4Ghz的soc蓝牙5.1芯片HS6621CC语音遥控/智能门锁M4F内核兼容NORDIC的2.4G私有协议超低功耗性能特点射频收发器-95.5dBm灵敏度@1Mbps93dBm灵敏度@2Mbps98dBm灵敏度@500Kbps-101.5dBm灵敏度@125KbpsTX功率-20~+9dBmCPUARMCortexTM-M4F,最大64MHZ串行线......
  • UE5 FPaths 路径 使用记录
    相关路径节点获取配置文件路径FStringUBlueprintPathsLibrary::EngineConfigDir(){ returnFPaths::EngineConfigDir();}注意ProjectContentDir函数编辑模式下返回全路径,运行模式下返回相对路径GetProjectContentDirectory函数返回全路径......