Hierarchical attentive knowledge graph embedding for personalized recommendation

2023-10-31

Hierarchical attentive knowledge graph embedding for personalized recommendation

1. 背景

KG可以为user和物品之间的交互提供丰富的补充信息。大多数现有的方法都不足以利用KG来捕获用户偏好,因为它们要么通过具有有限表达性的路径来表示用户-物品的连接,要么通过在整个KG上传播信息来隐式地建模,并带有不可避免的噪声。因为基于路径的方法的线性路径只能捕获用户-物品连接的部分语义,而用户-物品连接最初是由具有丰富语义和非线性拓扑的子图表示的。基于传播的方法不是直接表示用户-物品连接性,而是通过在整个KG上传播信息来隐式地对它们进行建模,其中用户偏好通常是通过聚合来自所有邻居的信息来学习的,会引入与目标物品无关的噪声。

因此作者设计看HAKG利用知识图嵌入进行有效的推荐。HAKG探索了连接KGs中用户-物品项目对的子图,以表征它们的连通性,这在概念上优于大多数现有方法,因为:(1)作为独立路径的非线性组合,子图包含KGs的丰富语义和拓扑,比线性路径更具表现力;(2)子图只保留与特定用户-物品连通性相关的实体和关系,这能够避免从整个KG引入噪声。

HAKG旨在有效地将子图的综合信息编码为低维表示(即嵌入),以更好地揭示用户偏好。子图编码是通过分层关注嵌入学习过程实现的,该过程包含两个核心步骤:(1)实体嵌入学习,通过分层传播机制学习子图中实体的嵌入。特别是,每一层基于从其邻居传播的语义更新实体嵌入,并且多层堆叠以将子图拓扑编码为学习到的实体嵌入;(2)子图嵌入学习,对实体嵌入进行聚合,得到整体子图嵌入。我们采用一种新的自注意机制来区分子图中实体的重要性,从而学习一种有效的子图嵌入,以更好地表示用户-项目的连通性。

2. 模型

在这里插入图片描述

2.1 子图构建

将子图挖掘转换为路径采样,然后组装user-item对之间的采样路径去重建子图。

  • Path Sampling
    统一采样连接user与item对的K条路径,每条路径的长度不超过6。
  • Path Assembling
    通过组合(u,i)的采样路径,得到(u,i)的子图。将路径中的object和connect映射道关系和实体。

2.2 Hierarchical attentive subgraph encoding

两个挑战:子图中有丰富的语义信息和高阶拓扑信息,以及不同实体对传播用户偏好的重要性。

分层嵌入学习过程包括:(1)实体嵌入学习,通过分层传播机制利用子图的语义和拓扑,从而学习子图中实体的有效嵌入;(2)子图嵌入学习,将实体嵌入集中起来,得到整体子图嵌入,其中利用自注意机制来区分实体的重要性。

2.2.1 实体嵌入学习

主要包括三种操作:嵌入初始化、语义传播和语义聚合。

  • Embedding Initialization

首先采用Embedding-lookup 层,找到每个实体及实体类型对应的低维嵌入向量,再将这两个向量拼接起来。
在这里插入图片描述

  • Semantics Propagation

KG中来自各种关系的丰富语义信息对理解不同用户的意图很重要,因此作者再传播过程中对异构关系进行显示建模。
在这里插入图片描述
HAKG从各种实体和关系中充分编码子图的丰富语义,有助于更好的实体嵌入学习。

  • Semantics Aggregation

语义聚合操作聚合来自邻居的语义,以细化目标实体的嵌入。
在这里插入图片描述
最终得到的实体嵌入为:
在这里插入图片描述
然后进一步对子图构造实体嵌入矩阵:
在这里插入图片描述

2.2.2 子图嵌入学习

子图嵌入学习通过集中实体嵌入生成整体子图嵌入,其中利用自注意力机制区分子图中实体的重要性以增强嵌入学习。

  • 自注意力机制
    对于有n个实体的子图,自注意力机制以实体嵌入矩阵作为输入,通过注意力网络输出图中实体的重要性:

在这里插入图片描述
其中m是注意力头数,n是子图中的实体个数。

基于注意力得分,推导出子图的嵌入:
在这里插入图片描述

2.3 偏好预测

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hierarchical attentive knowledge graph embedding for personalized recommendation 的相关文章

