自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 推荐系统笔记(十七):对超图、超图卷积、超图注意力的初步理解和应用(HyperGCN)

对于我们熟悉的图而言,它的一个边(edge)只能和两个顶点连接;而对于超图来讲,它的边(这里叫超边,hyperedge)可以和任意个数的顶点连接。每个边所包含的顶点个数都是相同且为k个的,就可以被称为k阶超图。2阶超图就是我们平时所见到的图,因为我们平时的图由线条(edge,边)和点(vertice,顶点)构成,每条线都只包含两个点,所以这是符合2阶超图的定义的。超边的构建,将具有同一个属性的样本归到同一条超边里。

2022-08-19 18:52:09 10298 1

原创 推荐系统笔记(十六):推荐系统图协同过滤的深入理解:GDE

1)作者研究了GCN的特征表示的主贡献部分是rough和smooth部分的特征,因此用超图分别卷积user和item,进行特征提取。(卷积又分为只用特征值最大的和特征值最小的一部分(看作两个卷积核),卷积核的参数可以动态学习也可以用函数映射特征值)。(2)作者在本文的出发点是GCN本身,通过频域分析,证实了GCN其实是针对局部进行卷积,设计了多层的频率响应,而本文则只使用一层进行卷积,反而达到卷积到更远的视野的目的。...

2022-08-18 19:26:55 1867

原创 推荐系统笔记(十五):pytorch/tensorflow添加随机均匀噪声

其中的random_noise就是生成的噪声,self.eps是噪声占比,是一个超参数,可以任意调节,uniform代表的是tensorflow中的内置均匀分布函数,而l2_normalize是functional中的内置L2正则化或者说归一化函数。uniform_代表的是torch中的内置均匀分布函数,而normalize是functional中的内置归一化函数,其参数p=2代表L2正则化,dim等于1表示在行上操作归一化。......

2022-08-18 01:21:40 3713 1

原创 推荐系统笔记(十四):极简图对比学习方法SimGCL

1)在基于CL的推荐模型中,CL的损失是核心,而图的增强只起次要作用。(2)优化CL损失可以得到更均匀的表示分布,能在推荐的场景中帮助消除偏差。(3)通过在表示中加入有向随机噪声,进行不同的数据增强和对比,可以显著提高推荐能力。...

2022-08-18 01:09:13 1674 1

原创 推荐系统笔记(十三):SGL算法的代码实现

本算法是在LightGCN的代码上的基础实现的,LightGCN的代码和原理参考我前面几篇的博客:推荐系统笔记(六):LightGCN代码实现_甘霖那的博客-CSDN博客 由于LightGCN等传统基于图神经网络的算法有以下局限性: (1)高度节点对表征学习的影响更大,低度(长尾)节点的推荐效果更差; (2)表示容易受到噪声交互的影响,因为邻域聚合方案进一步扩大了观察到的边的影响。 (3)目前大多数推荐学习任务都是基于监督学习的范式,其中监督信号一般指用

2022-08-03 20:27:32 1702 5

原创 推荐系统笔记(十二):常用激活函数gelu、swish等

gelu就是高斯误差线性单元,这种激活函数在激活中加入了随机正则的思想,是一种对神经元输入的概率描述。为了方便记忆,这里做简要的笔记。汇总有:Identity、Sigmoid、TanH、Softmax、Softsign、Softplus、ReLU、Leaky ReLU、Randomized ReLU、SELU、GELU。其中在推荐系统的lightGCN中取消使用非线性激活函数。...

2022-08-03 19:57:12 3577 2

原创 推荐系统笔记(十一):使用coo_matrix函数遇到的坑

coo_matrix使用方法。当尝试索引coo_matrix的时候就会发生以上错误,原因是稀疏矩阵coo_matrix不直接支持切片操作。切片操作本质上是根据一系列下标索引来获取元素。所以稀疏矩阵coo_matrix不直接支持根据下标索引来获...

2022-08-02 20:26:01 1311

