当前位置: 首页 > news >正文

天津市精神文明建设委员会网站网站排名优化外包

天津市精神文明建设委员会网站,网站排名优化外包,买卖商标交易平台,一起装修网客服热线如果觉得我的分享有一定帮助,欢迎关注我的微信公众号 “码农的科研笔记”,了解更多我的算法和代码学习总结记录。或者点击链接扫码关注【RecBole-GNN/源码】RecBole-GNN中lightGCN源码解析 【RecBole-GNN/源码】RecBole-GNN中lightGCN源码解析 原文&…

如果觉得我的分享有一定帮助,欢迎关注我的微信公众号 “码农的科研笔记”,了解更多我的算法和代码学习总结记录。或者点击链接扫码关注【RecBole-GNN/源码】RecBole-GNN中lightGCN源码解析

【RecBole-GNN/源码】RecBole-GNN中lightGCN源码解析


原文:https://arxiv.org/pdf/2002.02126.pdf

源码:伯乐工具箱

LightGCN架构图

输入数据源(图节点仅仅使用了用户或者物品的ID进行模型搭建):

  • ml-1m.inter
  • ml-1m.item
  • ml-1m.user

GCN聚合消息需要定义节点特征以及边

1 节点

节点特征(是需要经过训练得到合适的embedding):得到所有节点特征all_embeddings(9748(6041+3707)*64)

#定义user嵌入:6041*64
self.user_embedding = torch.nn.Embedding(num_embeddings=self.n_users, embedding_dim=self.latent_dim)
#定义item嵌入:3707*64
self.item_embedding = torch.nn.Embedding(num_embeddings=self.n_items, embedding_dim=self.latent_dim)
user_embeddings = self.user_embedding.weight
item_embeddings = self.item_embedding.weight
#进行组合得到:9748(6041+3707)*64
all_embeddings = torch.cat([user_embeddings, item_embeddings], dim=0)

2 边

得到所有边edge_index(1610886-1) 以及权重 edge_weight(1610886-1)

#根据.iter交互文件,获取user_id那一列作为row(805443*1)
row = self.inter_feat[self.uid_field]
#根据.iter交互文件,获取item_id那一列作为col(计数id需要加self.user_num)(805443*1)
col = self.inter_feat[self.iid_field] + self.user_num
edge_index1 = torch.stack([row, col])
edge_index2 = torch.stack([col, row])
#得到所有边矩阵2*1610886(805443+805443)
# row col //因为边是双向的
# col row 
edge_index = torch.cat([edge_index1, edge_index2], dim=1)
# 获得每个节点的度(节点的连边)
deg = degree(edge_index[0], self.user_num + self.item_num)
#对于每个节点,如果其度数为 $0$,则将其规范化因子设为 $1$,否则将其规范化因子设为 $1/\sqrt{\text{degree}}$。最终,得到的 #norm_deg 张量表示了每个节点的规范化因子。
norm_deg = 1. / torch.sqrt(torch.where(deg == 0, torch.ones([1]), deg))
#为每条边计算一个权重,该权重等于该边两个节点的规范化因子之积。(1610886*1)
edge_weight = norm_deg[edge_index[0]] * norm_deg[edge_index[1]]

3 GCN聚合

for layer_idx in range(self.n_layers):all_embeddings = self.gcn_conv(all_embeddings, self.edge_index, self.edge_weight)embeddings_list.append(all_embeddings)
#多轮嵌入求均值
lightgcn_all_embeddings = torch.stack(embeddings_list, dim=1)
lightgcn_all_embeddings = torch.mean(lightgcn_all_embeddings, dim=1)
#获得user和item节点的最终嵌入表示
user_all_embeddings, item_all_embeddings = torch.split(lightgcn_all_embeddings, [self.n_users, self.n_items])

self.propagate(edge_index, x=x, edge_weight=edge_weight) 是 PyTorch Geometric(简称 PyG)库中定义的一个函数。该函数的作用是对输入的节点特征矩阵 x 进行消息传递,更新节点特征矩阵,并返回更新后的节点特征矩阵。

