论文链接:http://keg.cs.tsinghua.edu.cn/jietang/publications/Sigir20-Gong-et-al-MOOC-concept-recommendation.pdf
代码链接:https://github.com/JockWang/ACKRec

摘要

大规模的在线公开课程(MOOC)正在成为一种流行的教育方式,为学生掌握知识提供了大规模的开放式学习机会。为了吸引学生的兴趣,MOOC提供商使用推荐系统向学生推荐课程。但是,由于一门课程通常包含许多视频讲座,每个讲座都涵盖一些特定的知识概念,因此直接推荐课程会忽略学生对某些特定知识概念的兴趣。为了填补这一空白,本文研究了知识概念推荐的问题。对于MOOC中的知识概念推荐,我们提出了一种基于端到端图神经网络的方法,称为注意力异构图卷积深度知识推荐器(ACKRec)。像其他推荐问题一样,它也遇到了稀疏问题。为了解决这个问题,我们利用内容信息和上下文信息来通过图卷积网络学习实体的表示。除了学生和知识概念,我们考虑其他类型的实体(例如,课程,视频,教师),并构建异构信息网络(HIN),以捕获不同类型的实体之间相应的卓有成效的语义关系,并将其纳入表示学习过程。具体来说,我们在HIN上使用元路径来指导学生偏好的传播。借助这些元路径,可以获取有关候选知识概念的学生偏好分布。此外,我们提出了一种注意力机制,以自适应地融合来自不同元路径的上下文信息,以捕获不同学生的不同兴趣。为了学习所提出模型的参数,我们提出利用扩展矩阵分解(MF)。进行了一系列实验,与最先进的基准方法相比,它展示了ACKRec在多种流行指标上的有效性。实验结果表明,提出的ACKRec能够有效地向在MOOC中寻求在线学习的学生推荐知识概念。

1、本文贡献

本文的主要贡献可以概括如下:

  • 我们确定了知识概念推荐的重要问题,而现有的MOOC推荐系统常常忽略了这一问题。知识概念推荐填补了这一空白,并提供了更多的微观的建议。
  • 我们提出了ACKRec,这是一种新颖的端到端框架,它利用丰富的异构上下文辅助信息来辅助知识概念的推荐。
  • 我们开发了异构信息网络建模,以捕获MOOC平台中不同类型实体之间的各种复杂交互。
  • 我们设计了一个基于注意力的图卷积网络,该网络可以将内容和异构上下文合并到不同实体的表示学习中。该模型可以在元路径的指导下传播用户的偏好来自动发现用户的潜在兴趣。
  • 我们使用从XuetangX收集的真实数据进行了大量实验研究,以全面评估所提出模型的性能。我们研究了参数,包括元路径组合,表示维度,潜在因素个数和GCN层数。证明了所提出模型与一系列严格基准相比的有效性。

2、问题定义与模型框架

2.1、问题定义

给定目标用户在MOOC中的交互式数据,目标是计算有关用户和一系列知识概念的兴趣分数,然后推荐评分前NNN高的知识概念列表。 具体地,给定用户uuu的交互数据,一个预测函数fff被学习并用于生成知识概念KKK的推荐列表(例如“ c ++”,“二叉树”,“链表”等),使得f:u→{ki∣ki∈K,i<N}f:u\to\{k_i|k_i\in K,i<N\}f:u→{ki​∣ki​∈K,i<N}

2.2、模型框架

整体的模型框架如下:

如上图所示,主要包括4个部分:

  1. Feature Extraction. 通过使用从MOOC中收集的数据,我们首先从知识概念的名称中提取内容信息作为内容特征,然后分析各种关系(例如,concept-vidio和concept-course)和不同类型的实体(例如知识概念 ,视频,课程)来描述知识概念。 同样,我们还为用户生成概念特征和上下文特征。
  2. Meta-path Selection. 基于从数据中提取的特征,在该模块中,我们构建结构化的HIN来建模不同类型实体之间的关系,然后从HIN中选择不同的元路径(即具有不同含义)来描述知识概念的相关性。 例如,如果两个不同的用户注册了同一门课程,我们将在两个用户之间建立一条边。
  3. Representation Learning of Heterogeneous Entities. 基于上一步构建的元路径,提出了一种表示学习模型,以学习异质视图中实体的低维表示。 该模型能够捕获异构实体之间的结构相关性。 具体来说,我们利用选定的元路径通过图卷积网络来指导实体表示学习。 然后,我们利用注意力机制自适应地融合了来自不同元路径的学习到的实体表示。
  4. Rating Prediction. 在生成用户和知识概念的低维表示之后,实体的密集向量被馈送到扩展矩阵分解中以学习模型的参数。 此外,我们根据用户-项目(学生-知识概念)评级矩阵来预测用户对未点击知识概念的兴趣。