随机推荐

  • mongodb的更新语句

    MongoDB 使用 update 和 save 方法来更新集合中的文档 update 方法 update 方法用于更新已存在的文档 语法格式如下 db collection update
  • STM32--0.96寸OLED显示屏

    1 OLED屏幕介绍 OLED有机发光二极管又称为有机激光显示 OL ED显示技术具有自发光的特性 采用非常薄的有机材料涂层 和玻璃基板 当有电流通过时 这些有机材料就会发光 而且OLED显示屏幕可视角大 功耗低 OL ED由于同时具备自发
  • 基于python的12306自动抢票系统的设计与实现

    铁路售票系统12306网站作为一个广受人们的日常使用工具 受大极大的关注 铁路售票的管理者都主要考虑降低成本 提升售票服务满意度 一年一度的春运和节假日出行高峰期 给众多的出行群众者带来了极大的烦恼 也给用户购买火车票造成了巨大的不方便 本
  • 未来几年学什么设计更有前途?

    设计 是把一种设想通过合理的规划 周密的计划 通过各种感觉形式传达出来的过程 是设计师有目标有计划的进行技术性的创作与创意活动 设计的任务不只是为生活和商业服务 同时也伴有艺术性的创作 它是一个很大范围的概念 如果单问未来几年学什么设计更有
  • 朴素贝叶斯分类器(Naive Bayes Classifiers)

    原文地址 Naive Bayes Classifiers 本文讨论的是朴素贝叶斯分类器 Naive Bayes classifiers 背后的理论以及其的实现 朴素贝叶斯分类器是分类算法集合中基于贝叶斯理论的一种算法 它不是单一存在的 而是
  • 西门子工业无线IWLAN和漏波电缆RCoax的安装与配置方法

    1 目的 安装和配置西门子IWLAN工业无线通信 包括工业无线AP 客户端和RCoax漏波电缆 从而实现两个PLC的无线通信 智能IO设备 博途工控人平时在哪里技术交流博途工控人社群 博途工控人平时在哪里技术交流博途工控人社群 2 硬件布置
  • 基于Vue + Antd 搭建自己的博客后台管理系统

    博客后台管理 博客前台的项目地址 github com WqhForGitHu 前言 博客后台管理是基于 Vue Antd 实现的 Antd 确实是非常适合中后台应用的开发 有非常多的组件可以使用 非常多的组件可以使用 技术栈 Vue an
  • 将秒数转化为日期、时、分、秒

    1 说明 笔者最近在开发过程中 需要进行时间上的处理的地方比较多 有时候没有处理好导致出现各种的错误 这里主要是讲一下 如何时将秒数的时间转化为 yyyy MM dd HH mm ss 的格式 例如 2016 12 04 16 40 23的
  • 全备份、增量备份与差量备份

    基本概念 全备份 做的一个完整备份 差量备份 以上一次的全备份为基本做的备份 增量备份 以上一次全备份或增量备份为基本做的备份 看了概念以后是不是还是一头雾水 呵呵 正常 不过没关系 下面会举例说明 如果版本库不是很大 直接做全备份就好了
  • python--打字练习的成绩判定

    题目 模拟打字练习程序 假设original为原始内容 user Inputs为用户输入的内容 要求 用户输入的内容长度不得大于原始内容长度 若对应位置字符一致 则认为正确 否则 判定输入错误 最后成绩为 正确的字符数量 原始字符串长度 按
  • Jsoup解析Html获取内容

    在做自己的博客时遇到问题 文章列表需要文章内容的第一段作为列表的内容展示 但是编辑采用的是富文本编辑器 内容为html格式 这是上网搜到Jsoup可以解析html 希望能帮到需要的小伙陪 p span style font size 6 3
  • msvcr110.dll丢失的解决方法哪种好,推荐这个4种解决方法

    Msvcr110 dll是Microsoft Visual Studio 2012的运行时组件之一 这个DLL文件包含一些用于Windows操作系统的C 函数库 当程序需要这些函数时 它们会被加载到内存中 以便程序可以使用它们 当计算机提示
  • 程序员挣够了钱,到中年失业真的很可怕吗?

    最近一刷知乎全部都是大龄程序员失业危机 真的有这么可怕吗 程序员35岁就真的到了瓶颈期 我不这么认为 挣够了钱 当然不可怕 问题是没挣够啊 按题主的算法是 大城市薪资1w以上 45岁失业 工作20年可以挣够钱 那我们现在来算一下 20年12
  • 《HarmonyOS物联网应用开发》课程上线

    讲师简介 51CTO的学员们 大家好 我是51CTO学院的新晋讲师许思维 目前就职于江苏润和软件股份有限公司 任高级软件工程师一职 同时也是企业内训讲师 我擅长的领域包括Linux系统编程 单片机编程 以及Android App和Andro
  • multiple definition of `qMain(int, char**)'错误该怎么处理!

    原因 在 pro文件中重复使用了一些文件
  • ECMAScript5,6,7从基本语法到高级函数

    尚硅谷ES5 6 7教程 01 尚硅谷 ECMAScript入门介绍 01 尚硅谷 ECMAScript入门介绍
  • 下载chromium源码执行 generate_location_tags.py错误returned non-zero exit status 1

    今天下载chromium 碰到这个错误 以前也下载过 都很顺利 Error Command python3 src testing generate location tags py out src testing location tag
  • SVD分解的并行实现

    在之前的文章中 我对SVD进行了大致的了解 它在互联网高端领域中有广泛的应用 至于它的一些详细应 用以后再进一步学习 现在主要的问题是如何有效地实现SVD分解 接下来我会先用两种方法来实现SVD分 解 即基于双边Jacobi旋转的SVD和基
  • Jieba库的安装

    一 jieba库安装 jieba库是第三方库 不是安装包自带 需要通过pip指令安装 gt pip install jieba 或者 pip3 install jieba 方法一 直接安装 不建议使用 亲测安装很多python库的时候大家获
  • Hierarchical attentive knowledge graph embedding for personalized recommendation

    Hierarchical attentive knowledge graph embedding for personalized recommendation 文章目录 1 背景 2 模型 2 1 子图构建 2 2 Hierarchica