APP下载

基于图嵌入向量的课程推荐算法研究*

2023-12-13朱若馨张海潮

甘肃科技 2023年11期
关键词:向量协同节点

朱若馨,张海潮

(陕西国防工业职业技术学院,陕西 西安 710300)

0 引言

随着互联网技术的不断革新,在线教育通过使用大数据、多媒体、人工智能等信息技术也在快速发展。在线教育的发展不仅给传统教育带来了新活力,同时也将传统教育带上了新的起点,开启了教育创新与改革的新征程。中国在线教育用户的迅速增长,众多在线课程平台与开放大学的建立,使得在线教育逐渐成为一种主流学习方式。然而,随着越来越多的课程放在课程平台上,使得用户需要耗费大量的精力来寻找感兴趣的课程,造成信息过载现象[1],大大降低了用户的使用体验。为了缓解信息过载问题带来的影响,研究人员提出推荐系统概念,用于帮助用户从大量课程中发现感兴趣的内容。

推荐系统以用户行为和资源内容作为切入点,把握用户兴趣。常用的推荐算法有基于协同过滤的推荐[2-4]、基于内容推荐[5-6]和基于模型推荐[7-8]。协同过滤算法利用兴趣相似用户在同类资源上有相似的偏好这个特点,从而对目标用户进行同类资源的推荐。然而,通过协同过滤推荐算法的原理可以发现,其只依赖用户的共同行为,而忽略了用户行为的时序信息。在用户的课程学习过程中,往往依赖前置课程的学习,因此,传统的协同过滤推荐算法在课程推荐系统中存在局限性。基于上述背景,可以将用户学习的一系列课程看作图结构数据,课程是图上的节点,用户的学习序列是节点上的边,反映用户学习的时序信息。文章利用课程学习序列构建有向图,学习节点的嵌入式向量表达,并利用向量检索方法进行课程推荐。

文章提出一种基于图节点嵌入向量相似性的推荐算法GEV,利用用户点击序列构建课程图,图的节点为相应课程,边的权重为用户同时学习的次数,依照权重进行随机游走获取训练序列,然后使用Word2vec[9]算法中的Skip-gram模型和负采样算法学习节点的嵌入式向量,并以此推荐相关课程给用户。MOOC数据集的实验结果表明文章给出的模型在评价指标召回率上优于其他算法。

1 相关工作

1.1 协同过滤推荐算法

协同过滤算法(Collaborative Filtering,CF)是一种经典的推荐算法,利用用户群体的兴趣来找到目标用户的兴趣点,实现个性化推荐。1998年,Breese等[10]率先提出了协同过滤算法的分类理念。一般来说,协同过滤推荐算法可以分为3类,分别是基于用户的协同过滤算法(User-based Collaborative Filtering,UCF),基于项目的协同过滤算法(Item-based Collaborative Filtering,ICF),以及基于模型的协同过滤算法(Model-based Collaborative Filtering,MCF)。基于用户的协同过滤主要考虑用户与用户间的相似度,而基于项目的协同过滤主要考虑物品与物品的相似度。文章以基于项目的协同过滤算法为例说明其基本原理,如图1所示。

图1 基于项目的协同过滤算法示意图

基于项目的协同过滤算法利用同一个用户喜欢的物品具有相似性,从而建立物品之间的相似关系,然后利用这个关系,依据新用户的行为进行预推荐。在图1中,用户A同时喜欢物品A和C,用户B则同时喜欢物品A、B和C,则从物品的角度看来,物品A和C具有相似性。因此,当用户C喜欢物品A时,基于项目的协同过滤算法会依据用户C的行为选择物品C进行推荐。

协同过滤算法基于用户的行为数据挖掘用户的兴趣点进行个性化推荐,具有良好的自适应性,同时,推荐规则也可以根据业务场景来自适应调整。协同过滤算法对长尾分布的兴趣点推荐也有良好的效果。然而,协同过滤算法也存在固有的缺陷,主要表现在冷启动阶段依赖于用户的行为数据,在缺乏相关数据的场景下难以使用。

