论文链接:http://keg.cs.tsinghua.edu.cn/jietang/publications/Sigir20-Gong-et-al-MOOC-concept-recommendation.pdf
大规模的在线公开课程(MOOC)正在成为一种流行的教育方式,为学生掌握知识提供了大规模的开放式学习机会。为了吸引学生的兴趣,MOOC提供商使用推荐系统向学生推荐课程。但是,由于一门课程通常包含许多视频讲座,每个讲座都涵盖一些特定的知识概念,因此直接推荐课程会忽略学生对某些特定知识概念的兴趣。为了填补这一空白,本文研究了知识概念推荐的问题。对于MOOC中的知识概念推荐,我们提出了一种基于端到端图神经网络的方法,称为注意力异构图卷积深度知识推荐器(ACKRec)。像其他推荐问题一样,它也遇到了稀疏问题。为了解决这个问题,我们利用内容信息和上下文信息来通过图卷积网络学习实体的表示。除了学生和知识概念,我们考虑其他类型的实体(例如,课程,视频,教师),并构建异构信息网络(HIN),以捕获不同类型的实体之间相应的卓有成效的语义关系,并将其纳入表示学习过程。具体来说,我们在HIN上使用元路径来指导学生偏好的传播。借助这些元路径,可以获取有关候选知识概念的学生偏好分布。此外,我们提出了一种注意力机制,以自适应地融合来自不同元路径的上下文信息,以捕获不同学生的不同兴趣。为了学习所提出模型的参数,我们提出利用扩展矩阵分解(MF)。进行了一系列实验,与最先进的基准方法相比,它展示了ACKRec在多种流行指标上的有效性。实验结果表明,提出的ACKRec能够有效地向在MOOC中寻求在线学习的学生推荐知识概念。
本文的主要贡献可以概括如下:
给定目标用户在MOOC中的交互式数据,目标是计算有关用户和一系列知识概念的兴趣分数,然后推荐评分前 N N N高的知识概念列表。 具体地,给定用户 u u u的交互数据,一个预测函数 f f f被学习并用于生成知识概念 K K K的推荐列表(例如“ c ++”,“二叉树”,“链表”等),使得 f : u → { k i ∣ k i ∈ K , i < N } f:u\to\{k_i|k_i\in K,i
使用Word2vec方法得到知识概念(例如:C++,二叉树,链表)和用户的内容表示。
诸如知识概念名称的单词嵌入之类的内容特征可以用于表示知识概念的信息。 此外,还存在丰富的上下文信息,例如网络结构中不同实体之间的关系(例如,用户:207256观看的视频:v_9e77179和视频:v_1a9aa686;此行为暗含了两个视频之间的关系)。 为了在不同类型的实体之间包括这些复杂的关系,我们进一步将上下文信息建模为特征。 具体来说,我们在用户学习活动中考虑以下关系。
除了以上的用户交互数据之外,我们还构建了知识实体之间的关系,例如:knowledge concept-included by-video和knowledge concept-involved-course等。
首先定义了网络模式,即异构网络 G \mathcal{G} G的一个子集 S \mathcal{S} S,如下图所示:
元路径meta-path:
在得到内容信息和上下文信息的向量表示之后,我们将实体内容信息输入到图卷积网络GCN中来学习实体的表示。给定一个异质信息网络 G = ( V , E ) \mathcal{G}=(\mathcal{V},\mathcal{E}) G=(V,E)和一系列元路径的集合 M P = { M P 1 , M P 2 , ⋯ , M P ∣ M P ∣ } \mathcal{MP}=\{MP_1,MP_2,\cdots,MP_{|MP|}\} MP={MP1,MP2,⋯,MP∣MP∣},以及每条元路径对应的邻接矩阵 A = { A 1 , A 2 , ⋯ , A M P } \mathcal{A}=\{A_1,A_2,\cdots,A_{MP}\} A={A1,A2,⋯,AMP},这里 ∣ M P ∣ |MP| ∣MP∣代表元路径的条数。我们采用多层GCN来学习实体的表示: h ( l + 1 ) = σ ( P h l W l ) h^{(l+1)}=\sigma\left(Ph^lW^l\right) h(l+1)=σ(PhlWl)其中 l l l代表第 l l l层GCN, h 0 h^0 h0表示在第一步提取到的内容特征, P = D ~ − 1 2 A ~ D ~ − 1 2 P=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}} P=D~−21A~D~−21, A ~ = A + I \tilde{A}=A+I A~=A+I, D ~ = diag ( A ~ 1 ) \tilde{D}=\text{diag}(\tilde{A}\textbf{1}) D~=diag(A~1),这里 1 \textbf{1} 1表示全1的向量。
这里,我们设定 P 0 = P 1 = P 2 = D ~ − 1 2 A ~ D ~ − 1 2 P^0=P^1=P^2=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}} P0=P1=P2=D~−21A~D~−21,并使用3层GCN来获得实体的表示: h 1 = R e L U ( ( P 0 X ) W 0 ) h^1=ReLU((P^0X)W^0) h1=ReLU((P0X)W0) h 2 = R e L U ( ( P 1 H 1 ) W 1 ) h^2=ReLU((P^1H^1)W^1) h2=ReLU((P1H1)W1) h 3 = R e L U ( ( P 2 H 2 ) W 2 ) h^3=ReLU((P^2H^2)W^2) h3=ReLU((P2H2)W2) e M P = h 3 e_{MP}=h^3 eMP=h3,我们选取 e M P ∈ R d e_{MP}\in\mathbb{R}^d eMP∈Rd作为实体的最终表示。但是不同的元路径应当有不同的权重,即: e = ∑ i = 1 ∣ M P ∣ a t t ( e M P i ) e M P i e=\sum_{i=1}^{|MP|}att(e_{MP_i})e_{MP_i} e=i=1∑∣MP∣att(eMPi)eMPi在此问题中,我们主要关注用户和知识概念这两种实体,给定每一条元路径的表示 e M P i e_{MP_i} eMPi之后,我们定义每条元路径的权重公式如下: α M P i = e x p ( σ ( a e M P i ) ) ∑ j ∈ ∣ M P ∣ e x p ( σ ( a e M P i ) ) \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))
在得到以上的信息表示之后,我们提出一种扩展的矩阵分解方法,这里选取用户点击知识点作为评分矩阵,一个用户对一个知识点的评分计算如下: r u , k ^ = x u ⊤ y k \hat{\textbf{r}_{u,k}}=\textbf{x}_u^{\top}\textbf{y}_k ru,k^=xu⊤yk这里, x u ∈ R D × m \textbf{x}_u\in\mathbb{R}^{D\times m} xu∈RD×m和 y k ∈ R D × n \textbf{y}_k\in\mathbb{R}^{D\times n} yk∈RD×n分别代表用户的潜在因素表示和知识点的潜在因素表示。由于我们已经得到了用户和知识点的表示,因此,我们将公式扩展为: r u , k ^ = x u ⊤ y k + β u ⋅ e u ⊤ t k + β k ⋅ t u ⊤ e k \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}^k ru,k^=xu⊤yk+βu⋅eu⊤tk+βk⋅tu⊤ek这里 t u \textbf{t}^u tu和 t k \textbf{t}^k tk为训练参数使得 e u \textbf{e}^u eu和 e k \textbf{e}^k ek在相同的隐空间中。最终的损失函数为: m i n U , K 1 m × n ∑ u = 1 n ∑ k = 1 m ( r u , k − r u , k ^ ) 2 + λ ( ∣ ∣ x u ∣ ∣ 2 + ∣ ∣ y k ∣ ∣ 2 + ∣ ∣ t u ∣ ∣ 2 + ∣ ∣ t k ∣ ∣ 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,Km×n1u=1∑nk=1∑m(ru,k−ru,k^)2+λ(∣∣xu∣∣2+∣∣yk∣∣2+∣∣tu∣∣2+∣∣tk∣∣2)
数据集信息如下:
不同元路径下的组合实验结果如下图所示:
其中:
不同的潜在因素个数与嵌入维度对实验结果的影响:
不同的对比方法下的实验结果:
不同的GCN层数对实验结果的影响:
case study: