CNAN知识图谱辅助推荐系统

news2025/1/13 7:47:56

CNAN知识图谱辅助推荐系统

文章介绍了一个基于KG的推荐系统模型,代码也已开源,可以看出主要follow了KGNN-LS 。算法流程大致如下:

img

1. 算法介绍

算法除去attention机制外,主要的思想在于:user由交互过的item来表示、item由交互过的user交互过的item表示。如下图:

img

即user自身是不具备embedding表示的,完全靠KG部分。 这样的好处在于可以很方便的处理新增加的user,并不需要重新训练新用户的embedding。

user的initial entity set(即该user交互过的item id在KG的id)定义为:

img

item的initial entity set定义为:

img

�� 是item交互过的user交互过的item集合,公式3将item id转化为在KG的id,即对齐操作。

由此,我们相当于得到了user、item的邻居set,再由这些邻居set在KG中延伸出 � 阶邻居做聚合,第 � 阶tail entity集合与三元组集合定义为:

img

img

符号 � 代表某个user或item。如下图所示,多个Layer即代表多阶邻居:

img

这一步在算法执行中会占据相当大的时间。

2.聚合方式

对于某个triplet (��ℎ,�,���) 而言,我们定义从tail entity ��� 沿着 � 聚合到head entity �ℎ� 得到的attentive embedding �� :

img

img

img

CKAN的聚集首先将不同layer(总共 � 个layer)的三元组分别聚集得到 �� 、再将处于相同layer的 �� 累加到一起作为该layer的表示:

img

接着,除去这 � 个向量外,还会将initial entity set的embedding累加起来作为第0阶layer表示:

img

对于target item而言,它自身也是entity,所以单独多引入一个origin embedding:

img

因此,target user和target item拥有如下embedding set:

img

最后聚合target user/target item的embedding set得到final embedding。正如图一的Knowledge-aware Attentive Network所示。聚合的方式有三种:

img

可以看出CKAN的聚集和其他的GNN算法不同,一般的GNN聚集是聚集多次、最后多阶信息都会聚集在target node上。训练采用cross-entropy loss。

3.实验

实验对比如下:

img

loss。

3.实验

实验对比如下:

[外链图片转存中…(img-XHaKhNr4-1709550222389)]

数据集均是采用KGNN-LS使用的数据集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1491130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端小案例——登录界面(正则验证, 附源码)

一、前言 实现功能: 提供用户名和密码输入框。当用户提交表单时,阻止默认提交行为。使用正则表达式验证用户输入的内容,判断输入的是有效的邮箱地址还是身份证号码。根据验证结果,在输入框下方显示相应的提示信息。 实现逻辑&a…

【C++庖丁解牛】初始化列表 | Static对象 | 友元函数

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1. 再谈构造函数1.1 …

mininet虚拟网络中的主机与宿主Ubuntu及因特网互通实现

环境: Win10(物理机),Vmware workstation ,Ubuntu(vm中的虚拟机),mininet 构建的虚拟网络环境说明: 在一win10的物理机中安装了vm平台,在vm中加载了一ubuntun系统,在改ubuntu系统中安装了mininet。 目标: 通过mininet 构建虚拟网络环境(使用python代码构建一个交换…

【开源】SpringBoot框架开发用户画像活动推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 兴趣标签模块2.3 活动档案模块2.4 活动报名模块2.5 活动留言模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 数据流程设计3.4 E-R图设计 四、系统展示五、核心代码5.1 查询兴趣标签5.2 查询活动推荐…

mysql 同一条排序语句查询出来的结果某几条没按照排序查询

1501这个机床order 1 2 3 1 2 3 1 2 3 1502这个机床order 2 3 1 2 3 1 2 3 1 原因是order存在一致的 第一个123 第二个也有123 所以存在随机情况 正常应该是123456 但是需求是123 123 所以再按照id重新排序一下 原sql :select bindType.id, bindType.process_num as…

大模型学习笔记五:RAG

文章目录 一、RAG介绍1)局限性2)通过检索增强生成二、RAG系统的基本搭建流程1)搭建流程简介2)文档的加载和切割3)检索引擎4)LLM接口封装5)prompt模板6)RAG Pipeline初探7)关键字检索局限性三、向量检索1)文本向量2)向量相似度计算3)向量数据库4)基于向量检索的RAG…

一本书讲透ChatGPT,实现从理论到实践的跨越!大模型技术工程师必读书籍【送书活动】

