前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python贝叶斯、transformer自注意力机制self-attention个性化推荐模型预测课程平台学生数据|代码分享

Python贝叶斯、transformer自注意力机制self-attention个性化推荐模型预测课程平台学生数据|代码分享

作者头像
拓端
发布于 2024-07-24 04:45:38
发布于 2024-07-24 04:45:38
16200
代码可运行
举报
文章被收录于专栏:拓端tecdat拓端tecdat
运行总次数:0
代码可运行

全文链接:https://tecdat.cn/?p=37090

分析师:Kung Fu

近年来,在线课程凭借便捷的网络变得越来越流行。为了有更好的用户体验,在线课程平台想要给用户推荐他们所感兴趣的课程,以便增大点击率和用户黏性

解决方案

任务/目标 根据学生所选的历史课程,预测出学生接下来可能选择的课程。

数据源准备

数据说明: stu_id:学员证。 时间:学生首次报名相应课程的时间。 course_index:课程 ID。 名称:课程名称。 类型:课程的类型。 type_id:类型 id。

构造

这个是我所用到的数据集。在所给的数据特征中,我们需要用到的是学生的ID和课程的ID,每个学生所选的课已经按照时间顺序排列好了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.read_csv("data.csv", encoding="gbk")

用户选择的课程的分布

用户选择的类型的分布

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
top_course = top_course.sort_values('choosen_times', ascending = False)
top_course.head(20)

用户选择的类型的分布

划分训练集和测试集和评价指标

我们是这样划分训练集和测试集的,把每个学生选的最后一门课作为测试集,剩下的课程作为训练集。Hit rate@10(推荐10门课程的命中率)和NDCG@10(推荐10门课程的归一化折损累计增益)是我们对模型的评价指标。Hit rate是指训练集是否在推荐的10门课程里,NDCG则是更关注推荐的课程在10门课程当中的具体位置,越是靠前,NDCG越大。

建模

非个性化推荐模型

这个模型是我们的baseline,采用非个性化的方式,也就是说,所有学生会收到一样的课程推荐,在这里,推荐的课程是基于课程的受欢迎程度,我们挑选出最受欢迎的10门课推荐给所有学生。

计算并绘制命中率与推荐课程数量的关系

计算并绘制 NDCG 与推荐课程数量的关系

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.ylabel("NDCG")
plt.show()

贝叶斯个性化排序推荐模型

在这个算法中,我们将任意学生所选的课进行标记,如果一个用户u在选择j课程之前选择了i课程,我们得到一个三元组<u,i,j>,说明u更喜欢i。如果对于用户u来说我们有m组这样的反馈,那么我们就可以得到m组用户u对应的训练样本。然后这个算法基于矩阵分解的方式得到用户对于不同课程的排序,选出前10名。

创建稀疏学生-课程交互矩阵

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def create_matrix(data, stu_col, courses_col, ratings_col):
    """
    creates the sparse student-course interaction matrix 
    """
    
    for col in (courses_col, stu_col, ratings_col):
        data[col] = data[col].astype('category')

    ratings = csr_matrix((data[ratings_col],
                          (data[stu_col].cat.codes, data[courses_col].cat.codes)))
    ratings.eliminate_zeros()
    return ratings, data

将日期拆分为训练集和测试集

通过删除每个学生的一些交互,将学生与课程交互矩阵拆分为训练集和测试集,并假装我们从未见过它们

构造 BPR 类

贝叶斯个性化排名(BPR)来源于个性化排名,为用户提供排名项目列表的项目推荐。排名项目列表是根据用户的隐式行为计算得出的。BPR 基于矩阵分解。所选课程可以看作是正数据集,而其余课程可以是负值和缺失值的混合体。通常,课程推荐人会输出个性化分数Xin和𝑋你我(u 是学生,我是课程)基于学生对课程的偏好,课程从预测分数中排序。课程推荐器的机器学习模型通过给出对(u、i)来提供训练数据∈∈S 作为正类标签和 (U × I) 中的所有其他组合∖∖S 为负数。在这里,所有负用户-课程对都替换为 0。

基于自注意力的序列推荐模型

利用transformer中的self-attention机制,将其应用到序列推荐模型中。序列推荐聚焦于根据用户t时刻的交互序列进行建模,预测用户t+1时刻的交互。

在这个项目中,我们利用神经网络,一步步按照时间往下训练,神经网络的结构如上图所示。训练过程如下图所示

