引言

看过的每一篇文章,都是对自己的提高。不积跬步无以至千里,不积小流无以成江海,积少成多,做更好的自己。

本文基于2023年4月6日发表于SCIPEERJ COMPUTER SCIENCE(PEERJ计算机科学)上的一篇名为《基于正则化的图自编码器在推荐算法中的应用》(Application of graph auto-encoders based on regularization in recommendation algorithms)的文章。

本文将基于摘要和部分正文总结一些心得,记录一下自己的学习进程。

需要下载查看这篇论文的同学请登录PubScholar公益学术平台下载查看相关论文。

摘要

Social networking has become a hot topic, in which recommendation algorithms are the most important. Recently, the combination of deep learning and recommendation algorithms has attracted considerable attention. The integration of autoencoders and graph convolutional neural networks, while providing an effective solution to the shortcomings of traditional algorithms, fails to take into account user preferences and risks over-smoothing as the number of encoder layers increases. Therefore, we introduce L1 and L2 regularization techniques and fuse them linearly to address user preferences and over-smoothing. In addition, the presence of a large amount of noisy data in the graph data has an impact on feature extraction. To our best knowledge, most existing models do not account for noise and address the problem of noisy data in graph data. Thus, we introduce the idea of denoising autoencoders into graph autoencoders, which can effectively address the noise problem. We demonstrate the capability of the proposed model on four widely used datasets and experimentally demonstrate that our model is more competitive by improving up to 1.3, 1.4, and 1.2, respectively, on the edge prediction task.

翻译

社交网络已经成为一个热门话题,其中推荐算法是最重要的。近年来,深度学习与推荐算法的结合引起了广泛关注。自动编码器与图卷积神经网络的融合,在有效解决传统算法缺点的同时,未能考虑用户偏好,且随着编码器层数的增加存在过平滑的风险。引入L1和L2正则化技术,并将它们线性融合,以解决用户偏好和过平滑问题。此外,图数据中存在大量噪声数据,对特征提取产生了影响。据我们所知,大多数现有模型都没有考虑噪声,并解决了图数据中的噪声数据问题。因此,将去噪自编码器的思想引入到图自动编码器中,可以有效地解决噪声问题。在四个广泛使用的数据集上展示了所提出模型的能力,并通过实验证明了所提出模型在边缘预测任务上分别提高了1.3、1.4和1.2,更具竞争力。

推荐算法

常见的推荐算法在博主的上一篇博客中有提到,再次不做赘述。要看的小伙伴请点击Top-N推荐算法 Top-N recommendation Algorithms

基于图数据的推荐算法

本文提到,传统的机器学习无法处理复杂的图数据,而深度学习是传统机器学习的改进和拓展,深度学习增强了学习算法的结构,在研究常规和欧几里得数据方面非常有效。但是无法研究非欧几里得数据。为研究非欧几里得数据,研究人员引入图神经网络(GNN),而现有的模型没有考虑到图数据中很多无用的数据以及很多噪声数据。

注意:欧几里得数据和非欧几里得数据的区别详见知乎-数据域(欧几里得数据与非欧几里得数据)

正如文章中所说,深度学习和推荐算法的结合引起了相当大的关注,自动编码器和图卷积神经网络的集成为传统的机器学习算法提供了有效解决方案,但是没有考虑到用户偏好以及过度平滑的问题,另外,现在的大多数模型都没有考虑到噪声数据。

据此,文章提出新的解决方案:

  1. 为更好地解决平滑度问题并且更好地提取图片数据,文章融合了去噪自动编码器和图形自编码器,添加噪声有助于模型更好地提取有用的数据,以重建用户项目评分矩阵。
  2. 为更好地解决用户偏好和过拟合问题,文章引入了L1和L2正则化,

关于L1和L2正交化的详情,可以参考知乎-从0开始机器学习-L1/L2正则化(全)

  1. 文章使用ml-100k、Flixter、Douban和YahooMusic四个数据集进行了实验,验证了可行性和正确性,提出的算法偏差较小。