原创 推荐系统笔记(十):InfoNCE Loss 损失函数

InfoNCELoss是为了将N个样本分到K个类中,K

2022-07-30 19:41:04 28420 2

原创 推荐系统笔记(九):SGL --利用自监督对比学习缓解推荐系统长尾效应

SGL是模型不可知框架,采用用户项图上的自监督学习来弥补数据集稀疏和噪声影响的不足。论文中通过实验证明了SGL长尾推荐、训练收敛和抗噪声交互鲁棒性方面的优势。

2022-07-30 13:52:44 2299

原创 推荐系统笔记(八):推荐系统中的长尾效应

目前的推荐系统或者推荐算法,很难发现用户的隐性需求,需要调整长尾效应中商品推荐的比重,以避免或者降低长尾效应对用户体验的影响。

2022-07-30 10:35:07 2286

原创 推荐系统笔记(七):自监督学习、对比学习的理解

对比学习应用广泛,可以被使用于CV、推荐系统、自然语言处理等多个领域之中,可以有效解决标记数据不足的网络训练困难、不准确的问题。httpshttpshttpshttpshttps。

2022-07-30 01:22:56 3056

原创 推荐系统笔记(六):LightGCN代码实现

推荐系统笔记(五)lightGCN算法原理与背景_甘霖那的博客-CSDN博客。

2022-07-30 00:33:32 3744 2

原创 推荐系统笔记(四):NGCF推荐算法理解

首先就是将i4、i5、i2三个物品的信息聚合到u2中,(其实在这个聚合过程进行的同时其他结点也都进行了相应的聚合邻接结点信息,例如在此时u1也聚合了i1、i2、i3的信息),然后用u1和u2继续传播聚合给i2(此时i2结点在此时已经包含图三所有结点的信息),然后再将i1、i2、i3信息给u1。从早期的矩阵分解到最近出现的基于深度学习的方法,现有的工作通常通过从描述用户(或项目)的预先存在的特征(例如ID和属性)映射来获得用户(或项目)的嵌入。,即所谓的自信息(这在lightGCN中被证明是不必要的冗余)。.

2022-07-29 19:00:30 3729

原创 推荐系统笔记(五):lightGCN算法原理与背景

lightGCN是将图卷积神经网络应用于推荐系统当中,是对神经图协同过滤(NGCF)算法的优化和改进。lightGCN相比于其对照算法提升了16%左右,在介绍lightGCN之前应该知道NGCF的基本原理。 首先,协同过滤的基本假设是相似的用户会对物品展现出相似的偏好,自从全面进入深度学习领域之后,一般主要是先在隐空间中学习关于user和item的embedding,然后重建两者的交互即interaction modeling,如MF做内积,NCF模拟高阶交互等。但是他们并没有把u

2022-07-29 18:50:54 11437 5

原创 推荐系统笔记(三):NDCG Loss原理及其实现

为了做一个归一化数据,我们在检索的时候,可能返回的数据有很多条,累加的数目不一样,无法对两个搜索模型进行比较,就行在缓存中,当缓存行分别有10条和20条,他们的DCG之和不具有可比性,需要归一化才能定性的比较,这就是NDCG的主要思想。......

2022-07-29 10:50:51 1814

原创 推荐系统笔记(二):常用数据集Movielens学习

movielens数据集是电影推荐数据集,数据集有多种大小和目的使用的数据集。按照使用目的可以分为两类,一类数据集适用于推进最新研究的数据,一类数据集是用于高校研究和教育科研使用的数据集。本次介绍三个数据集的使用和处理。......

2022-07-28 20:24:01 6956 3

原创 推荐系统笔记(一):BPR Loss个性化推荐