在这个项目中,无论是从hit rate还是NDCG,基于自注意力序列推荐模型的表现最好。在hit rate的比较上,非个性化推荐和贝叶斯个性化排序推荐表现类似,但贝叶斯个性化排序推荐在NDCG这个指标上表现更好一点。贝叶斯个性化排序推荐的这个办法的不足之处在于它不能很好的捕捉到输入中的时间序列信息,我们做过测试,如果不选最后一门作为测试集而是在所有选过的课程中随机选择一门,贝叶斯个性化排序推荐的推荐表现会更好。而自注意力序列推荐模型就是充分利用了输入的时间序列信息,从而才会预测的更好。

关于分析师

在此对Kung Fu对本文所作的贡献表示诚挚感谢,他毕业于洛桑联邦理工学院,专注深度学习领域。擅长Python

本文选自《Python贝叶斯、transformer自注意力机制self-attention个性化推荐模型预测课程平台学生数据》。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
iPhone手机被盗后,小偷是如何解锁密码的?看完长知识了
如果我的 iPhone 被盗,小偷可以在不知道我密码的情况下解锁它吗?答案是肯定的。下面我们就来看看小偷是如何解锁被盗的iPhone的,以便我们在日常使用中采取相应的防范措施。
莉莉的碎碎念
2021/09/13
8.5K0
iPhone手机被盗后,小偷是如何解锁密码的?看完长知识了
更新iOS 15失败, iPhone变成白苹果怎么办呢?
iOS 15正式版前两天已经发布了, 虽然正式版的系统相对比较稳定, 但还是有家人们在升级过程中出现问题。
洋葱雪饼
2021/09/28
1.7K0
iPhone突然黑屏开不了机怎么办?3种解决方法分享
当iPhone手机系统遇到严重问题时,iPhone屏幕会变黑,即使长按电源键也无法开机。不用担心。本文将介绍3种方法帮助您解决iPhone黑屏死机的问题。
莉莉的碎碎念
2021/08/02
8.8K0
iPhone突然黑屏开不了机怎么办?3种解决方法分享
iOS 15 Beta升级卡死在更新进程,无法启动怎么办?
2021苹果全球开发者大会结束后,大批果粉迫不及待的尝试升级iOS 15测试版本,想第一时间体验新功能。
莉莉的碎碎念
2021/06/18
2.3K0
iPhone升级iOS 15后无法正常开机,怎么解决?
iOS 15更新为苹果用户带来了许多新功能。但是,不少用户反馈,他们的iPhone在iOS 15更新后无法正常开机使用。
莉莉的碎碎念
2021/10/22
4K0
iPhone升级iOS 15后无法正常开机,怎么解决?
iPhone升级iOS 15卡在请求更新上怎么办?
iOS 15正式版已经发布,很多小伙伴反馈iPhone在升级iOS 15过程中卡在请求更新上,无法继续更新。造成这个问题的原因有很多,包括WiFi网络问题或者手机软件故障等。在本文中,我们将介绍为什么iPhone会卡在请求更新上,以及解决此问题的方法。
莉莉的碎碎念
2021/09/23
6.9K0
iPhone升级iOS 15卡在请求更新上怎么办?
你的iPhone 13,粉了吗?
行早 发自 凹非寺 量子位 | 公众号 QbitAI 花花绿绿的还不够,苹果这是想集齐彩虹七色了。 今天在黑猫投诉平台,苹果13系列手机遭到大量网友投诉粉屏问题。 和上次的绿屏事件类似,这次的粉屏也是花样百出,有这种满屏的粉: 还有让人看瞎眼的色块割裂的粉: 不是覆盖半屏就是覆盖整个屏,严重影响使用。 这还没完,你以为这单单是中国用户遇到的问题吗? 不,这次粉屏遍地开花,之前也有国外用户反映粉屏问题的先例。 去年10月,也就是苹果13刚发售不久,就有一位外国小哥在苹果官网上投诉这个问题。 从他反馈的图
量子位
2022/03/04
4090
iPhone无法开机? 一招帮你“救活”
有些同学因为资金不充裕会选择买内存小的iPhone,这确实可以省下一笔钱。但是用久之后就会发现内存远远不够,滑手机的时候经常会收到清理空间的提示。如果这种时候将手机关机的话,可能再也开不了机了。
洋葱雪饼
2021/06/20
1.3K0
iPhone无法开机? 一招帮你“救活”
绿了的iPhone新机,刚刚拿下“最佳智能手机显示屏奖”?苹果回应:不是硬件问题
而且,还不是个别情况,一绿就绿了一大片。文摘菌看了一下,不少网友都在吐槽“品控差”。
大数据文摘
2020/11/24
3210
Fix My iPhone for Mac(iOS系统修复软件)
Fix My iPhone Mac版是一款运行在MacOS上的iOS系统修复软件,可以帮助你修复您的iPhone卡在Apple徽标,黑屏,冻结屏幕,iTunes更新/还原错误和超过20个iOS 12升级失败等问题!
用户10121095
2023/02/10
5940
苹果手机显示“更新验证失败 因为您不再连接到互联网”怎么办?
每次苹果发布新的iOS版本,许多果粉都会迫不及待地更新他们的手机系统。但是,新的iOS版本很容易出现一些问题。
莉莉的碎碎念
2021/08/26
34.1K0
苹果手机显示“更新验证失败 因为您不再连接到互联网”怎么办?
关于iPhone黑屏无法开机的修复方案
获取iTunes 下载iTunes 根据软件提示安装,安装完成如下图所示 同时按住电源键+Home键,手动将iPhone切换至Recovery模式,如果是iPhone 7改为电源键+负音量按键即可,
用户1456517
2019/10/17
2.3K0
无法在此iPhone上激活Touch ID,怎么解决?
Touch ID是苹果公司的指纹识别功能,允许用户解锁iPhone或iPad、在苹果商店购物,以及在应用程序中验证Apple Pay等等。
莉莉的碎碎念
2021/09/10
6.3K0
无法在此iPhone上激活Touch ID,怎么解决?
Apple iOS 9.3 S/Plus – 触摸密码绕过漏洞
介绍 iOS是苹果公司开发的手机操作系统,发布于2007年,使用在iPhone 和 iPod Touch上,并且已经开始延伸至其他苹果设备如iPad和Apple TV。与微软的Windows Pho
FB客服
2018/02/07
1.1K0
Apple iOS 9.3 S/Plus – 触摸密码绕过漏洞
苹果iPhone白屏死机?如何修复?
软件更新失败:当您尝试更新iPhone的iOS系统,但由于网络不稳定或电池电量不足导致更新失败时,你可能会遇到白屏。
莉莉的碎碎念
2021/08/06
6.3K0
苹果iPhone白屏死机?如何修复?
iPhone 更新系统后死机怎么搞定?
​最近苹果频繁推送iOS 15 beta系统,有意向升级的果粉都在反馈更新系统过程中iPhone卡在白屏或无法顺利回到手机桌面的情况,重启也没有办法。
洋葱雪饼
2021/08/05
2.3K0
iPhone 更新系统后死机怎么搞定?
如何破解苹果手机密码
前几天听自家表嫂在吐槽,说是总会有客人到他们的维修店修手机。我一听,这是好事啊,为啥嫂子要吐槽呢?结果嫂子很无奈的说,有一半都是因为手机忘了锁屏密码,然后到店里问解决方法的。她表示无法理解,为什么记不住长密码的人连4位数的密码都记不住。
知识与交流
2021/04/02
2.6K0
如何破解苹果手机密码
如何解锁已禁用的iPhone-详细教程(4种方法)
但是您仍然有多次猜测和尝试的机会,因为 iPhone 不会在第一次或第二次错误密码尝试时被禁用。
知识与交流
2024/06/27
6830
如何解锁已禁用的iPhone-详细教程(4种方法)
iPhone屏幕代工厂查询方法,教你如何用序号识别OLED屏幕等级
想知道自己手上刚买的 iPhone 16 或旧款 iPhone 屏幕是由哪家面板大厂打造? iPhone 采用的 OLED 屏幕品质向来备受肯定,背后除了苹果严格的质量控管外,各家屏幕代工厂的技术实力也扮演着关键角色。 这篇就来教大家如何通过 iPhone 查询屏幕代工厂序号码,轻松识别屏幕等级,让你也能了解自己所用的是三星或 LG 屏幕。
用户7136525
2024/11/07
6.6K0
无法在此iPhone激活面容ID怎么办?
最近许多苹果用户在论坛反馈无法激活面容ID。在这篇文章中,我们将探讨可能导致该问题的原因以及解决办法。
莉莉的碎碎念
2021/08/18
3.9K0
无法在此iPhone激活面容ID怎么办?
推荐阅读
相关推荐
iPhone手机被盗后,小偷是如何解锁密码的?看完长知识了
更多 >
LV.7
这个人很懒,什么都没有留下~
目录
  • 全文链接:https://tecdat.cn/?p=37090
  • 分析师:Kung Fu
    • 解决方案
  • 数据源准备
  • 构造
  • 用户选择的课程的分布
  • 用户选择的类型的分布
  • 用户选择的类型的分布
  • 划分训练集和测试集和评价指标
  • 建模
  • 非个性化推荐模型
  • 贝叶斯个性化排序推荐模型
  • 创建稀疏学生-课程交互矩阵
  • 将日期拆分为训练集和测试集
  • 构造 BPR 类
  • 基于自注意力的序列推荐模型
  • 关于分析师
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档