3、ACKRec模型

3.1、Feature Extraction

3.1.1、Content Feature

使用Word2vec方法得到知识概念(例如:C++,二叉树,链表)和用户的内容表示。

3.1.2、Context Feature

诸如知识概念名称的单词嵌入之类的内容特征可以用于表示知识概念的信息。 此外,还存在丰富的上下文信息,例如网络结构中不同实体之间的关系(例如,用户:207256观看的视频:v_9e77179和视频:v_1a9aa686;此行为暗含了两个视频之间的关系)。 为了在不同类型的实体之间包括这些复杂的关系,我们进一步将上下文信息建模为特征。 具体来说,我们在用户学习活动中考虑以下关系。

  • R1uR_1^uR1u​:构建user-click-knowledge concept 矩阵A1uA_1^uA1u​,矩阵中的每一个元素ci,j∈{0,1}c_{i,j}\in\{0,1\}ci,j​∈{0,1},表明一个用户iii在学习过程中是否点击了知识概念jjj。
  • R2uR_2^uR2u​:构建user-learn-course矩阵A2uA_2^uA2u​,矩阵中的每个元素li,j∈{0,1}l_{i,j}\in\{0,1\}li,j​∈{0,1},表明一个用户iii是否学习过课程jjj。
  • R3uR_3^uR3u​:构建user-watch-video矩阵A3uA_3^uA3u​,矩阵中的每个元素wi,j∈{0,1}w_{i,j}\in\{0,1\}wi,j​∈{0,1},表明一个用户iii是否看过视频jjj。
  • R4uR_4^uR4u​:构建user-learn-course-taught by-teacher矩阵A4uA_4^uA4u​,矩阵中的每个元素ti,j∈{0,1}t_{i,j}\in\{0,1\}ti,j​∈{0,1},表明一个用户iii学习过老师jjj教的课程。

除了以上的用户交互数据之外,我们还构建了知识实体之间的关系,例如:knowledge concept-included by-video和knowledge concept-involved-course等。

3.2、Meta-path Based Relationship

首先定义了网络模式,即异构网络G\mathcal{G}G的一个子集S\mathcal{S}S,如下图所示:

元路径meta-path:

  • U⟶clickK⟶click−1UU\stackrel{click}{\longrightarrow}K\stackrel{click^{-1}}{\longrightarrow}UU⟶click​K⟶click−1​U表示两个不同的用户点击过相同的知识概念。
  • U⟶learnC⟶taughtbyT⟶taughtby−1C⟶learn−1UU\stackrel{learn}{\longrightarrow}C\stackrel{taught\space by}{\longrightarrow}T\stackrel{taught\space by^{-1}}{\longrightarrow}C\stackrel{learn^{-1}}{\longrightarrow}UU⟶learn​C⟶taught by​T⟶taught by−1​C⟶learn−1​U表示两个不同的用户学习过同一个老师教的课程。

论文中用到的符号表如下:

3.3、Attention-based Graph Convolutional Networks for HIN Representation Learning

在得到内容信息和上下文信息的向量表示之后,我们将实体内容信息输入到图卷积网络GCN中来学习实体的表示。给定一个异质信息网络G=(V,E)\mathcal{G}=(\mathcal{V},\mathcal{E})G=(V,E)和一系列元路径的集合MP={MP1,MP2,⋯,MP∣MP∣}\mathcal{MP}=\{MP_1,MP_2,\cdots,MP_{|MP|}\}MP={MP1​,MP2​,⋯,MP∣MP∣​},以及每条元路径对应的邻接矩阵A={A1,A2,⋯,AMP}\mathcal{A}=\{A_1,A_2,\cdots,A_{MP}\}A={A1​,A2​,⋯,AMP​},这里∣MP∣|MP|∣MP∣代表元路径的条数。我们采用多层GCN来学习实体的表示:h(l+1)=σ(PhlWl)h^{(l+1)}=\sigma\left(Ph^lW^l\right)h(l+1)=σ(PhlWl)其中lll代表第lll层GCN,h0h^0h0表示在第一步提取到的内容特征,P=D~−12A~D~−12P=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}P=D~−21​A~D~−21​,A~=A+I\tilde{A}=A+IA~=A+I,D~=diag(A~1)\tilde{D}=\text{diag}(\tilde{A}\textbf{1})D~=diag(A~1),这里1\textbf{1}1表示全1的向量。