在常规的推荐系统统计算法中,我们通常是通过现有数据集去计算获取用户对所有商品的得分,但大多情况下我们只需要关系极少数的商品的优先级,而不是所有的商品的排序,并且一些基于矩阵分解和KNN的推荐算法,是没有对排序方法进行优化的,而BPR损失函数能够满足我们的需求。(1)BPR的出发点是优化用户对商品的偏好排序,这使得它可以和其他推荐系统方法合并使用。(2)通过用户商品评分矩阵的分解实现类似于embedding的操作,从而获取用户的隐式评分。(3)通过贝叶斯最大后验概率估计进行参数学习。......

2022-07-26 10:29:50 10557 2

原创 GRU 神经网络及股票预测示例

一、介绍 在LSTM长短期记忆模型的广泛使用的同时也出现了一系列问题,比如模型复杂度太高,计算量大,模型复杂,因此出现了简化版本的LSTM-----GRU。 GRU相比LSTM模型参数更少,模型更加简洁,但预测效果可以和LSTM比肩,甚至在某些应用中超过LSTM,是被广泛使用的模型。二、基本组成GRU只有两个门,一个更新门,一个重置门。更新门:用于在过去的记忆和当前的输入之间做出权衡,选择一个最合适的记忆权重。重置门:在于对过去记忆对当前输入的影响...

2021-08-16 17:49:45 4988 4

原创 LSTM 长短期记忆神经网络及股票预测实现