1.2 网络表示学习相关理论

网络表示学习将拓扑结构的图数据转化为低维稠密向量表示,使相似的节点具有相似的向量表达,得到的向量可以作为下游神经网络模型的输入进行后续的机器学习任务。网络表示学习模型对于图G=(V,E),学习一种映射(f:Vi→Zi,∈RD),其中,Zi表示一个D维的向量,是图节点Vi的向量化表示,维度D远小于图中节点的数目|V|,即D<<|V|。

在自然语言处理领域,Mikolovt等[11]提出的Word 2vec模型,是一种高效训练词向量的模型。该模型通过训练神经网络模型,利用上下文信息得到每个单词的向量化表示,使得意义相近的单词具有相似的向量。用户在课程学习过程中,会形成一个序列,相邻的课程意味着具有关联性,因此,可以将课程像单词一样利用Word2vec模型学习向量表示。

Word2vec模型的基本思想是句子中相近的词是有联系的,因此可以用词来预测词。Word2vec常用的训练方法有2种:连续词袋模型(Continuous Bagof-Words,CBOW)和跳元模型(Skip-gram)。CBOW方法是根据周围词来预测中心词,相反,Skip-gram方法是用中心词分别推断出周围词。通常,当数据量较少或者语料库中有大量低频词的时候,Skip-gram比CBOW能取得更好的效果。

2 基于图嵌入向量的推荐算法

2.1 建立用户行为图

依据用户的历史学习过程建立课程图,如图2所示。

图2 建立基于用户行为的课程图结构

在之前介绍的协同过滤算法中,只考虑了用户群体的共同兴趣,而忽略了反映用户学习兴趣的学习时序信息。由于用户在使用学习平台过程中会有大量的行为,时间跨度长,一方面计算量较大,另一方面用户的兴趣也会发生变化。因此,文章只选取一定时间窗口内的用户行为用于构建课程图。

在图2(a)中,文章将固定时间范围内用户的课程学习记录选取出来,然后如图2(b)所示,研究将用户连续学习的2个课程按照时间顺序建立有向图,其中,节点之间边的权重ω为所有用户先后学习对应2节点课程的次数。这样就建立了用户课程图。

2.2 图嵌入式向量学习

如图2(b)所示,带权有向图G,记作G=(V,E)其中V是图G中定点的集合,E是图G中边的集合,可以使用DeepWalk[12]算法来学习图G中节点的嵌入式向量表示。通过使用矩阵M来表示图G的邻接矩阵,其中,Mij表示图中节点i到节点j的边权重。首先,可以使用DeepWalk算法从图G中生成节点的随机游走序列,如图3(a)所示。DeepWalk算法最主要的2个步骤是利用RandomWalk随机游走生成图节点序列,然后利用Skip-gram算法生成节点的向量表示。RandomWalk随机游走生成节点序列时,等概率地选择下一个节点,忽略了节点间的相关关系。例如,在学习课程时,用户在学习完前置课程后,有极大的概率会选择后续的相关课程,反映了课程的流行信息,而RandomWalk生成的节点序列则无法反映这种关系。因此,通过选择WeightedWalk方式来选择生成图节点序列,按照一定的概率αij选择下一个节点。αij是通过统计用户学习当前课程i之后选择继续学习课程j的概率得到。

图3 课程图结构节点的嵌入式向量训练过程

然后可以使用Skip-gram算法来学习序列中节点的向量化表示,从而使序列中相邻两节点共现的概率最大。训练过程本质上是一个优化过程,目标函数可以写为:

式中:w是在序列采样过程中窗口的长度,i 当前节点的编号,Ø(·)表示神经网络,Pr(·)表示似然函数,通过最小化损失函数,得到训练好的神经网络。根据独立性假设,预测节点的概率可写为:

式中:w是在序列采样过程中窗口的长度,Ø(·)表示神经网络,Pr(·)表示似然函数。这样,就可以利用学习到的节点向量,使用向量检索方法来实现课程的推荐。

3 实验结果与分析

3.1 实验环境与数据集

实验环境是Windows10操作系统,16 GB内存,Intel Core i7-10750H处理器,英伟达GeForce RTX 2070显卡,TensorFlow版本2.5.0,cuDNN版本8.1,CUDA版本11.2。

采用中国大学MOOC[13](iCoursera)平台数据集,包含82 535名学员在1 302门课程的相关选课记录及课程属性。数据集包含458 454条选课记录,其中每条记录包含用户ID、课程ID、课程名称、课程层次、选课时间等相关的属性。

3.2 数据预处理

为了方便处理,将数据集内容进行精简,只保留用户ID,课程ID和选课时间这3个属性字段;以课程id作为图数据的节点,依据选课时间段进行数据划分,选择一定时间窗口内用户学习的关联课程,在课程图结构数据上连接边,将用户的课程学习序列转化为图结构数据。

3.3 评价指标

在推荐系统中,笔者关心推送的课程用户是否感兴趣,用查准率(Percision,P)来描述,还要关心用户感兴趣的所有课程是否都有推荐[14],用查全率(Recall,R)描述,此外,用F1-分数(F1-score,F1)来综合评价。

3.4 实验结果

对于每次推荐系统给用户推荐的课程数N,文章取N=3。对比实验中,文章提出的GEV算法与矩阵分解(Matrix Factorization,MF),DeepWalk算法、协同过滤算法(Collaborative Filtering,CF)进行对比,实验结果见表1。

表1 N=3时查全率、查准率与F1-分数

在同样的实验条件下,文章所提的GEV算法在查全率、查准率与F1-分数3个指标上均优于MF、Deep-Walk和CF算法。在N=3时,与MF算法相比,准确率提高15.5%,召回率提高17.8%,F1-分数提高16.9%;与DeepWalk算法相比,准确率提高8.5%,召回率提高12.1%,F1-分数提高10.5%,与CF算法相比,准确率提高10.5%,召回率提高13.3%,F1-分数提高12.1%。

取N=10时,实验结果见表2。从表中数据可以看出,在N=10条件下,GEV算法仍然取得了最好的推荐效果。随着N的增大,推荐课程集合包含的数目越多,对于不同的算法来说,命中用户感兴趣课程的概率就越高,因此,在N=10条件下,各算法相应的查全率、查准率与F1-分数都优于在N=3时的结果。

表2 N=10时查全率、查准率与F1-分数

此外,文章还对算法运行时间进行了对比,在相同的实验平台条件下,比较MF、DeepWalk、CF和GEV算法,推荐给同一位用户10门推荐课程所需要的时间,耗时结果见表3。

表3 推荐系统响应时间

从表中可以看到,作者所提出的GEV算法在对比算法中,具有最少的响应时间,说明算法在实时性上具有较强的竞争力,通过多台服务器进行并行计算优化,可以进一步减少响应时间。

4 结论

文章提出一种基于图节点嵌入向量相似性的推荐算法GEV,利用用户点击序列构建课程图,图的节点为相应课程,边的权重为用户同时学习的次数,依照权重进行随机游走获取训练序列。最后,在MOOC数据集上的实验结果表明,文章所提GEV方法,与矩阵分解,DeepWalk和协同过滤方法相比,具有更高的准确性。

猜你喜欢

向量协同节点
CM节点控制在船舶上的应用
向量的分解
Analysis of the characteristics of electronic equipment usage distance for common users
聚焦“向量与三角”创新题
蜀道难:车与路的协同进化
基于AutoCAD的门窗节点图快速构建
“四化”协同才有出路
三医联动 协同创新
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线