目录 前言一、内容简介二、作者简介三、专家推荐四、读者对象五、目录福利总结 前言 OpenAI 在 2022 年 11 月推出了人工智能聊天应用—ChatGPT。它具有广泛的应用场景,在多项专业和学术基准测试中表现出的智力水平,不仅接近甚至有时超越了人类的平均水平…

40个Python字符串实例

Python 字符串是 Python 编程语言中最常用的数据类型之一,它可以表示文本或一组字符。Python 中的字符串是不可变的序列,意味着一旦创建,其值就不能被修改。下面是一些关于 Python 字符串的介绍。 概述 创建字符串:可以使用单引…

HI3516DV300 HI3516DRBCV300 海思安防监控芯片

Hi3516D V300是专为行业专用智能高清网络摄像机设计的新一代SoC。引入新一代ISP、最新H.265视频压缩编码器、高性能NNIE引擎,使Hi3516D V300在低码率、高图像质量、智能处理分析、低功耗等方面领先业界。能量消耗。Hi3516D V300集成了POR、RTC、音频编解码器和待机唤…

AI大模型的预训练、迁移和中间件编程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

测试用例术语5.0

一、软件测试中术语 1.动态测试(dynamic testing):通过运行软件的组件或 系统来测试软件 例如:一辆汽车发动并行使测试 2.静态测试(static testing):对组件的规格说明书进行 评审&#xff0c…

Linux——自写一个简易的shell

目录 前言 一、打印提示信息 二、分割字符串 三、替换程序 前言 之前学习了很多进程相关的知识,包括环境变量、进程的创建与退出、进程等待、进程替换。现在可以用所学的作一个小总结,手撕一个shell解释器,大致的思路是先通过环境变量获…

【轮式平衡机器人】——TMS320F28069片内外设之Timer_IT(补:CCS程序烧录方法)

引入 Timer_IT 指的是 TMS320F28069 的定时器中断功能。在微控制器或数字信号控制器中,定时器是一个非常重要的外设,它可以用来产生固定时间间隔的中断,或者用来精确计算时间。 Timer_IT 的主要特点如下: 定时功能:…

数组常见算法

一、数组排序 冒泡排序 本篇我们介绍最基本的排序方法:冒泡排序。 实现步骤 1、比较两个相邻元素,如果第一个比第二个大,就交换位置 2、对每一对相邻元素进行同样的操作,除了最后一个元素 特点 每一轮循环后都会把最大的一个…

Java基础概念 1-6注释关键字字面量变量-基本用法变量-使用方式和注意事项变量练习-计算公交车的人数

Java基础概念 1-注释 单行注释 // 多行注释 /* */ 文档注释 /** */ --暂时不用 例: public class HelloWorld{ //main方法,表示程序的主入口.public static void main (String[] args){/*输出语句(打印语句)会把小括号内的内容进行输出打印.*/System.out.…

网盘拉新平台,如何授权对接“星子助推”?

找到“星子助推”:首先,找到“星子助推”这个授权渠道。他们是网盘服务提供商的合作伙伴,为你提供机会。注册并申请授权:在“星子助推”的平台上注册,并同时申请授权。填写邀请码8x25k,提交申请。获得授权并…

怎么写苹果群控核心功能的源代码!

随着移动设备的普及和技术的不断发展,苹果设备群控技术成为了许多开发者关注的焦点,苹果群控技术允许开发者通过编写源代码,实现对多台苹果设备的集中管理和控制。 一、了解苹果群控技术的基本原理 在编写苹果群控核心功能的源代码之前&…

如何使用生成式人工智能探索视频博客的魅力?

视频博客,尤其是关于旅游的视频博客,为观众提供了一种全新的探索世界的方式。通过图像和声音的结合,观众可以身临其境地体验到旅行的乐趣和发现的喜悦。而对于内容创作者来说,旅游视频博客不仅能分享他们的旅行故事,还…

Qt绘制动态罗盘

介绍:罗盘指针以30角旋转巡逻,扫描航海范围内的点位,并绘制点云。字段信息在表格中显示,该数据都存储在数据库中。选择不同的范围,显示该范围内的点位。 #include "mainwindow.h" #include "ui_mainwi…

自建Redis蜜罐以捕获和分析潜在攻击

一、引言 随着网络攻击的日益频繁和复杂,传统的防御措施往往难以应对。蜜罐作为一种主动防御技术,通过模拟有价值的服务来吸引攻击者,从而收集和分析攻击数据,提高网络安全性。本文将介绍如何自建一个Redis蜜罐,以捕获…