- 博客(24)
- 收藏
- 关注
原创 Transformer各个模块代码大致思路(无法运行版本)
9.组合Encoder和Decoder形成Transformer。###只是大致结构,缺少了mask和padding。1. Embedding构造。7.组合成Encoder。8.组合成Decoder。4.残差链接和标准化。
2024-07-05 16:28:26
207
原创 Distillation-enhanced Graph Masked Autoencoders for Bundle Recommendation
为了验证bundle和item view的效果及其互补性,我们在三个数据集上进行了实验,并比较了U-B GNN、U-I GNN以及两个GNN的组合(U-B+U-I GNN)的结果。对于用户来说,选择几个item而拒绝包含这些item的bundle是很常见的,这给区分U-I图中的有效交互和噪声交互带来了巨大的挑战。值得注意的是,这一结果与U-I GNN在这两个数据集上的糟糕表现是一致的,并进一步指出了在提高模型的表达能力和联合捕获局部和全局U-I协作关系方面的挑战。RQ2:U-I和U-B协作关系是否一致?
2024-06-28 19:22:50
645
1
原创 “Bias and Debias in Recommender System: A Survey and Future Directions“论文笔记(部分,未完结)
例如,在工作推荐的背景下,与男性相比,女性看到的关于高薪工作和职业指导服务的广告较少,这是由性别失衡造成的。在这种情况下,如果缺失的数据与参与者的健康状况(一个已观测变量)有关,但一旦收到问卷回复,缺失就不会再发生,那么数据的缺失就是MAR。它们通常来自不同的数据分组,并使推荐模型捕捉这些偏见,甚至缩放它们,在本节中,首先给予数据bias的一般定义,然后将其分为四类:selection bias,conformity bias, exposure bias 和 position bias。
2024-06-16 13:57:30
909
原创 Recommendation Unlearning 论文笔记
RecEraser有三个核心部分数据划分->子模型训练->基于注意力的自适应聚合当需要unlearning时,只需要重新训练某个子模型1.数据划分本文提出三种方法即基于用户的划分(UBP),基于物品的划分(IBP)和基于u-i交互的划分(InBP(基于U/I/In的相似性)
2023-11-16 19:11:17
251
原创 对比学习Contrastive Learning
最终Loss=Loss_传统+Loss_对比学习(一般是infoNCE、SimCLR、triplet...)相似的样本的向量距离要近,不相似的要远,以此获得数据的高阶信息。中就是图片的随机裁剪、随机颜色失真、随机高斯模糊。方法,在无标签数据集上仍可以学习到较好的表征。的训练样本,通过数据扩增,变成了。首先进行数据扩增,对于一个样本。中用的是随机删除边和随机删除。cv、nlp领域用的多。对比学习的主要思想就是。)就称为一个正样本对。接下来进行对比学习,
2023-10-23 15:47:30
214
原创 《Neural Collaborative Filtering》笔记
可以赋予模型高水平的灵活性和非线性建模能力,而不是GMF(广义矩阵分解)那样的简单使用逐元素相乘的内积来描述用户和项目之间的潜在交互特征。约束在[0,1]的范围内,这可以通过使用概率函数(例如,Logistic或Probit函数)作为输出层Φout的激活函数。为了给融合模型提供更多的灵活性,允许GMF和MLP使用单独的嵌入,并通过连接它们的最后一个隐藏层来组合这两个模型。一个简单的解决方案是让GMF和MLP共享同一个嵌入层,然后组合它们的函数的输出如下公式(单层MLP)堆叠更多的非线性层也有利于性能。
2023-10-18 18:37:56
84
原创 论文《CrossCBR: Cross-view Contrastive Learning for Bundle Recommendation》
1.用两个视图的表征学习,使用简化BGCN中的图结构的LightGCN:删除U-B和U-I中的self-connections(SC)和bundle-bundle connections(BB)。还探究了对比学习的loss公式,若使用只扩大跨视图协作(Alignment)的。即为对比学习中得出的loss(但不是最终loss),消融实验表明。,然后反向传播计算梯度,再使用optimizer.step()实验表明三种方法的结果差别很小,作用不大,代替,模型性能下降,若只鼓励跨视图离散((1)不增强(OP)
2023-10-12 16:43:03
190
原创 刘二大人《PyTorch深度学习实践》循环神经网络RNN高级篇
对于变长序列,按序列长度排序后(不排序没法用PackedSequence),通过PackedSequence只存非0的维度,同时记住每个序列的非0项的长度(提高储存密度,提高计算速度),输入gru中。对于单向的循环神经网络,输出只考虑过去的信息(只有一个方向),而有些情景需要考虑未来的信息。最后输出tensor格式的seq_tensor、seq_lengths、countries。然后按序列长度从大到小排序,同时把countries列表也转成相应的从大到小格式。输入名字,输出名字对应的国家。
2023-09-26 17:22:31
248
6
原创 刘二大人《PyTorch深度学习实践》循环神经网络RNN
RNN是一种专门用来处理带有序列模式的数据,如天气预测,文本处理等等(有上下文依赖关系)使用RNN,多一个参数num_layers,cell()的输出多一个out。全连接层的权重最多,卷积层的权重较少(共享权重)使用RNNCell把hello变成ohlol。只用一个RNNCell观察输入输出维度。常用解决办法:Embedding。且序列共享一个RNN cell。先把字母变成one-hot编码。RNNCell输入输出尺寸。one-hot向量缺点。维度太大、稀疏、硬编码。
2023-09-22 11:19:06
113
原创 刘二大人《PyTorch深度学习实践》卷积神经网络高级篇
Residual net(ResNet)能解决梯度消失问题。他人实验表明并不是层数越多准确率越高。其中的一个Inception模块。1*1的卷积核可以有效减少计算。更为复杂的不是串行结构的模型。也大于1,能保留前面层的特征。GoogLeNet代码。如GoogLeNet。最后四个输出拼到一起。
2023-07-23 22:52:53
111
原创 刘二大人《PyTorch深度学习实践》多分类问题
每个分类概率大于0且所有分类概率和为1,输出概率之间有互相抑制性。transforms.Normalize使数据满足正态分布。(1代表通道,mnist是黑白图只有一个通道),y的编码方式是one-hot。设计模型 28*28=784。Softmax Layer函数为。Mnist数字分类识别。Softmax分类器。
2023-07-22 00:53:57
56
原创 刘二大人《PyTorch深度学习实践》加载数据集
pytorch的DataLoader和Dataset可方便处理数据集和实现Mini-batch。Iteration:1个iteration等于使用batchsize个样本训练一次。使用Mini-batch实现分类,并测试每个epoch的准确度。torchvision提供了一些数据集可方便调用。2. 读入标签/文件名(数据集大)构造Dataset的时候2种方法。1.所有数据加载进来。
2023-07-16 14:34:32
117
原创 刘二大人《PyTorch深度学习实践》多维特征输入
也可以不直接从N维到1维,最后是一维即可,引入多次非线性变换,参数具有更好的拟合性,有利于提高网络的泛化能力。对于多维样本的分类问题,一个样本不再只有一个值(特征)输入N维,输出1维(N维空间到1维空间的非线性变换)这样8-6-4-1维,使用adam优化器效果更好。对于Mini_Batch情况。每一个特征值都有自己的权重。
2023-07-15 18:39:32
71
原创 刘二大人《PyTorch深度学习实践》logist回归
loss计算分布的差异而不是两个点之间值的差异(loss function for Binary Classification)Mini-Batch版本(BCELoss)保证输出值在0~1之间。线性模型拟合二分类问题。
2023-07-14 17:13:47
46
原创 刘二大人《PyTorch深度学习实践》pytorch实现线性回归
使用pytorch框架后虽然比上次写的复杂一些,但是可以方便 扩展成更复杂的神经网。torch.nn.Linear :自动包含w和b。如torch.optim.SGD 自动帮你找到要更新的权重。用pytorch提供的工具实现线性模型训练过程。至少有两个方法_init_和forward。维度可以很大,但是loss必须是标量。3.设置loss函数和优化器,的维度,这样就知道w和b的维度。**kwargs 参数变成词典。),继承nn.Module。
2023-06-28 21:48:54
217
原创 刘二大人《PyTorch深度学习实践》反向传播
y的计算公式可简化,对于这种线性变换不管多少层都可以简化,这样模型的复杂度不够高,中间的权重没有意义,所有在每一层的输出都要加一层非线性的变化函数(激活函数sigmoid relu)如。构建计算图时直接使用张量,权重w更新的时候使用.data,不能直接使用张量,否则创建新的计算图(不要在释放后用tensor直接计算,会构建新的计算图,要用item()标量)调用backward()自动计算计算图里的梯度即反向传播,然后释放计算图(动态计算图)每调用一次loss函数,就构造一次计算图。
2023-06-26 14:03:42
187
原创 刘二大人《PyTorch深度学习实践》梯度下降算法
使用所有样本的Loss性能好但是时间复杂度高,使用平均样本loss则反之,于是折中每次使用一组(Mini-Batch)更新梯度。引入随机性,这样即使陷入到鞍点也能跨过鞍点,并且在训练大模型的时候也能加快训练速度。梯度下降(Gradient Descent),求偏导找往loss最小值去的方向。特殊点:鞍点(如马鞍),此时梯度=0(梯度消失),不再更新权值。是学习率也就是探索梯度的步长,太大会发散,太小时间太慢。的随机梯度下降的代码并画loss值的图。的梯度下降的代码并画loss值的图。
2023-06-25 15:51:05
74
原创 刘二大人《PyTorch深度学习实践》线性模型
的转置(变为列向量)在水平方向上的复制和堆叠。课后作业:用y=wx+b拟合数据并画3维图。meshgrid (画三维图形常用函数)课中讲的用y=wx拟合数据。在垂直方向上的复制和堆叠。
2023-06-24 17:14:24
64
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人