一、介绍 我们知道RNN(循环神经网络)可以通过时间序列预测输出,LSTM也具有同样的功能,那么为什么需要LSTM呢? 由于RNN在参数更新过程中参数矩阵更新可能会造成梯度消失的问题,这才演化出了具有三个控制门的LSTM神经网络。 为什么叫长短期记忆神经网络?个人理解是因为在训练过程中用到了前面所有的记忆内容以及最近的记忆内容,将在下文介绍这部分内容。二、LSTM组成一般由以下部分组成:输入门:it =sigmoid(权重乘以当前的输...

2021-08-16 17:01:23 2296 1

原创 RNN 股票预测

一、数据集介绍 只取第三列的开盘数据进行预测。二、环境 tensorflow2.1、sklearn、pandas、numpy......三、实现和介绍import numpy as npimport tensorflow as tffrom tensorflow.keras.layers import Dropout, Dense, SimpleRNNimport matplotlib.pyplot as pltimport ...

2021-08-16 13:28:44 759 2

原创 Embedding 编码方法

一、作用Embedding 是一种单词编码,用低维向量实现了编码,这种编码通过神经网络训练优化,能表达单词之间的相关性。 在是用独热码one_hot编码时,我们会发现单词的编码十分稀疏,以至于训练的效率不是很高。采用embedding的方法可以很好的优化这个个问题。 举个栗子:二、函数介绍Embedding(词汇表大小,编码维度)送入embedding层的数据的维度要求是 [送入样本数,循环核时间展开步数]即需要将训练的数...

2021-08-16 12:49:48 1967

原创 循环神经网络RNN

一、循环核 通过提取每个时刻的记忆信息来对输出结果进行的预测,提取时间特征并送入全连接神经网络:输出和记忆体值按照以下公式进行计算:yt是对应 t 时刻的输出值,ht是记忆体中记忆的值。注意:计算过程中的参数是共享且不变的,直到参数梯度下降更新时才会改变。二、循环核按照时间布展开 即将多个循环核累积起来:在前向传播中参数时不变而且共享的,在参数更新后选择最优的参数来进行前相传播,输出结果。三、循环计算层 循环计算...

2021-08-15 20:00:00 303

原创 神经网络参数优化器

一、优化器分类通用的优化器公式:ηt=ηt-1-lr*Mt/sqrt(Vt) ,Mt为一阶动量,Vt为二阶动量# SGD:即普通的参数更新公式,一阶动量为loss偏导数,二阶动量为1# SGDM:一阶动量动量在SGD基础上引入了上一时刻的一阶动量Mt-1,二阶动量Vt为1# 一阶动量赋予β=0.9的经验性的权重,一阶动量为β*Mt-1+(1-β)*gt;# Adagrad:在SGD基础上引入了二阶动Vt量,一阶动量为gt# 二阶动量是前面所有时刻gt平方的和,Vt=Σ(gτ)^2#

2021-08-13 01:23:49 1537 1

原创 过拟合和欠拟合问题

一、介绍 关于过拟合和欠拟合问题产生的原因及其后果,这类文章已经很多,那如何解决该问题? 常用以下方法:# 欠拟合:增加输入项特征、增加网络参数、减少正则化参数# 过拟合:数据清洗、增大数据集、正则化、增大正则化参数二、正则化的作用 原理:正则化通过加入惩罚项控制参数的大小不会剧烈变化,从而使预测曲线更加平滑 组成: 加入正则化的损失函数包含两部分,一部分是原来的损失函数,另一部分是惩罚项:类...

2021-08-12 21:16:27 216

原创 tensorflow 的损失函数

一、均方误差一般地,在样本量一定时,评价一个点估计的好坏标准使用的指标总是点估计x与参数真值x'的距离的函数,最常用的函数是距离的平方,由于估计量具有随机性,可以对该函数求期望,这就是下式给出的均方误差: 以下例程中拟定 y=x1+x2 为目标函数,随机初始化参数并加入噪声进行迭代,采用均方误差的损失函数进行梯度下降,不断逼近目标。代码:SEED = 23455rdm = np.random.RandomState(see...

2021-08-12 20:57:32 704

原创 神经网络之常用的激活函数

一、如何选择激活函数# 激活函数应该是非线性的、可微分的(需要梯度下降更新参数)、最好是输入和输出近似恒等(更稳定)# 激活函数是单调函数时能保证单层神经网络损失函数为凸函数# 激活函数输出为有限值时会更加稳定,而输出为无限值时,建议调小学习率二、常用激活函数# sigmoid激活函数:深层神经网络参数更新可能导致梯度消失、输出都是大于零的值收敛速度慢、计算复杂度高:# tanh激活函数:有梯度消失问题、计算复杂度高# relu激活函数:计算复...

2021-08-12 20:29:37 340

原创 tensorflow 2.1 常用函数及示例详解(二)

一、where函数where(x,y,z)where语句可以用于判定x的真假,若为真返回a,若为假返回b若x为一个张量,将返回多个元素的张量,如:代码:a = tf.constant([1, 2, 3, 1, 1])b = tf.constant([0, 1, 3, 4, 5])c = tf.where(tf.greater(a, b), a, b) # 若a>b,返回a对应位置的元素,否则返回b对应位置的元素print("c:", c)结果:二...

2021-08-12 20:21:19 374

原创 手写数字识别模型调用并预测

调用已经训练好的模型参数,预测手写数字。from PIL import Imageimport numpy as npimport tensorflow as tfmodel_save_path = './checkpoint/mnist.ckpt'# 复现模型model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(), tf.keras.layers.Dense(128, activation='relu.

2021-08-12 17:01:18 1132

原创 神经网络loss和准确率可视化

import tensorflow as tfimport osimport numpy as npfrom matplotlib import pyplot as pltnp.set_printoptions(threshold=np.inf)mnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()x_train, x_test = x_train / 255.0, x.

2021-08-12 16:24:38 2578

转载 Pycharm输出窗口有省略号,数据显示不全解决方法(转载)

一、借助pandas库来控制窗口的显示:import pandas as pdpd.set_option('display.max_rows', 500)pd.set_option('display.max_columns', 100)pd.set_option('display.width', 1000)在要输出数据之前按如上方式设置,'display.max_rows’是设置输出窗口显示的最多行数,超过则将多余数据用省略号表示;'display.max_columns’是设置输出窗口

2021-08-12 16:17:07 13700 1

原创 tensorflow 2.1 断点续训模型存取

一、介绍 模型训练往往需要很长的时间,而且我们往往想要寻找最佳的模型参数,因此需要将最优的模型参数能够保存下来,方便测试的同时也便于寻找最优解。二、如何存取 先贴出代码:import tensorflow as tfimport osmnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()x_train, x_test = x_t...

2021-08-12 15:32:01 648

原创 图片增强器 ImageDataGenerator

一、函数参数# 数据增强# ImageDataGenerator(# rescale=所有数据集将乘以该数值,# rotation_range=随即旋转角度数范围,# width_shift_range=随即宽度偏移量,# height_shift_range=随即高度偏移量,# horizontal_flip=是否随机水平翻转,# zoom_range=随机缩放的范围 -> [1-n,1+n])# 该函数可以增强图片..

2021-08-12 14:32:34 15085

原创 python .npy文件自制数据集基本使用

读取和保存npy文件import tensorflow as tffrom PIL import Imageimport numpy as npimport ostrain_path = './mnist_image_label/mnist_train_jpg_60000/'train_txt = './mnist_image_label/mnist_train_jpg_60000.txt'x_train_savepath = './mnist_image_label/mnist_x_t

2021-08-12 12:11:07 6187

原创 tensorflow2.1 MNIST 手写数字识别数据集

一、查看数据集代码:import tensorflow as tffrom matplotlib import pyplot as pltmnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()# 可视化训练集输入特征的第一个元素plt.imshow(x_train[0], cmap='gray') # 绘制灰度图plt.show(...

2021-08-11 19:38:09 625

原创 Tensorflow 2.1 常用函数示例及详解(一)

一、准备工作 导入库函数:import tensorflow as tfimport numpy as npimport pandas as pdfrom sklearn import datasetsfrom pandas import DataFramefrom matplotlib import pyplot as plt二、函数 1. 常用cast函数修改数据类型 cast (张量, 修改的数据类型) 类型可...

2021-08-11 19:16:57 520

原创 tensorflow 2.1 用类来搭建Keras神经网络模型

一、介绍 上一篇博客(https://mp.csdn.net/mp_blog/creation/editor/119607501)讲述了用六步法建立神经网络,但是这些神经网络层之间必须是连续的,即无法跳跃连接,因此我将介绍用类的方法来创建神经网络层。二、步骤 1. 引入库函数Modelimport tensorflow as tffrom tensorflow.keras.layers import Densefrom tensorflow.keras im...

2021-08-11 16:54:48 310

原创 tensorflow 2.1 六步法搭建Keras神经网络模型

一、六步法搭建Keras神经网络模型·第一步:导入库函数·第二步:划分数据集·第三步:搭建神经网络模型的tf.keras.models.Sequential,模型搭建·第四步:compile选择损失函数,优化器,准确率表达形式......·第五步:fit选择输入特征,标签,迭代次数,batch大小,数据集划分比例、没带哦稍次epoch验证一次数据集·第六步:打印出模型summery并且验证模型二、神经网络层sequential是神经网络层的容器:Flatten层不包含计算,只是将数据拉

2021-08-11 15:31:01 848

原创 learning rate学习率的颠簸问题

一、问题简介学习率过大会导致在最优的点附近颠簸,无法收敛到最优,二学习率太小又会造成收敛速度过慢的问题。二、直观感受 我们利用tensorflow2.0来直观感受这一问题: 代码:import tensorflow as tfw = tf.Variable(tf.constant(5, dtype=tf.float32))lr = 0.2epoch = 40for epoch in range(epoch): # for e...

2021-08-03 20:08:45 461

原创 tensorflow 2.1 之自动求导函数tf.GradientTape

一、简介TensorFlow 2.0的求导计算默认是eager模式,每行代码顺序执行,没有了构建图的过程(也取消了control_dependency的用法)可能会有很大的计算量,需要一个上下文管理器(context manager)来连接需要计算梯度的函数和变量,来减少计算量。函数: GradientTape(persistent=False,watch_accessed_variables=True)persistent: 布尔值,用来指定新创建的gradient tape...

2021-08-03 19:56:41 722

原创 tensorflow2.1神经网络Variable函数以及同constant函数的区别

一、函数介绍

2021-08-03 19:29:28 705

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除