基于知识图谱的微信智能刷题系统

2018-12-10 06:08王家辉文欣秀范贵生唐佳诚张嘉寅
实验室研究与探索 2018年11期
关键词:刷题图谱题目

王家辉, 文欣秀, 赵 敏, 范贵生, 唐佳诚, 张嘉寅

(华东理工大学 a.信息科学与工程学院;b.理学院,上海 200237)

0 引 言

随着智能手机和4G网络的普及,海量教学资源触手可及,各类辅助教学工具也得到了广泛的发展。手机智能做题软件(例如猿题库,扇贝单词,粉笔公考等),发挥移动端的优势,打破时间空间的束缚,帮助用户利用一切碎片化的时间进行学习,因此受到了用户的广泛青睐。大数据已经成为当下的一个研究热点,各类辅助教学软件也正朝着智能化方向不断前行,例如利用推荐算法对每个用户进行个性化推荐,致力于帮助学生寻找到学习的最佳路径等。

目前推荐算法已广泛应用于电商行业、视频网站等,作为推荐算法的鼻祖亚马逊,其35%的收入来源于推荐,Netflix宣称60%的用户是通过其推荐系统找到自己感兴趣的电影和视频的[1]。在电商、电影等领域,主要利用用户在网站中的行为数据,根据用户或者物品相似度,给特定用户推荐对应的商品,吸引用户点击并发生点击行为;在教育领域中,虽然用户的答题数据背后依然隐含着题目之间的关联信息,但是追溯根源还是归因于学生没有掌握相应的知识点,因此需要构建出题目与知识点之间的强关联关系。

尤其是对于《C程序设计》这类需要深入理解的课程,单纯地利用行为数据和协同过滤算法来推荐相似的题目和相似用户做错的题目效果一般,因为做错题目还是由于相应的知识点没有掌握,在这种情况下做再多相似的题目也是徒劳的[2,3]。因此本文将在协同过滤思想的基础上融合Google在2012年提出的知识图谱的概念[4],将用户-题目-知识点作为图的节点,用户和题目之间的相似度作为边的权重,将知识与用户行为结合起来进行个性化推荐。

1 相关工作

随着互联网的兴起,海量的教学资源触手可及,借鉴在电商行业中对于商品资源的推荐,在教学领域也兴起了大量关于教学资源推荐的研究,帮助用户快速的从海量资源中找到与自己相关的内容,提升学习的效率。

协同过滤算法的思想是通过用户的行为数据来计算出用户、物品之间的相似度,然后推荐相似用户所感兴趣的内容,目前已广泛应用于各类教学资源的推荐,并且取得了较好的效果。例如文献[5-6]中利用协同过滤算法对于课程进行了推荐,文献[7-8]中对于学习资源进行了推荐。协同过滤算法在资源推荐领域受到了广泛的应用,并且取得了较好的效果。虽然教学资源的推荐非常重要,在信息化教学系统中对于习题的推荐同样非常重要,可以帮助学生快速地掌握所学的知识。然而习题的推荐与资源推荐存在着一定的差异,用户做错题的本质是因为知识的欠缺,如果不停地推荐相似用户的错题并未从根源上解决问题,目前对于这方面的研究目前较少。

吴云峰等[9]把电子商务中的用户对商品的评分方式加以修改应用到中学教学中学生对习题的评分,并利用协同过滤算法进行习题推荐。徐琳等[10]设计了一个基于Prim改进用户聚类的推荐算法。郭红霞[11]利用Apriori算法针对学生错题挖掘出学生薄弱知识点的关联关系, 并利用K-Means算法将推荐试题与原错误试题进行聚类,结合学生自身对错题的评分,预测学生对推荐试题的评分进行推荐。

目前对于习题的推荐也主要还是利用用户行为数据来隐式地反映出题目的内在关联进而进行推荐,随着Google知识图谱概念的提出,知识图谱越来越多的被用于知识表示,基于图的搜索与推荐也逐渐兴起[12-13]。文献[14-15]中分别利用知识图谱进行了标签和学习资源的推荐。陆星儿等[16]通过分析所构建的教学知识图谱,帮助教师反思教学设计与学生认知过程中产生的问题。刷题系统与传统的资源推荐不同,所关注的并不是用户是否对所推荐的内容感兴趣,诱导用户产生点击行为,提高转换率,而是如何帮助提升复习的效率。除了行为数据外,知识同样占据着重要的地位,因此本文融合知识图谱和协同过滤算法,构建了一套智能刷题系统,旨在帮助用户寻找到复习的捷径。