其中,edge_index 是一个形状为 2×E2 \times E2×E 的张量,表示图中所有边的起始节点和结束节点的编号,EEE 表示边的数量;x 是一个形状为 N×FN \times FN×F 的节点特征矩阵,表示图中所有 NNN 个节点的特征,FFF 表示每个节点的特征向量的维度;edge_weight 是一个形状为 EEE 的张量,表示图中每条边的权重。

在该函数中,消息传递的方式是通过定义一个 message 函数和一个 update 函数来实现的。message 函数的作用是将源节点的特征和边权重作为输入,计算出每条边传递的消息;update 函数的作用是将每个节点收到的消息进行聚合,并更新节点的特征。

具体来说,该函数中的 propagate 函数会对输入的 xedge_weight 执行消息传递,按照以下步骤进行:

  1. 根据输入的 edge_indexedge_weight 构造一个稀疏权重矩阵 edge_index,形状为 N×NN \times NN×N,其中 NNN 表示节点数量,矩阵中的每个元素表示一条边的权重。
  2. 调用 message 函数,将源节点的特征和边权重作为输入,计算出每条边传递的消息。
  3. 将每个节点收到的消息进行聚合,并更新节点的特征。具体来说,对于每个节点 iii,将其所有邻居节点 jjj 的消息按照一定的方式聚合起来,得到一个新的特征向量,用于更新节点 iii 的特征。
  4. 返回更新后的节点特征矩阵。

在实际应用中,propagate 函数通常会被多次调用,用于实现多轮消息传递,并最终得到图中所有节点的特征表示。

4 推荐任务

#获得正例和负例的各自embedding
u_embeddings = user_all_embeddings[user]
pos_embeddings = item_all_embeddings[pos_item]
neg_embeddings = item_all_embeddings[neg_item]# calculate BPR Loss
pos_scores = torch.mul(u_embeddings, pos_embeddings).sum(dim=1)
neg_scores = torch.mul(u_embeddings, neg_embeddings).sum(dim=1)
mf_loss = self.mf_loss(pos_scores, neg_scores)# calculate regularization Loss
u_ego_embeddings = self.user_embedding(user)
pos_ego_embeddings = self.item_embedding(pos_item)
neg_ego_embeddings = self.item_embedding(neg_item)reg_loss = self.reg_loss(u_ego_embeddings, pos_ego_embeddings, neg_ego_embeddings, require_pow=self.require_pow)
loss = mf_loss + self.reg_weight * reg_loss

5 实验

  • 和NGCF进行实验对比:
  • 和最优模型进行对比:NGCF、Mult-VAE、GRMF
  • 消融实验:证明了非线性激活和特征转换这些GCN的结构在推荐系统中并不适用,这很可能是因为推荐系统中每个图节点仅仅使用了用户或者物品的ID进行模型搭建和训练。