这里,我们设定P0=P1=P2=D~−12A~D~−12P^0=P^1=P^2=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}P0=P1=P2=D~−21​A~D~−21​,并使用3层GCN来获得实体的表示:h1=ReLU((P0X)W0)h^1=ReLU((P^0X)W^0)h1=ReLU((P0X)W0)h2=ReLU((P1H1)W1)h^2=ReLU((P^1H^1)W^1)h2=ReLU((P1H1)W1)h3=ReLU((P2H2)W2)h^3=ReLU((P^2H^2)W^2)h3=ReLU((P2H2)W2)eMP=h3e_{MP}=h^3eMP​=h3,我们选取eMP∈Rde_{MP}\in\mathbb{R}^deMP​∈Rd作为实体的最终表示。但是不同的元路径应当有不同的权重,即:e=∑i=1∣MP∣att(eMPi)eMPie=\sum_{i=1}^{|MP|}att(e_{MP_i})e_{MP_i}e=i=1∑∣MP∣​att(eMPi​​)eMPi​​在此问题中,我们主要关注用户和知识概念这两种实体,给定每一条元路径的表示eMPie_{MP_i}eMPi​​之后,我们定义每条元路径的权重公式如下:αMPi=exp(σ(aeMPi))∑j∈∣MP∣exp(σ(aeMPi))\alpha_{MP_i}=\frac{exp(\sigma(ae_{MP_i}))}{\sum_{j\in|MP|}exp(\sigma(ae_{MP_i}))}αMPi​​=∑j∈∣MP∣​exp(σ(aeMPi​​))exp(σ(aeMPi​​))​

算法流程如下:

3.4、Matrix Factorization for Knowledge Concept Recommendation

在得到以上的信息表示之后,我们提出一种扩展的矩阵分解方法,这里选取用户点击知识点作为评分矩阵,一个用户对一个知识点的评分计算如下:ru,k^=xu⊤yk\hat{\textbf{r}_{u,k}}=\textbf{x}_u^{\top}\textbf{y}_kru,k​^​=xu⊤​yk​这里,xu∈RD×m\textbf{x}_u\in\mathbb{R}^{D\times m}xu​∈RD×m和yk∈RD×n\textbf{y}_k\in\mathbb{R}^{D\times n}yk​∈RD×n分别代表用户的潜在因素表示和知识点的潜在因素表示。由于我们已经得到了用户和知识点的表示,因此,我们将公式扩展为:ru,k^=xu⊤yk+βu⋅eu⊤tk+βk⋅tu⊤ek\hat{\textbf{r}_{u,k}}=\textbf{x}_u^{\top}\textbf{y}_k+\beta_u\cdot\textbf{e}^{u\top}\textbf{t}^k+\beta_k\cdot\textbf{t}^{u\top}\textbf{e}^kru,k​^​=xu⊤​yk​+βu​⋅eu⊤tk+βk​⋅tu⊤ek这里tu\textbf{t}^utu和tk\textbf{t}^ktk为训练参数使得eu\textbf{e}^ueu和ek\textbf{e}^kek在相同的隐空间中。最终的损失函数为:minU,K1m×n∑u=1n∑k=1m(ru,k−ru,k^)2+λ(∣∣xu∣∣2+∣∣yk∣∣2+∣∣tu∣∣2+∣∣tk∣∣2)min_{U,K}\frac{1}{m\times n}\sum_{u=1}^n\sum_{k=1}^m(\textbf{r}_{u,k}-\hat{\textbf{r}_{u,k}})^2+\lambda\left(||\textbf{x}_u||^2+||\textbf{y}_k||^2+||\textbf{t}^u||^2+||\textbf{t}^k||^2\right)minU,K​m×n1​u=1∑n​k=1∑m​(ru,k​−ru,k​^​)2+λ(∣∣xu​∣∣2+∣∣yk​∣∣2+∣∣tu∣∣2+∣∣tk∣∣2)

4、实验

数据集信息如下:

不同元路径下的组合实验结果如下图所示:

其中:

  • MP1MP_1MP1​:U→K⟶−1UU\to K\stackrel{-1}{\longrightarrow}UU→K⟶−1​U
  • MP2MP_2MP2​:U→C⟶−1UU\to C\stackrel{-1}{\longrightarrow}UU→C⟶−1​U
  • MP3MP_3MP3​:U→V⟶−1UU\to V\stackrel{-1}{\longrightarrow}UU→V⟶−1​U
  • MP4MP_4MP4​:U→C→T⟶−1C⟶−1UU\to C\to T\stackrel{-1}{\longrightarrow}C \stackrel{-1}{\longrightarrow} UU→C→T⟶−1​C⟶−1​U

不同的潜在因素个数与嵌入维度对实验结果的影响:

不同的对比方法下的实验结果:

不同的GCN层数对实验结果的影响:

case study:

ACKRec:注意力异构图卷积深度知识推荐器 SIGIR 2020相关推荐

  1. 【论文翻译】HCGN:面向集体分类的异构图卷积网络深度学习模型

    HCGN:面向集体分类的异构图卷积网络深度学习模型 摘要 集合分类是研究网络数据的一项重要技术,旨在利用一组具有复杂依赖关系的互联实体的标签自相关性.随着各种异构信息网络的出现,集合分类目前正面临着来 ...

  2. 基于图卷积的价格推荐论文(Price-aware Recommendation with Graph Convolutional Networks)

    基于图卷积的价格推荐论文概述 ICDE2020非常好的文章 Price-aware Recommendation with Graph Convolutional Networks paper lin ...

  3. 论文|基于三部图网络结构的知识推荐算法

    转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thi ...

  4. DGL实现同构/异构图卷积模型

    同构图卷积 from time import time import numpy as np import dgl import torch import torch.nn as nn import ...

  5. 基于图神经网络的异构图表示学习和推荐算法研究(完整代码+数据)

    基于图神经网络的异构图表示学习和推荐算法研究.包含基于对比学习的关系感知异构图神经网络(Relation-aware Heterogeneous Graph Neural Network with C ...

  6. Python实现基于图神经网络的异构图表示学习和推荐算法研究

    资源下载地址:https://download.csdn.net/download/sheziqiong/85978304 资源下载地址:https://download.csdn.net/downl ...

  7. attention机制中的注意力图怎么画_注意力机制 | 图卷积多跳注意力机制 | Direct multihop Attention based GNN...

    导读:目前GNNs通过利用self-attention机制已经取得较好的效果.但目前的注意力机制都只是考虑到相连的节点,却不能利用到能提供图结构上下文信息的多跳邻居(multi-hop neighbo ...

  8. 【论文解读 ICEIT2022】Heterogeneous Graph Based Knowledge Tracing基于异构图的知识追踪

    文章目录 摘要 1 引言 2 相关工作 2.1 知识追踪 2.2 异构图嵌入 3 基于异构图嵌入的知识追踪 4 实验 5 结论 依然是两阶段 摘要 最近,随着在线辅导系统的发展,对知识追踪(Knowl ...

  9. HGAT-用于半监督短文本分类的异构图注意力网络

    来源:EMNLP 2019 论文链接 代码及数据集链接 摘要 短文本分类在新闻和推特中找到了丰富和有用的标记,以帮助用户找到相关信息.由于在许多实际应用案例中缺乏有标记的训练数据,因此迫切需要研究半监 ...

最新文章

  1. SQL Server中数据的修改是如何落盘的?
  2. EOS 智能合约源代码解读 (1)总体说明
  3. HttpClient:绕开https证书(三)
  4. 51单片机开发板(W25Q16学习)
  5. 剑指Offer——不用加减乘除做加法
  6. xvid 数据编码和解码
  7. 【PAT - 甲级1010】Radix (25分)(二分,进制转化)
  8. oracle数据库配置助手来初始化参数,使用服务器参数文件(SPFILE)管理初始化参数...
  9. 网络推广运营主要做些什么
  10. WPF 基础到企业应用系列2——WPF前世今生
  11. MVC中获取来自控制器名称与动作的方法
  12. Weex BindingX 尝鲜
  13. 七月算法机器学习 8 信息论、最大熵模型与EM算法
  14. matlab dbc文件,一种EXCEL转DBC文件的生成方法及装置与流程
  15. 数学建模之MATLAB画图汇总
  16. 面对失败计算机科学家,面对巨大挫折,仍毫不畏惧、坚韧不拔的名人事例
  17. 【规范】C/C++注释格式
  18. 关于疫情,你想到什么?
  19. 微信小程序实现多页面
  20. 培养良好习惯的7个正确方法

热门文章

  1. UCF 大牛 Prof. Shah 课题组代码合集
  2. 按任意字段排序的分页存储过程
  3. Go实现简单TCP扫描器
  4. 一个关于二叉树的创建、先序遍历、中序遍历、后序遍历、求叶子节点的完整函数的c语言完整程序。
  5. WebFlux响应式编程基础之 5 webflux服务端开发讲解
  6. 设计模式--结构型模式
  7. KVM热迁移方式漫谈
  8. 《Go语言程序设计》读书笔记(七) 包
  9. java设置首页跳转_SpringBoot设置首页(默认页)跳转功能的实现方案
  10. Spring Boot注解详解