多行为序列推荐系统MBHT模型的总结和自己遇到的一些报错与解决方法

【Multi-Behavior Hypergraph-Enhanced Transformer for Sequential Recommendation】

MBHT模型基于一个多行为超图增强的 Transformer 框架,以在交互序列中捕捉短期和长期的跨行为依赖。基于不同范式的低秩注意力,设计了一个多尺度的 Transformer 以联合编码来自细粒度和粗粒度的行为感知的序列用户兴趣。

此外,还将全局的多行为依赖性建模纳入到超图神经网络中,以个性化的方式捕捉不同用户的长程行为关联。实验结果表明, MBHT 在不同的环境中比各种先进的推荐解决方案更有优势。

它由三个关键模块组成:i)用户偏好的行为感知过渡模式的多尺度建模; ii) 时间感知用户交互的多行为依赖性的全局学习; iii) 具有序列行为感知过渡模式和超图增强的多行为依赖性的编码表示的跨视图聚合。

模型流程:
在这里插入图片描述

一些常见报错:

1、 CUDA error: no kernel image is available for execution on the device
在这里插入图片描述
报错:GPU算力和CUDA不匹配。在stackoverflow中得知,目前cuda最稳定的版本为cuda113,且高版本的torch能向下兼容。报错时我的设备配置为:torch1.10.0+cu114+RTX3090+Ubuntu20.04。
解决办法:卸载cuda11.4,(一定得卸载干净,使用官方卸载命令之后还需要rm -rf清楚源目录)安装稳定不容易报错的cuda11.3,再在创建的虚拟环境中安装最新版的torch,执行以下命令:

	pip uninstall torch
	pip install torch==2.0.0

2、RuntimeError: indice should be either on cpu or on the same devices as the indexed tensor (cpu)在这里插入图片描述这个错误通常表示 indices tensor 和被 indexed tensor 不在同一个设备上。PyTorch中的张量(tensor)可以在CPU或GPU上,若代码中使用了两个不同的设备,那么就会出现这个错误。
解决办法: 根据报错提示定位到代码行,然后使用(tensor_name).device查看此tenor在哪个设备上,最后使用to方法或其他方法迁移tensor统一设备即可。

3、AttributeError: module’distutils’ has no attribute ‘version’
在这里插入图片描述
这个最好解决,安装缺少的依赖即可
解决办法:在虚拟环境中运行以下命令:

pip install setuptools==59.5.0

4、AttributrError: ‘builtim_function_or_method’ object has no attribute ‘numpy’
在这里插入图片描述
程序没有搞清楚导入的是模块还是方法
解决办法:在mbht.py中将import numpy 换成 from numpy import* 即可。

finally

开始训练!
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值