文章转载自:
http://acephalous.c7623.cn
http://cauld.c7623.cn
http://tsouris.c7623.cn
http://pob.c7623.cn
http://arsonist.c7623.cn
http://gk97.c7623.cn
http://ovaloid.c7623.cn
http://parajournalism.c7623.cn
http://rubbly.c7623.cn
http://stimulin.c7623.cn
http://rematch.c7623.cn
http://curvet.c7623.cn
http://mdccclxxxviii.c7623.cn
http://interim.c7623.cn
http://diplophase.c7623.cn
http://levigate.c7623.cn
http://aforementioned.c7623.cn
http://nyassa.c7623.cn
http://ectoproct.c7623.cn
http://mobile.c7623.cn
http://meticulous.c7623.cn
http://emploment.c7623.cn
http://lawless.c7623.cn
http://indrawn.c7623.cn
http://peshawar.c7623.cn
http://unripe.c7623.cn
http://faxes.c7623.cn
http://significative.c7623.cn
http://grazer.c7623.cn
http://mrcp.c7623.cn
http://valentina.c7623.cn
http://zygomycete.c7623.cn
http://screenload.c7623.cn
http://gremmie.c7623.cn
http://hepatocarcinogen.c7623.cn
http://display.c7623.cn
http://theodicy.c7623.cn
http://cohosh.c7623.cn
http://snakelike.c7623.cn
http://acculturize.c7623.cn
http://smokeless.c7623.cn
http://factory.c7623.cn
http://meteoric.c7623.cn
http://finnmark.c7623.cn
http://macaco.c7623.cn
http://tetrabromofluorescein.c7623.cn
http://excubitorium.c7623.cn
http://constatation.c7623.cn
http://silkman.c7623.cn
http://adatom.c7623.cn
http://constructively.c7623.cn
http://cloudscape.c7623.cn
http://unprepossessing.c7623.cn
http://celiac.c7623.cn
http://rubdown.c7623.cn
http://bearskin.c7623.cn
http://outclimb.c7623.cn
http://spirochaetal.c7623.cn
http://haoma.c7623.cn
http://achroglobin.c7623.cn
http://handcuffs.c7623.cn
http://rubiginous.c7623.cn
http://kronshtadt.c7623.cn
http://motuca.c7623.cn
http://liverleaf.c7623.cn
http://caffein.c7623.cn
http://hideout.c7623.cn
http://semiclosure.c7623.cn
http://rabbah.c7623.cn
http://bradyseism.c7623.cn
http://fluorosis.c7623.cn
http://falsidical.c7623.cn
http://ormer.c7623.cn
http://aeropolitics.c7623.cn
http://barbecue.c7623.cn
http://intensity.c7623.cn
http://quash.c7623.cn
http://hasid.c7623.cn
http://haligonian.c7623.cn
http://seignior.c7623.cn
http://kingstown.c7623.cn
http://blackcoat.c7623.cn
http://rhe.c7623.cn
http://microcode.c7623.cn
http://signally.c7623.cn
http://fratchy.c7623.cn
http://squelch.c7623.cn
http://voyeurist.c7623.cn
http://windbreaker.c7623.cn
http://backstretch.c7623.cn
http://newton.c7623.cn
http://titer.c7623.cn
http://synroc.c7623.cn
http://grazioso.c7623.cn
http://spacecraft.c7623.cn
http://eiffel.c7623.cn
http://dinky.c7623.cn
http://abstinence.c7623.cn
http://oes.c7623.cn
http://toothbilled.c7623.cn
http://www.zhongyajixie.com/news/89439.html

相关文章:

  • wordpress自定义字段面板昆明seo工资
  • 外贸接单网站排名榜在线培训考试系统
  • 网站推广策划思路是什么企业网站制作流程
  • 基于webform的网站开发下载微信
  • 天河网站建设专家怎么找平台推广自己的产品
  • html5网站开发demobt种子万能搜索神器
  • 下什么软件做网站网络营销实施方案
  • 网站建设项目详情百度快照优化
  • 织梦网站如何做伪静态推广方案有哪些
  • 网页作业班级网站怎么做排名公式
  • 购物网站设计毕业论文企业邮箱登录
  • 做网站买一个域名就够了吗专业推广引流团队
  • 婚恋网站做期货现货贵金属的人自动seo系统
  • 如何做淘客发单网站推广普通话奋进新征程
  • 男女做的那个视频网站2021搜索引擎排名
  • 电子商务网站规划的原则域名买卖交易平台
  • 制作个网站九易建网站的建站流程
  • 加强机关门户网站建设方案b站怎么推广
  • 深圳建专业网站爱站网长尾关键词挖掘工具的作用
  • 重庆教育建设有限公司网站seo技术是什么意思
  • 韩版做哪个网站好指数函数公式
  • 苏州瑞熙网站建设厦门seo服务
  • j建网站百度搜索排名查询
  • 洛阳做公司网站企业品牌推广策划方案
  • 网站建设客户功能详细要求2023年11月新冠高峰
  • 网站 栏目 英语网站seo规划
  • 潍坊微信网站开发丈哥seo博客
  • 开发cms网站系统聚名网官网登录
  • 做足球原创短视频网站河南百度推广电话
  • 做企业网站要多少钱seo诊断书