2 知识图谱构建

2.1 节点定义

智能刷题系统中,用户U、题目Q、知识点K之间形成了一个三元关系,其中:用户集用U={u1,u2…um}表示;题目集用Q={q1,q2,…,qn}表示;知识点集用K={k1,k2,…,ko}表示。

2.2 关系定义&权重设置

(1) 题目-知识点M(Q,K):权重表示知识点对于该题目的重要程度,分别用0.1,0.3,0.5, 0.7,0.9表示。

(2) 用户-题目M(U,Q):权重表示用户对题目的掌握程度,M(U,Q)=∑αq1+βq2(其中q1、q2分别表示用户答对、答错该题的次数,α,β为权重系数。

(3) 用户-知识点M(U,K):权重表示用户对知识点的掌握程度,M(U,K)=∑αq1+βq2(其中q1,q2表示用户答对、答错该知识点的次数,α,β为权重系数。

其中:①手工标定了题目-知识点之间的联系,②、③根据用户的做题记录定义了用户对于题目和知识点的掌握程度,④、⑤参考协同过滤的思想,计算出了题目和用户之间的相似度,并且通过阈值设定的方法来计算出用户之间的相似度。

图1所示通过Echarts可视化地呈现了知识图谱中的子图-题目与知识点之间的关系,包括了题目-知识点,题目-题目之间的关系。

图1 题目-知识点知识图谱

3 智能推荐

3.1 基于知识推荐

针对每个独立的用户在Redis中创建一个题目队列,当用户做错一道题目的时候,去知识图谱中查询与该题目所相关的知识点和关联题,并加入该用户的刷题队列中,来进行推荐。

例子:用户做错了题目7004,

5(int)((double)9/2)-9%2 A.0 B.3 C.4 D.5

步骤1查询相关概念知识点。利用cypher语句去知识图谱中查询该题目所涉及的知识点,即match p=(question)-[r]-(knowledgePoint) where question.name = “7004,5” and r.name = “qk_1” return p。结果将返回该题目所涉及的概念知识点(求余运算和强制转换)

C语言的基本运算符有加、减、乘(*)、除(/)、求余__________

类型的强制转换表示形式:__________ (表达式)

步骤2查询相关基础题知识点

由于知识点过于抽象,因此又针对概念设置了基础题知识点,查询结果如下:

9%2的值是

取一定量的粉煤灰提取氧化铝后的白泥,水洗3~5次用于去除其吸附的氯离子,于120 ℃烘箱中烘干。准确称量60 g白泥固体加入三颈烧瓶中,加入4.0 mol/L的NaOH溶液240 mL,采用加热套加热,温度为80 ℃,磁力搅拌时间为2.5 h,过滤后获得滤液通过ICP测定成分。

(double)9/2的值是

(int)(4.5)

步骤3查询相似题。在知识图谱中定义了题目与题目之间的关系M(I_1,I_2),该关系表示两道题目同时做错的概率达到了某个特定的阈值。利用语句match p=(q1)-[r]-(q2) where q1.name=“7004,5” return q2即可获取相似题的数据,结果如下:

表达式3.6-5/2+1.2+5%2的值是

A 4.3 B 4.8 C 3.3 D 3.8

若有以下程序段

double x=5.168 94;

(int)(x*1 000+0.5)/(double)1 000);

则程序段的输出结果是

A 5.170 000 B 5.175 000 C 5.169 000

D 5.168 000

步骤4推荐过程。在Redis中针对每个用户设置了一个刷题队列,将上述所有的关联题目lpush进队列(见图2)。并且从队列中rpop出一道题目作为下一道推荐的题目。

图2 推荐过程示意图

3.2 基于用户推荐

利用知识图谱中存储的用户-用户的M(U1,U2)关系,从图谱中寻找出与当前用户所相似的用户集合U={u1,u2,…,un},同时利用M(U,Q)关系,遍历用户集合查询出每个用户ui未掌握的题目集合Qi并且将该题目加入用户队列中。

3.3 基于物品属性

知识图谱中M(U,K)关系存储了用户对于知识点的掌握程度,造成用户做错题的主要原因还是因为知识点没有掌握,因此根据该用户未掌握的知识点可以反向推荐出所涉及该知识点的题目。

上述3种方法分别从用户-题目(基于知识),用户-用户(基于用户),用户-知识点(基于物品属性)3个角度对于每个用户进行了个性化推荐。由于用户的刷题数据是实时更新的,后两种方式中所依托的M(U1,U2)以及M(U,K)计算复杂度较高,无法做到实时的推荐,因此最终选择以基于知识的推荐为主要推荐方式,并且每天定时对图谱进行更新并将后两种方法的计算结果加入队列进行推荐。

4 实验结果及分析

利用第2节中所构建的知识图谱和第3节中提到的基于知识图谱的推荐方案,在我校进行了小规模的测试来对模型进行验证,通过分析用户使用情况、考试成绩等数据论证了该模型的有效性。

4.1 用户使用情况

表1统计了我校2016、2017两年《C程序设计》课程的刷题情况,在2017年我们邀请了2位教师所任教的5个班级参与智能模式的测试。从表1数据可以看出,随着系统的不断测试与完善,微信刷题受到了全校师生的广泛认可,在1年时间内,刷题总数从5.6万题提升到12.1万题,总计提升了2.16倍。此外基于知识图谱的推荐方式较之传统的顺序、随机等模式,用户忠诚度更高,使用智能模式比传统模式的人均刷题数提升了41道。

表1 用户总体使用情况统计

进一步分析每位学生的刷题数目,图3所示为刷题数目与占比的关系图,普通模式下刷题数目在30题以下占比约为40%而在智能模式下约为15%,当刷题数超过60题时,智能模式明显高于普通模式,说明智能刷题的用户忠诚度更加高,也从侧面体现出该学生对该模式的认可。

图3 刷题数目分布情况

4.2 期末成绩

表2为我校某位老师《C程序设计》课程的成绩分布数据,总计186名学生使用了刷题系统,其中35名学生使用了智能刷题模式。从表中数据可以看出使用智能刷题的同学均分高了3.97分,此外统计每个分数段学生占比情况可见智能模式占比远高于普通模式,说明使用智能刷题模式对成绩提高有一定的帮助。

进一步分析刷题数目与成绩的关系,如图4所示,可以看出刷题数目与成绩大致呈正比关系,并且除60分以下外,相同分数段智能刷题的刷题数目低于整体的刷题平均数和普通模式平均数,说明该方法复习的效果更加好。

表2 成绩分布情况

图4 刷题数与成绩关系图

4.3 学生答题情况分析

为了帮助每个学生更好地了解自身的情况,系统提供了各类分析报表如图5所示,包括每个章节的刷题数目,掌握情况以及所有未掌握的知识点,另外支持个人错题集的导出,帮助学生提高复习效率。

5 结 语

本文讨论了教学领域中对题目的推荐与传统电商等领域对于资源推荐的差异。阐述了在信息化教学系统中单纯地利用行为数据存在一定的问题,应当融合进题目与知识点的强关联规则。利用知识图谱构建出用户、题目、知识点三者之间的关系,通过计算用户、题目之间的相似度来设定的图权重。融合了传统的基于用户行为和基于知识的推荐方法,搭建了一套微信智能刷题系统。通过对我校近2年刷题数据的分析,发现该方法受到了学生的广泛信赖,人均刷题数提升了41道,此外智能模式较传统模式平均分高了3.97分,80分以上所占比也有了显著提升。通过一系列实验论证了该方法的有效性,可以更好地帮助学生提升复习效率。下一步将结合算法实现知识点的自动标注,使得系统更加智能化。

猜你喜欢
刷题图谱题目
绘一张成长图谱
唐朝“高考”的诗歌题目
关于题目的要求
浅谈高中物理学习的刷题技巧
本期练习类题目参考答案及提示
始不垂翅,终能奋翼
始不垂翅,终能奋翼
让思路自然简单些
补肾强身片UPLC指纹图谱
主动对接你思维的知识图谱