一种基于强化学习的个性化习题推荐方法
未命名
09-07
阅读:122
评论:0
1.本发明涉及教育数据挖掘技术领域,尤其涉及一种基于强化学习的个性化习题推荐方法。
背景技术:
2.移动通信、互联网、物联网、云计算、大数据和人工智能等新兴信息与通信技术的发展正在改变着人类的思维、生产、生活和学习方式。当今的教育正向以“网络化、数字化、个性化、泛在化、智能化”为主要特点的方向发展,涌现出大量的新型教育模式,如移动学习、泛化学习、智慧学习和混合式学习等。
3.近些年,在线学习作为一种新兴的个性化学习模式,凭借其便捷性、开放性以及学习资源的丰富性成功吸引了大量学习者的注册和使用。在新一代以互联网为基础的学习环境中,学习时间更灵活,学习方法更多样,学习资源更丰富。学习者可以根据自身学习情况和学习目标自主的安排学习时间、学习方式和学习资源。
4.然而,与传统课堂不同,在线教育平台并不能对学习者进行实时的监督和指导,因此产生了“信息过载”和“知识迷航”等问题。这些问题主要表现为学习者面对数量庞大、质量良莠不齐的学习资源时,往往需要花费大量时间才能找到感兴趣的学习资源,同时也不知道该如何进行学习规划,有时即使花费了大量的时间学习也无法有效的完成学习目标。这些问题会导致学习者学习效率降低,学习质量下降,学习积极性减少,学习失败风险提高。这些问题的出现引起了广大教育工作者和研究人员的反思,如何利用计算机代替教师对学习者进行指导和帮助逐渐成为了研究的热门方向。
5.解决在线学习者在面对海量的学习资源时很难在找到感兴趣的习题资源这一现实问题,提出可行的个性化习题推荐算法方法,使得学习者的学习效率得到大幅度的提升,是现阶段亟需解决的问题,为此,需要考虑到下面三大问题:
6.第一,如何准确的构建出学习者的特征。
7.常用的个性化推荐模型无论是矩阵分解模型、循环神经网络模型还是注意力机制模型在解决习题推荐问题时都是通过学习者的习题记录来对学习者的特征进行建模,并没有考虑学习者在练习题上的表现,这就可能会出现以下问题:假设学习者i和学习者j的习题记录基本相同,但在习题上的表现却不相同。学习者i做对了绝大多数的习题,学习者j却做错了绝大多数的习题,那么他们在下一个时刻所选择的习题很可能会不同。
8.可以看出仅仅根据学习者做过的习题来构建学习者的特征是不够准确的。因此如何在对学习者进行建模时考虑学习者潜在的知识水平,是首要考虑的问题。
9.第二,如何挖掘去掉学习过程中误选习题带来的影响。
10.学习者在进行习题选择时常常会选择到不满意的习题,比如对难度不满意或类别不满意等,但习题记录中并不包含学习者对于习题的满意程度,这些误选的习题会在对学习者兴趣特征建模时形成干扰项。虽然研究者们已经尝试通过注意力机制为学习者的每个历史习题分配不同的注意力系数来区分习题的重要程度,但仍然无法完全消除这些误选习
题的影响。因此如何从去掉误选习题带来的影响,这是需要考虑的必要问题。
11.第三,如何准确的进行习题推荐。
12.在考虑了学习者潜在知识水平,并去掉误选习题带来的影响后,最后要做的就是如何对学习者进行准确的习题推荐。因此选择哪种个性化推荐算法,是需要考虑的重要问题。
13.结合强化学习相关算法来处理在在线教育中所遇到的问题,是当前教育数据挖掘中的一个研究热点。将知识追踪模型、个性化推荐模型和强化学习模型相结合,在考虑了学习者潜在知识水平的同时还去掉了误选习题带来的影响,有效的解决了在线教育中的“信息过载”问题。在线教育中利用强化学习进行个性化习题推荐是提高学习者学习效率的较好方式。
技术实现要素:
14.本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于强化学习的个性化习题推荐方法,是基于强化学习并结合了知识追踪模型和个性化推荐模型的个性化习题推荐方法,以用于解决在线教育中学习者很难找到感兴趣的学习资源这一现实问题。
15.为解决上述技术问题,本发明所采取的技术方案是:
16.一种基于强化学习的个性化习题推荐方法,包括以下步骤:
17.步骤1:利用知识追踪模型计算出学习者潜在的知识水平,将其加入到个性化推荐模型的特征构建和习题记录修改模型的状态表示中;
18.步骤2:构建并训练一个个性化推荐模型用于习题推荐;
19.步骤3:基于强化学习的deep q-learning算法设计并训练一个习题记录修改模型,用来去掉学习过程中误选到的不喜欢或者不满意的习题;
20.步骤4:将个性化推荐模型和习题记录修改模型进行联合训练;
21.步骤5:使用步骤4联合训练后得到的习题记录修改模型对学习者习题记录进行修改,再使用步骤4联合训练后得到的个性化推荐模型对学习者进行习题推荐,得到习题推荐列表。
22.进一步地,所述步骤1中,采用的知识追踪模型为深度知识追踪模型dkt;dkt模型通过长短期记忆网络lstm利用时序关系根据学习者的历史学习记录来预测下一时刻的做题成绩;dkt模型先将学习者的历史成绩通过one-hot编码生成one-hot向量,将one-hot向量输入到lstm网络中,经lstm层提取特征,将提取的特征输入隐藏层,再从输出层输出预测结果,dkt模型的输出表示学习者正确作答各个习题的概率,即学习者下一次答题的成绩;将lstm层的输出作为学习者的潜在知识水平,将其加入到个性化推荐模型的特征构建和习题记录修改模型的状态表示中。dkt模型的输入是学习者的练习记录学习者i在t时刻的练习记录具体表示为其中表示学习者i在t时刻选择的习题,表示学习者i在t时刻的答题结果;习题记录只包含学习者i选择学习的习题,练习记录还记录了学习者i的答题结果。
23.进一步地,所述步骤2中个性化推荐模型包括三个部分,分别是embedding层、gru
层和全连接层;其中embedding层用于将学习者做过的习题记录的one-hot向量映射到低维向量空间进行编码;gru层是门控循环单元层,该层也是一种改进的循环神经网络模型,用于提取习题记录的序列特征;全连接层用于通过学习者的特征计算出该学习者选择每一道习题的概率,按照被选择概率的大小为学习者进行习题推荐。
24.进一步地,所述步骤2的具体方法为:
25.步骤2-1:通过embedding层将学习者i做过的习题记录的one-hot向量映射到低维向量空间进行编码,输出为低维向量
26.步骤2-2:通过gru层提取习题记录的序列特征;
27.gru的更新门决定前一时刻的状态信息和当前时刻的状态信息继续传递到未来的量,计算公式如下式所示:
[0028][0029]
其中,表示学习者i在t时刻做的习题的低维向量表示,h
t-1
表示t-1时刻的隐藏状态信息,wz表示更新门的权重系数,σ(
·
)是sigmod激活函数;
[0030]
gru层的重置门决定了前一时刻的状态信息要被遗忘的量,计算公式如下式所示:
[0031][0032]
其中,wr表示重置门的权重系数;
[0033]
当前记忆内容的计算公式如下式所示:
[0034][0035]
其中,wh是重置门的另一个权重系数,重置门r
t
和隐藏状态信息h
t-1
的对应元素乘积确定了前一时刻所要保留的信息,*是表示矩阵点乘的运算符;
[0036]
当前时间步的最终记忆的计算公式如下式所示:
[0037][0038]
其中,(1-z
t
)*h
t-1
表示前一时刻的信息保留到当前时刻最终记忆的量,表示当前记忆内容保留到当前时刻最终记忆的量;最终得到的h
t
就是学习者习题记录的序列特征;
[0039]
步骤2-3:通过全连接层根据学习者的特征计算出学习者选择每一道习题的概率,如下式所示:
[0040]
y=softmax(wj·
[ki,h
t
]+bj)
[0041]
其中,wj是全连接层的权重系数,bj是全连接层的偏置系数,是由dkt模型计算出的学习者i的潜在知识水平;[ki,h
t
]是将学习者i的潜在知识水平与gru层得到的学习者习题记录的序列特征h
t
进行拼接;softmax(
·
)为激活函数,将输出值限制在0~1之间;
[0042]
步骤2-4:所述个性化推荐模型采用交叉熵作为损失函数对模型进行训练和更新,其计算公式如下式所示:
[0043][0044]
其中,m是学习者数目,pi是学习者i在下一时刻选择习题的真实概率分布,qi是由个性化推荐模型给出表示学习者i在下一时刻选择习题的预测概率分布;
[0045]
交叉熵损失函数是衡量真实概率分布p和模型预测概率分布q间差异性的指标;
[0046]
步骤2-5:将个性化推荐模型计算得出的学习者i选择每一道习题的概率按从大到小的顺序进行排序,取前k个习题组成习题推荐列表推荐给学习者i。
[0047]
进一步地,所述步骤3中的习题记录修改模型采用强化学习相关算法,包括模型的动作表示、状态表示、奖励函数和采用强化学习算法,具体如下:
[0048]
为了删除学习者学习过程中不喜欢或者不满意的习题,每一步的动作a
t
只有两个值,a
t
=0表示在习题记录中删除该习题,a
t
=1表示在习题记录中保留该习题;
[0049]
学习者的状态表示如下式所示:
[0050]
s=[k1,k2,...,kn,p1,p2,...,pn]
[0051]
其中,k1,k2,...,kn表示学习者的潜在知识水平,具体到第i个学习者的表示为表示学习者的潜在知识水平,具体到第i个学习者的表示为由知识追踪模型给出;p1,p2,...,pn是学习者习题记录和位置标识符的低维向量表示,位置标识符的作用是记录修改的位置;
[0052]
强化学习模块的奖励函数由个性化推荐模型给出,形式如下式所示:
[0053][0054]
其中,e
target
是学习者在下一时刻真实选择的习题,表示根据修改后的习题记录选择目标习题的概率,p(e
target
|ei)表示根据原始习题记录选择目标习题的概率;强化学习模块采取回合更新的策略,只有完成一个学习者的整个学习记录的修改后才会获得奖励函数,其余时刻奖励函数为0;
[0055]
强化学习算法采取的是深度q网络算法dqn,该算法是将神经网络和传统强化学习算法中的q-leaming算法相结合;
[0056]
强化学习模块将真实值和预测值的差值的平方作为损失函数,进行训练和更新dqn模型的参数,损失函数具体公式如下式所示:
[0057][0058]
其中,q
θ
(s
t
,a
t
)表示在状态s
t
下选择动作a
t
将获得的奖励的预测值,由预测q网络计算得出,预测q网络的网络参数为θ;表示状态s
t
下选择动作a
t
能获得的奖励的真实值;其中由目标q网络计算得出,表示下一个状态s
t+1
能获得的最大奖励值,目标q网络的网络参数为r
t
是当前能获得的奖励值,由奖励函数给出;
[0059]
损失函数的梯度如下式所示:
[0060][0061]
根据梯度下降来更新网络参数。
[0062]
进一步地,所述步骤3对学习者习题记录修改的具体过程如下:
[0063]
步骤3-1:模型初始化,包括初始化预测q网络和目标q网络的参数;初始化经验回放池,容量为n;初始化学习者修改后的习题记录集学习者标号i=1,时刻t=0;
[0064]
步骤3-2:获取学习者i的习题记录和初始状态s0;
[0065]
步骤3-3:将状态s
t
特征向量φ(s
t
)作为预测q网络的输入,得到当前状态下动作对应的q值;
[0066]
步骤3-4:采用ε-贪婪策略在当前q值中选择出动作a
t
;
[0067]
步骤3-5:如果a
t
=0,则删除中的
[0068]
步骤3-6:在状态s
t
执行当前动作a
t
,得到下一个状态s
t+1
和奖励r
t
;
[0069]
步骤3-7:将{s
t
,a
t
,r
t
,s
t+1
}这个四元组存入经验回放池;
[0070]
步骤3-8:更新状态s
t
=s
t+1
;
[0071]
步骤3-9:从经验回放池中采样m个样本{sj,aj,rj,s
j+1
},j=1,2,
…
,m,计算当前目标q值yj:
[0072][0073]
步骤3-10:使用均方差损失函数来更新预测q网络的参数;
[0074]
步骤3-11:每c步后更新目标q网络的参数,参数值为当前预测q网络的参数值;
[0075]
步骤3-12:判断时刻是否到达设定值t;如果没有,则返回步骤3-3;如果到达,则执行下一步;
[0076]
步骤3-13:将修改后的习题记录ei记为将加入到学习者修改后的习题记录集
[0077]
步骤3-14:判断是否所有学习者的习题记录均修改完,如果否,则返回步骤3-2,继续下一名学习者的习题记录修改,如果是,则结束步骤。
[0078]
进一步地,所述步骤4联合训练的流程具体如下所述:
[0079]
步骤4-1:初始化个性化推荐模型的参数α=α0,知识追踪模型的参数β=β0和强化学习模块的参数θ=θ0;
[0080]
步骤4-2:利用学习者练习记录对知识追踪模型进行训练;
[0081]
步骤4-3:利用学习者习题记录和知识追踪模型对个性化推荐模型进行训练;
[0082]
步骤4-4:固定个性化推荐模型的参数α=α1和知识追踪模型的参数β=β1,对强化学习模块进行预训练;具体方法为:
[0083]
步骤4-4-1:强化学习算法在习题记录上选取动作;
[0084]
步骤4-4-2:根据选择的动作计算奖励函数reward;
[0085]
步骤4-4-3:根据deep q-learning算法的损失函数更新强化学习模块的参数;
[0086]
步骤4-4-4:循环执行步骤4-4-1到步骤4-4-3,直到所有习题记录循环完毕;
[0087]
步骤4-4-5:重复执行步骤4-4-1到步骤4-4-4,直到强化学习模块参数达到最优;
[0088]
步骤4-5:固定知识追踪的参数β=β1,对个性化推荐模型和强化学习模块进行联合训练;具体方法为:
[0089]
步骤4-5-1:强化学习算法在习题记录上选取动作;
[0090]
步骤4-5-2:根据选择的动作计算奖励函数reward;
[0091]
步骤4-5-3:根据deep q-learning算法的损失函数更新强化学习模块的参数;
[0092]
步骤4-5-4:循环执行步骤4-5-1到步骤4-5-3,直到所有循环完毕;
[0093]
步骤4-5-5:根据推荐模型的损失函数更新推荐模型的参数;
[0094]
步骤4-5-6:重复循环执行步骤4-5-1到步骤4-5-5,直到个性化推荐模型和强化学习模块参数达到最优。
[0095]
采用上述技术方案所产生的有益效果在于:本发明提供的基于强化学习的个性化习题推荐方法,首先获得学习者学习记录,通过知识追踪模型判断出学习者潜在的知识水平,将其作为学习者特征的一部分,使得对学习者的特征建模更加准确。之后本章尝试通过强化学习算法来删除习题记录中学习者误选到的不满意的习题,从而提升推荐的准确性。最后通过个性化推荐模型对学习者进行习题推荐。本发明的方法将个性化推荐、知识追踪、强化学习算法相结合,在考虑了学习者潜在知识水平的同时,还去掉了学习过程中误选习题带来的影响,具有重要的理论和实际运用价值。
附图说明
[0096]
图1为本发明实施例提供的个性化习题推荐模型结构图;
[0097]
图2为本发明实施例提供的基于强化学习的个性化习题推荐方法的流程图;
[0098]
图3为本发明实施例提供的知识追踪模型dkt的结构图;
[0099]
图4为本发明实施例提供的长短期记忆网络lstm的结构图;
[0100]
图5为本发明实施例提供的个性化推荐模型的结构图;
[0101]
图6为本发明实施例提供的深度q网络dqn的结构图。
具体实施方式
[0102]
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0103]
本实施例提供一种基于强化学习的个性化习题推荐方法,如图1所示,本实施例的方法构建的模型由三个部分组成,分别是知识追踪模型、个性化推荐模型和习题记录修改模型。其中知识追踪模型可以计算出学习者的潜在知识水平,将其加入到个性化推荐模型的特征构建和习题记录修改模型的状态表示中。个性化推荐模型为习题记录修改模型提供奖励函数,并为学习者进行习题推荐。习题记录修改模型对学习者的历史习题记录进行修改,根据个性化学习模型提供的奖励函数判断修改的好坏进行更新,从而提升习题推荐的
准确性。该方法的流程如图2所示,具体方法如下所述。
[0104]
步骤1:使用知识追踪模型可以计算出学习者的潜在知识水平,将其加入到个性化推荐模型的特征构建和习题记录修改模型的状态表示中。
[0105]
本实施例采用的知识追踪模型是深度知识追踪模型(deep knowledge tracing,dkt)。dkt模型通过循环神经网络或长短期记忆网络lstm利用时序关系根据学习者的历史学习记录来预测下一时刻的做题成绩。本实施例中的循环神经网络采用长短期记忆网络lstm。dkt模型先将学习者的历史成绩通过one-hot编码生成one-hot向量,将其输入到lstm网络中,经lstm层提取特征,将此特征输入隐藏层,再从输出层输出预测结果,dkt的输出表示学习者正确作答各个习题的概率,即学习者下一次答题的成绩。
[0106]
dkt模型的结构如图3所示,图中所示模型是基于长短期记忆(long short-term memory,lstm)网络的知识追踪模型,可以通过学习者在学习记录上的表现判断出学习者的潜在知识水平。dkt模型的输入是学习者i的练习记录学习者i在t时刻的练习记录具体表示为其中表示学习者i在t时刻选择的习题编号,表示学习者i在t时刻在该习题上的表现,1表示做对了该习题,0表示做错了该习题。首先将通过one-hot编码转化为one-hot向量输入到lstm网络中。
[0107]
lstm网络,是一种改进的循环神经网络,它可以解决rnn无法处理长距离依赖的问题,lstm的结构如图4所示。
[0108]
与循环神经网络不同的是,长短期记忆神经网络引入一个记忆状态,通过神经元的三个门控单元来控制存储信息,使神经元的记忆状态始终保存整个长序列的信息。
[0109]
lstm网络中的遗忘门负责控制上一时刻的状态保留,计算公式如下式所示:
[0110][0111]
其中,wf是遗忘门的权重矩阵,是t时刻遗忘门的输入,这里是学习者i在t时刻的练习记录,表示两个向量的拼接,h
t-1
表示第t-1时刻的输出,bf表示遗忘门的偏置项,σ(
·
)是sigmoid激活函数。
[0112]
lstm网络中的输入门负责控制把当前状态输入到长期状态,计算公式如下式所示:
[0113][0114]
其中,wi是输入门的权重矩阵,bi是输入门的偏置项。
[0115]
当前输入的单元状态表示如下式所示:
[0116][0117]
其中,wc是单元状态的权重矩阵,bc是单元状态的偏置项,tanh是激活函数。
[0118]
通过上面三个公式以及前一时刻的单元状态c
t-1
得到当前时刻的单元状态,如下式所示:
[0119][0120]
其中,*是表示矩阵点乘的运算符。
[0121]
lstm网络中的输出门负责控制是否把长期状态作为当前的输出,其表示如下式所示:
[0122][0123]
其中,wo是输出门的权重矩阵,bc是输出门的偏置项。
[0124]
最终通过下式得到输出状态:
[0125]ht
=o
t
*tanh(c
t
)
[0126]
dkt模型可以综合考虑学习者较长时间前的练习表现和近期的练习表现,从而判断出学习者的潜在知识水平。并且其中遗忘门的设计符合学习者会随着时间的流逝降低,对先前学习的知识的掌握水平逐渐降低这一特点。本实施例将lstm层的输出作为学习者i的潜在n个知识点上的知识水平记为将其作为学习者的特征的一部分来提升推荐的性能。
[0127]
步骤2:构建并训练一个个性化推荐模型,包括三个部分,分别是embedding层、gru层和全连接层。其中embedding层的作用是将学习者i做过的习题记录的one-hot向量映射到低维向量空间进行编码;gru层是门控循环单元层,该层也是一种改进的循环神经网络模型,作用是提取习题记录的序列特征;全连接层的作用是通过学习者i的特征计算出他选择每一道习题的概率,按照被选择概率的大小为学习者进行习题推荐。该个性化推荐模型有两个作用:一是为习题记录修改模型提供奖励函数,二是为学习者进行习题推荐。个性化推荐模型结构如图5所示,具体方法如下所述。
[0128]
步骤2-1:通过embedding层将学习者i做过的习题记录的one-hot向量映射到低维向量空间进行编码,输出为低维向量
[0129]
步骤2-2:通过gru层提取习题记录的序列特征。
[0130]
gru层只有更新门和重置门两种操作。gru层会根据当前时刻的输入和上一时刻的网络隐藏状态计算出重置门和更新门的输出,然后根据当前时刻的输入和重置门的输出计算候选隐藏状态,最后根据候选隐藏状态和更新门的输出得到最终的隐藏状态,并根据隐藏状态得到当前时刻的输出。
[0131]
gru的更新门决定前一时刻的状态信息和当前时刻的状态信息继续传递到未来的量,计算公式如下式所示:
[0132][0133]
其中,表示学习者i在t时刻做的习题的低维向量表示,h
t-1
表示t-1时刻的隐藏状态信息,wz表示更新门的权重系数,σ(
·
)是sigmoid激活函数。
[0134]
gru层的重置门决定了前一时刻的状态信息要被遗忘的量,计算公式如下式所示:
[0135][0136]
其中,wr表示重置门的权重系数。
[0137]
当前记忆内容的计算公式如下式所示:
[0138][0139]
其中,wh是重置门r
t
的另一个权重系数,重置门r
t
和隐藏状态信息h
t-1
的对应元素乘积确定了前一时刻所要保留的信息,*是表示矩阵点乘的运算符。
[0140]
当前时间步的最终记忆的计算公式如下式所示:
[0141][0142]
其中,(1-z
t
)*h
t-1
表示前一时刻的信息保留到当前时刻最终记忆的量,表示当前记忆内容保留到当前时刻最终记忆的量。最终得到的h
t
就是学习者习题记录的序列特征。
[0143]
步骤2-3:通过全连接层根据学习者的特征计算出学习者选择每一道习题的概率,如下式所示:
[0144]
y=softmax(wj·
[ki,h
t
]+bj)
[0145]
其中,wj是全连接层的权重系数,bj是全连接层的偏置系数,是由dkt模型计算出的学习者i的潜在知识水平;[ki,h
t
]是将学习者i的潜在知识水平与gru层得到的学习者习题记录的序列特征h
t
进行拼接;softmax(
·
)为激活函数,将输出值限制在0~1之间;
[0146]
步骤2-4:所述个性化推荐模型采用交叉熵作为损失函数对模型进行训练和更新,其计算公式如下式所示:
[0147][0148]
其中,m是学习者数目,pi是学习者i在下一时刻选择习题的真实概率分布,qi是由个性化推荐模型给出表示学习者i在下一时刻选择习题的预测概率分布。交叉熵损失函数是衡量真实概率分布p和模型预测概率分布q间差异性的指标。
[0149]
步骤2-5:将个性化推荐模型计算得到的学习者i选择每一道习题的概率按从大到小的顺序进行排序,取前k个习题组成习题推荐列表推荐给学习者i。
[0150]
步骤3:构建并训练一个习题记录修改模型,用来去掉学习者在学习过程中误选到的不喜欢或者不满意的习题,从而更准确的为学习者进行习题推荐。因为习题记录修改模型采用的是强化学习相关算法,所以按照强化学习的一般开发流程对该模型的动作表示、状态表示、奖励函数和采用强化学习算法进行详细的介绍。
[0151]
(1)动作表示
[0152]
所述习题记录修改模型是为了删除学习者不喜欢或者不满意的习题,所以每一步的动作a
t
只有两个值,a
t
=0表示在习题记录中删除该习题,a
t
=1表示在习题记录中保留该习题。
[0153]
(2)状态表示
[0154]
学习者的状态表示如下式所示:
[0155]
s=[k1,k2,...,kn,p1,p2,...,pn]
[0156]
其中,k1,k2,...,kn表示学习者的潜在知识水平,由知识追踪模型给出;p1,p2,...,pn是学习者习题记录和位置标识符的低维向量表示,位置标识符的作用是记录修改的位
置。
[0157]
(3)奖励函数
[0158]
强化学习模块的奖励函数由个性化推荐模型给出,形式如下式所示:
[0159][0160]
其中,e
target
是学习者在下一时刻真实选择的习题,表示根据修改后的习题记录选择目标习题的概率,p(e
target
|ei)表示根据原始习题记录选择目标习题的概率。强化学习模块采取回合更新的策略,只有完成一个学习者的整个学习记录的修改后才会获得奖励函数,其余时刻奖励函数为0。
[0161]
(4)强化学习算法
[0162]
本实施例采取的是深度q网络(deep q network,dqn)算法,该算法是将神经网络和传统强化学习算法中的q-leaming算法相结合。dqn的结构如图6所示。
[0163]
强化学习模块将真实值和预测值的差值的平方作为损失函数,进行训练和更新dqn模型的参数,损失函数具体公式如下式所示:
[0164][0165]
其中,q
θ
(s
t
,a
t
)表示在状态s
t
下选择动作a
t
将获得的奖励的预测值,由预测q网络计算得出,预测q网络的网络参数为θ。表示状态s
t
下选择动作a
t
能获得的奖励的真实值。其中由目标q网络计算得出,表示下一个状态s
t+1
能获得的最大奖励值,目标q网络的网络参数为r
t
是当前能获得的奖励值,由奖励函数给出。
[0166]
损失函数的梯度如下式所示,根据梯度下降来更新网络参数。
[0167][0168]
学习者习题记录修改的具体过程如下所述:
[0169]
步骤3-1:模型初始化,包括初始化预测q网络和目标q网络的参数;初始化经验回放池,容量为n;初始化学习者修改后的习题记录集学习者标号i=1,时刻t=0;
[0170]
步骤3-2:获取学习者i的习题记录和初始状态s0;
[0171]
步骤3-3:将状态s
t
特征向量φ(s
t
)作为预测q网络的输入,得到当前状态下动作对应的q值;
[0172]
步骤3-4:采用ε-贪婪策略在当前q值中选择出动作a
t
;
[0173]
步骤3-5:如果a
t
=0,则删除中的
[0174]
步骤3-6:在状态s
t
执行当前动作a
t
,得到下一个状态s
t+1
和奖励r
t
;
[0175]
步骤3-7:将{s
t
,a
t
,r
t
,s
t+1
}这个四元组存入经验回放池;
[0176]
步骤3-8:更新状态s
t
=s
t+1
;
[0177]
步骤3-9:从经验回放池中采样m个样本{sj,aj,rj,s
j+1
},j=1,2,
…
,m,计算当前目标q值yj:
[0178][0179]
步骤3-10:使用均方差损失函数来更新预测q网络的参数;
[0180]
步骤3-11:每c步后更新目标q网络的参数,参数值为当前预测q网络的参数值;
[0181]
步骤3-12:判断时刻是否到达设定值t;如果没有,则返回步骤3-3;如果到达,则执行下一步;
[0182]
步骤3-13:将修改后的习题记录ei记为将加入到学习者修改后的习题记录集
[0183]
步骤3-14:判断是否所有学习者的习题记录均修改完,如果否,则返回步骤3-2,继续下一名学习者的习题记录修改,如果是,则结束步骤。
[0184]
步骤4:将个性化推荐模型和习题记录修改模型进行联合训练,得到最优的模型参数,提高习题推荐的准确性。本实施例提出的基于强化学习算法的个性化习题推荐模型的联合训练流程,具体如下所述。
[0185]
步骤4-1:初始化个性化推荐模型的参数α=α0,知识追踪模型的参数β=β0和强化学习模块的参数θ=θ0;
[0186]
步骤4-2:利用学习者练习记录记录对知识追踪模型进行训练;
[0187]
步骤4-3:利用习题记录记录和知识追踪模型对个性化推荐模型进行训练;
[0188]
步骤4-4:固定个性化推荐模型的参数α=α1和知识追踪模型的参数β=β1,对强化学习模块进行预训练;具体方法为:
[0189]
步骤4-4-1:强化学习算法在习题记录上选取动作;
[0190]
步骤4-4-2:根据选择的动作计算奖励函数reward;
[0191]
步骤4-4-3:根据deep q-learning算法的损失函数更新强化学习模块的参数;
[0192]
步骤4-4-4:循环执行步骤4-4-1到步骤4-4-3,直到所有习题记录循环完毕;
[0193]
步骤4-4-5:重复执行步骤4-4-1到步骤4-4-4,直到强化学习模块参数达到最优;
[0194]
步骤4-5:固定知识追踪的参数β=β1,对个性化推荐模型和强化学习模块进行联合训练;具体方法为:
[0195]
步骤4-5-1:强化学习算法在习题记录上选取动作;
[0196]
步骤4-5-2:根据选择的动作计算奖励函数reward;
[0197]
步骤4-5-3:根据deep q-learning算法的损失函数更新强化学习模块的参数;
[0198]
步骤4-5-4:循环执行步骤4-5-1到步骤4-5-3,直到所有循环完毕;
[0199]
步骤4-5-5:根据推荐模型的损失函数更新推荐模型的参数;
[0200]
步骤4-5-6:重复循环执行步骤4-5-1到步骤4-5-5,直到个性化推荐模型和强化学习模块参数达到最优。
[0201]
步骤5:使用步骤4联合训练后得到的习题记录修改模型对学习者习题记录进行修改,再使用步骤4联合训练后得到的个性化推荐模型对学习者进行习题推荐,得到习题推荐列表。
[0202]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
技术特征:
1.一种基于强化学习的个性化习题推荐方法,其特征在于:包括以下步骤:步骤1:利用知识追踪模型计算出学习者潜在的知识水平,将其加入到个性化推荐模型的特征构建和习题记录修改模型的状态表示中;步骤2:构建并训练一个个性化推荐模型用于习题推荐;步骤3:基于强化学习的deep q-learning算法设计并训练一个习题记录修改模型,用来去掉学习过程中误选到的不喜欢或者不满意的习题;步骤4:将个性化推荐模型和习题记录修改模型进行联合训练;步骤5:使用步骤4联合训练后得到的习题记录修改模型对学习者习题记录进行修改,再使用步骤4联合训练后得到的个性化推荐模型对学习者进行习题推荐,得到习题推荐列表。2.根据权利要求1所述的基于强化学习的个性化习题推荐方法,其特征在于:所述步骤1中,采用的知识追踪模型为深度知识追踪模型dkt;dkt模型通过长短期记忆网络lstm利用时序关系根据学习者的历史学习记录来预测下一时刻的做题成绩;dkt模型先将学习者的历史成绩通过one-hot编码生成one-hot向量,将one-hot向量输入到lstm网络中,经lstm层提取特征,将提取的特征输入隐藏层,再从输出层输出预测结果,dkt模型的输出表示学习者正确作答各个习题的概率,即学习者下一次答题的成绩;将lstm层的输出作为学习者的潜在知识水平,将其加入到个性化推荐模型的特征构建和习题记录修改模型的状态表示中;dkt模型的输入是学习者的练习记录学习者i在t时刻的练习记录具体表示为其中表示学习者i在t时刻选择的习题,表示学习者i在t时刻的答题结果;习题记录只包含学习者i选择学习的习题,练习记录只包含学习者i选择学习的习题,练习记录还记录了学习者i的答题结果。3.根据权利要求1所述的基于强化学习的个性化习题推荐方法,其特征在于:所述步骤2中个性化推荐模型包括三个部分,分别是embedding层、gru层和全连接层;其中embedding层用于将学习者做过的习题记录的one-hot向量映射到低维向量空间进行编码;gru层是门控循环单元层,该层也是一种改进的循环神经网络模型,用于提取习题记录的序列特征;全连接层用于通过学习者的特征计算出该学习者选择每一道习题的概率,按照被选择概率的大小为学习者进行习题推荐。4.根据权利要求3所述的基于强化学习的个性化习题推荐方法,其特征在于:所述步骤2的具体方法为:步骤2-1:通过embedding层将学习者i做过的习题记录的one-hot向量映射到低维向量空间进行编码,输出为低维向量步骤2-2:通过gru层提取习题记录的序列特征;gru的更新门决定前一时刻的状态信息和当前时刻的状态信息继续传递到未来的量,计算公式如下式所示:其中,表示学习者i在t时刻做的习题的低维向量表示,h
t-1
表示t-1时刻的隐藏状态
信息,w
z
表示更新门的权重系数,σ(
·
)是sigmod激活函数;gru层的重置门决定了前一时刻的状态信息要被遗忘的量,计算公式如下式所示:其中,w
r
表示重置门的权重系数;当前记忆内容的计算公式如下式所示:其中,w
h
是重置门的另一个权重系数,重置门r
t
和隐藏状态信息h
t-1
的对应元素乘积确定了前一时刻所要保留的信息,*是表示矩阵点乘的运算符;当前时间步的最终记忆的计算公式如下式所示:其中,(1-z
t
)*h
t-1
表示前一时刻的信息保留到当前时刻最终记忆的量,表示当前记忆内容保留到当前时刻最终记忆的量;最终得到的h
t
就是学习者习题记录的序列特征;步骤2-3:通过全连接层根据学习者的特征计算出学习者选择每一道习题的概率,如下式所示:y=softmax(w
j
·
[k
i
,h
t
]+b
j
)其中,w
j
是全连接层的权重系数,b
j
是全连接层的偏置系数,是由dkt模型计算出的学习者i的潜在知识水平;[k
i
,h
t
]是将学习者i的潜在知识水平与gru层得到的学习者习题记录的序列特征h
t
进行拼接;softmax(
·
)为激活函数,将输出值限制在0~1之间;步骤2-4:所述个性化推荐模型采用交叉熵作为损失函数对模型进行训练和更新,其计算公式如下式所示:其中,m是学习者数目,p
i
是学习者i在下一时刻选择习题的真实概率分布,q
i
是由个性化推荐模型给出表示学习者i在下一时刻选择习题的预测概率分布;交叉熵损失函数是衡量真实概率分布p和模型预测概率分布q间差异性的指标;步骤2-5:将个性化推荐模型计算得出的学习者i选择每一道习题的概率按从大到小的顺序进行排序,取前k个习题组成习题推荐列表推荐给学习者i。5.根据权利要求4所述的基于强化学习的个性化习题推荐方法,其特征在于:所述步骤3中的习题记录修改模型采用强化学习相关算法,包括模型的动作表示、状态表示、奖励函数和采用强化学习算法,具体如下:为了删除学习者学习过程中不喜欢或者不满意的习题,每一步的动作a
t
只有两个值,a
t
=0表示在习题记录中删除该习题,a
t
=1表示在习题记录中保留该习题;学习者的状态表示如下式所示:s=[k1,k2,
…
,k
n
,p1,p2,
…
,p
n
]其中,k1,k2,
…
,k
n
表示学习者的潜在知识水平,具体到第i个学习者的表示为
由知识追踪模型给出;p1,p2,
…
,p
n
是学习者习题记录和位置标识符的低维向量表示,位置标识符的作用是记录修改的位置;强化学习模块的奖励函数由个性化推荐模型给出,形式如下式所示:其中,e
target
是学习者在下一时刻真实选择的习题,表示根据修改后的习题记录选择目标习题的概率,p(e
target
|e
i
)表示根据原始习题记录选择目标习题的概率;强化学习模块采取回合更新的策略,只有完成一个学习者的整个学习记录的修改后才会获得奖励函数,其余时刻奖励函数为0;强化学习算法采取的是深度q网络算法dqn,该算法是将神经网络和传统强化学习算法中的q-learning算法相结合;强化学习模块将真实值和预测值的差值的平方作为损失函数,进行训练和更新dqn模型的参数,损失函数具体公式如下式所示:其中,q
θ
(s
t
,a
t
)表示在状态s
t
下选择动作a
t
将获得的奖励的预测值,由预测q网络计算得出,预测q网络的网络参数为θ;表示状态s
t
下选择动作a
t
能获得的奖励的真实值;其中由目标q网络计算得出,表示下一个状态s
t+1
能获得的最大奖励值,目标q网络的网络参数为r
t
是当前能获得的奖励值,由奖励函数给出;损失函数的梯度如下式所示:根据梯度下降来更新网络参数。6.根据权利要求5所述的基于强化学习的个性化习题推荐方法,其特征在于:所述步骤3对学习者习题记录修改的具体过程如下:步骤3-1:模型初始化,包括初始化预测q网络和目标q网络的参数;初始化经验回放池,容量为n;初始化学习者修改后的习题记录集学习者标号i=1,时刻t=0;步骤3-2:获取学习者i的习题记录和初始状态s0;步骤3-3:将状态s
t
特征向量φ(s
t
)作为预测q网络的输入,得到当前状态下动作对应的q值;步骤3-4:采用ε-贪婪策略在当前q值中选择出动作a
t
;步骤3-5:如果a
t
=0,则删除中的步骤3-6:在状态s
t
执行当前动作a
t
,得到下一个状态s
t+1
和奖励r
t
;步骤3-7:将{s
t
,a
t
,r
t
,s
t+1
}这个四元组存入经验回放池;步骤3-8:更新状态s
t
=s
t+1
;步骤3-9:从经验回放池中采样m个样本{s
j
,a
j
,r
j
,s
j+1
},j=1,2,
…
,m,计算当前目标q值y
j
:
步骤3-10:使用均方差损失函数来更新预测q网络的参数;步骤3-11:每c步后更新目标q网络的参数,参数值为当前预测q网络的参数值;步骤3-12:判断时刻是否到达设定值t;如果没有,则返回步骤3-3;如果到达,则执行下一步;步骤3-13:将修改后的习题记录e
i
记为将加入到学习者修改后的习题记录集步骤3-14:判断是否所有学习者的习题记录均修改完,如果否,则返回步骤3-2,继续下一名学习者的习题记录修改,如果是,则结束步骤。7.根据权利要求6所述的基于强化学习的个性化习题推荐方法,其特征在于:所述步骤4联合训练的流程具体如下所述:步骤4-1:初始化个性化推荐模型的参数α=α0,知识追踪模型的参数β=β0和强化学习模块的参数θ=θ0;步骤4-2:利用学习者练习记录对知识追踪模型进行训练;步骤4-3:利用学习者习题记录和知识追踪模型对个性化推荐模型进行训练;步骤4-4:固定个性化推荐模型的参数α=α1和知识追踪模型的参数β=β1,对强化学习模块进行预训练;具体方法为:步骤4-4-1:强化学习算法在习题记录上选取动作;步骤4-4-2:根据选择的动作计算奖励函数reward;步骤4-4-3:根据deep q-learning算法的损失函数更新强化学习模块的参数;步骤4-4-4:循环执行步骤4-4-1到步骤4-4-3,直到所有习题记录循环完毕;步骤4-4-5:重复执行步骤4-4-1到步骤4-4-4,直到强化学习模块参数达到最优;步骤4-5:固定知识追踪的参数β=β1,对个性化推荐模型和强化学习模块进行联合训练;具体方法为:步骤4-5-1:强化学习算法在习题记录上选取动作;步骤4-5-2:根据选择的动作计算奖励函数reward;步骤4-5-3:根据deep q-learning算法的损失函数更新强化学习模块的参数;步骤4-5-4:循环执行步骤4-5-1到步骤4-5-3,直到所有循环完毕;步骤4-5-5:根据推荐模型的损失函数更新推荐模型的参数;步骤4-5-6:重复循环执行步骤4-5-1到步骤4-5-5,直到个性化推荐模型和强化学习模块参数达到最优。
技术总结
本发明提供一种基于强化学习的个性化习题推荐方法,涉及教育数据挖掘技术领域。本发明首先获得学习者学习记录,通过知识追踪模型判断出学习者潜在的知识水平,将其作为学习者特征的一部分,使得对学习者的特征建模更加准确。之后通过强化学习算法来删除习题记录中学习者误选到的不满意的习题,从而提升推荐的准确性。最后通过个性化推荐模型对学习者进行习题推荐。本发明将个性化推荐、知识追踪、强化学习算法相结合,在考虑学习者潜在知识水平的同时,还去掉了学习过程中误选习题带来的影响,具有重要的理论和实际运用价值。具有重要的理论和实际运用价值。具有重要的理论和实际运用价值。
技术研发人员:张天成 李季 李捷 张馨艺 于明鹤 于戈
受保护的技术使用者:东北大学
技术研发日:2023.06.14
技术公布日:2023/9/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