使用到的技术

图卷积神经网络(GCN)

文章使用了图卷积神经网络(GCN)。GCN可以提取高维图像特征,分为频域GCN和空间域GCN.GCN聚合节点本身和周围相邻节点的信息,已获得下一层节点的节点表示。

二分图

该建议基于用户和项目,假设用户和项目只有评级,没有其他关系,用户和项目形成一个二分图:

图片来自于本篇所读的论文《基于正则化的图自编码器在推荐算法中的应用》(Application of graph auto-encoders based on regularization in recommendation algorithms)。https://peerj.com/articles/cs-1335/

正则化图自动编码器推荐算法

图形自动编码器(GAE)可以实现链路预测任务。GAE的本质是在自动编码器上实现图卷积神经网络。与自动编码器类似,GAE可以重建节点之间的领接关系。

自动编码器是一种人工神经网络,用于无监督学习任务(即,没有类标签或标记数据),例如降维、特征提取和数据压缩。

他们寻求:1 接受一组输入数据(即输入);2在内部将输入数据压缩为潜在空间表示(即压缩和量化输入的单个向量);3 从这个潜在表示(即输出)重建输入数据。

参考知乎专栏-自动编码器(AutoEncoder)简介

数据集

ML-100k

Movielens数据集包含多个用户对多部电影的评级数据,下载地址为:点击进入下载页面 用户可以在其中下载ml-100k数据集。

Flixster

Flixster是一个社交电影网站,允许用户共享电影评分,发现新电影并结识具有类似电影品味的其他人。而该数据集则包含了用户之间的朋友关系。

引用自 https://www.heywhale.com/mw/dataset/5db94936080dc300371e5cb0

Douban

下载可参考 CSDN-豆瓣电影数据集分享

YahooMusic

需要下载的小伙伴点击此处

心得

对于推荐算法,看了两篇论文,都是在与深度学习结合,原来使用的机器学习算法已经完全不能满足用户对于准确度与效率等的追求。

写在最后

好了,今天的分享就到这儿了。刚开始写博客读论文,写得不好,读得很慢,也读得不好,需要慢慢沉淀。这是个长久的活,需要历久弥坚的觉悟,更需要直面困难的坚韧,希望能坚持下去,有朝一日乘云而上,翱翔九天!(是不是有些中二哈哈哈哈)。正所谓路漫漫其修远兮,吾将上下而求索,干就完了![doge]

基于正则化的图自编码器在推荐算法中的应用 Application of graph auto-encoders based on regularization in recommendation algorithms的更多相关文章

  1. 基于用户的协同过滤的电影推荐算法(tensorflow)

    数据集: https://grouplens.org/datasets/movielens/ ml-latest-small 协同过滤算法理论基础 https://blog.csdn.net/u012 ...

  2. SQL自连接(源于推荐算法中的反查表问题)

    ”基于用户的协同过滤算法“是推荐算法的一种,这类算法强调的是:把和你有相似爱好的其他的用户的物品推荐给你. 要实现该推荐算法,就需要计算和你有交集的用户,这就要用到物品到用户的反查表. 先举个例子说明 ...

  3. Attention机制在深度学习推荐算法中的应用(转载)

    AFM:Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Ne ...

  4. 将 Book-Crossing Dataset 书籍推荐算法中 CVS 格式测试数据集导入到MySQL数据库

    本文内容 最近看<写给程序员的数据挖掘指南>,研究推荐算法,书中的测试数据集是 Book-Crossing Dataset 提供的亚马逊用户对书籍评分的真实数据.推荐大家看本书,写得不错, ...

  5. (转) 基于MapReduce的ItemBase推荐算法的共现矩阵实现(一)

    转自:http://zengzhaozheng.blog.51cto.com/8219051/1557054 一.概述 这2个月为公司数据挖掘系统做一些根据用户标签情况对用户的相似度进行评估,其中涉及 ...

  6. SimRank协同过滤推荐算法

    在协同过滤推荐算法总结中,我们讲到了用图模型做协同过滤的方法,包括SimRank系列算法和马尔科夫链系列算法.现在我们就对SimRank算法在推荐系统的应用做一个总结. 1. SimRank推荐算法的 ...

  7. 用Spark学习矩阵分解推荐算法

    在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法. 1. Spark推荐算法概述 在Spark MLlib ...

  8. 推荐算法之用矩阵分解做协调过滤——LFM模型

    隐语义模型(Latent factor model,以下简称LFM),是推荐系统领域上广泛使用的算法.它将矩阵分解应用于推荐算法推到了新的高度,在推荐算法历史上留下了光辉灿烂的一笔.本文将对 LFM ...

  9. 推荐算法之因子分解机(FM)

    在这篇文章我们将介绍因式分解机模型(FM),为行文方便后文均以FM表示.FM模型结合了支持向量机与因子分解模型的优点,并且能够用了回归.二分类以及排序任务,速度快,是推荐算法中召回与排序的利器.FM算 ...

  10. 吴裕雄--天生自然HADOOP操作实验学习笔记:qq好友推荐算法

    实验目的 初步认识图计算的知识点 复习mapreduce的知识点,复习自定义排序分组的方法 学会设计mapreduce程序解决实际问题 实验原理 QQ好友推荐算法是所有推荐算法中思路最简单的,我们利用 ...

随机推荐

  1. k8s.HPA.使用自定义指标Pod自动扩容

    k8s.HPA.使用自定义指标Pod自动扩容 环境 env : kubernetes v1.22 metrics-server 0.6.1 prometheus v2.36.1 prometheus- ...

  2. 非root用户使用AntDeploy部署docker

    AntDeploy这个东西非常好用,可以直接将.NET CORE的程序直接发布到docker,刚好我有这个需求,但是程序默认给的账户示例是root账户的,需要对于需要分散开发的同学来说,这个东西风险有 ...

  3. 如何判断平台是x86还是arm

    case $(uname -m) in x86_64) echo x86;; aarch64) echo arm;; esac ref 上面的代码片改自这里 https://stackoverflow ...

  4. Qt/C++音视频开发46-音视频同步保存到MP4

    一.前言 用ffmpeg单独做视频保存不难,单独做音频保存也不难,难的是音视频同步保存到MP4中,重点是音视频要同步,其实这也不难,只要播放那边音视频同步后的数据,写入到文件即可.最难的是在播放过程中 ...

  5. Qt开源作品29-NTP服务器时间同步

    一.前言 很多软件都有时间同步的功能,尤其是Qt在嵌入式设备上的,有时候还有很多是没有UI界面的程序,而硬件上有个时钟,时间久了难免没有电,需要从服务器来同步时间来保证本地的时间是正确的,不然本地记录 ...

  6. Intellij IDEA IDE中采用Maven集成SSM框架时配置文件的功能和关系说明

    Intellij IDEA IDE中采用Maven集成SSM框架时设计的配置文件主要有:pom.xml.web.xml.applicationContext.xml.springmvc-config. ...

  7. 深度解析Mamba与状态空间模型:一图带你轻松入门

    1.概述 Transformer架构无疑是大型语言模型(LLMs)成功背后的核心动力.从开源的Mistral到封闭的ChatGPT,几乎所有主流的LLM都在使用这一架构.然而,随着技术的不断进步,研究 ...

  8. ffmpeg实现视频的合成与分割

    视频合成与分割程序使用   作者开发了一款软件,可以实现对视频的合成和分割,界面如下: 下载该程序 播放时,可以选择多个视频源:在选中"保存视频"情况下,会将多个视频源合成一个视频 ...

  9. Java方法引用、lambda如何序列化&方法引用与lambda底层原理

    系列文章目录和关于我 0.引入 最近笔者使用flink实现一些实时数据清洗(从kafka清洗数据写入到clickhouse)的功能,在编写flink作业后进行上传,发现运行的时候抛出:java.io. ...

  10. C# Caching---Cache 缓存

    1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 usin ...