人工智能正渗透到各行各业,解放了人类智能,也促进了人类更高层次的智能。近年来,MOOC这种大规模交互式的知识分享平台更是受到AI领域的密切关注,成为探索“AI+教育”应用和方向的一个良好的实验田。在第一期AI Time PhD知识图谱专题分享的直播间,清华大学计算机系、知识工程实验室的研究生于济凡,为大家介绍了大规模在线教育中知识智能的相关工作和思考!
大规模在线课程MOOC
MOOC (Massive Open Online Courses)这个概念诞生于2008年,即大规模开放在线课程,其宗旨是面向大众人群、强调知识共享。相比传统课堂,MOOC更强调教育的公平性和知识的开放性,课程种类更为丰富,所传输的内容也是尽量满足不同背景学员的需求。自2008年诞生以来,MOOC已累计服务超过1亿人次,这还不包括以直播课、课件流传等形式辐射到的更多受益人群的数量。
由于MOOC本身具有的优质特性,使得很多AI研究尤其是深度学习的方法可以直接地利用并且又再次应用到上面。
从名字看出Mooc的四个特性:massive, open, online, course
为了实现能真正帮到学生的应用,首先应建立一个以知识为核心的在线课程资源体系,即一个知识图谱或者说以知识为核心的资源库或者知识体系。其次,在构建应用时,也应该充分考虑mooc这些性质,并考虑到学生不同的需求和知识状态,来构建合理的、智能的、可交互的应用,达到利用AI来自动化辅助学习的目的。
以知识为核心的在线教育资源组织
下图为coursera上《数据结构》课程的字幕文本片段,其中重要的知识点(比如冒泡排序、堆排序、快速排序等)背后含有大量丰富的信息,是对课程内容的极大精炼。我们认为知识概念的呈现形式就是这样的一个个术语(名词性短语)。
慕课原本是以课程为核心,如果切换到以知识为核心,就可以极大地丰富这些课程的关联,了解这些课程之间的内在逻辑结构,尤其是传授相似、相同或相关概念的课程。
为了将包含学生行为、知识概念、课程相关资源的信息合理归纳到一起,我们构建了一个服务于MOOC相关研究的以知识为核心的大规模开源数据仓库——MOOCCube(发表于ACL2020)。
不同于之前大家发布的慕课开源数据集,MOOCCube的组织体系将在线教育资源更合理、有机地结合到一起,使得这些资源不只服务于一项任务,从而实现利用同样数据的不同组合来完成更多不同的应用。
我们将这些资源分成三条主要数据:学生行为记录、课程视频资料以及知识概念。
学生行为记录
课程视频资料
我们对于慕课已有的视频和课程资源也进行了保存。不仅保留了课程内容的介绍,还有其授课教师、开课机构等可以通过显式关系与其他课程或者资源产生联系的信息。对于视频,保留了所有视频的字幕文本,以及视频的顺序和组织结构,因为这一部分涉及到视频尤其是知识之间蕴含的先后顺序和逻辑关系。最终选取了706门课程和将近4万个视频进行了保存。
知识概念体系
如果工作截止到这里的话,其实跟之前很多关于在线教育的知识图谱都会比较接近,因为都是把课程、内容以及教师等等作为实体的主要部分来进行保存的。
我们的区别主要在于下面这一部分:我们构建的数据体系,核心是知识概念,学生行为和课程的内容最终都是通过与知识建立联系、来完成实体之间的相互关联的。我们不仅从课程内容中获取了课程的概念集合,同时也发掘了这些概念之间的先后修关系来完成体系构建。
我们也利用了大规模学术挖掘平台Aminer的相关资源,构建了每个概念的论文集合,这样也为大家利用这些数据去完成智能应用提供更多的可能性。
我们对这700多门课程的3万多个视频进行挖掘后,首先从文本中抽取了10万多个知识概念,而且这部分概念还在持续利用外部web资源进行补充!接下来给大家详细介绍我们是怎么从课程中挖掘这样的知识体系,并进行补充。
在构建在线教育知识体系时,我们主要考虑两方面。
(1)课程概念实体,即课程视频中传授的知识概念,它的表现形式大概就是一个短文本或者词组等等。
(2)先后修关系,表征了一种知识概念之间的学习依赖关系。比如想学习一个概念B,我们需要先知道概念A;想学习反向传播算法,得先会如何去算梯度下降;学会计算某个国家的GDP,首先我们得掌握必要的数学工具。这就是知识概念的学习依赖关系,我们将已有的课程概念以及我们挖掘出的这种先后修关系进行组合,就能得到一个完整而且相互关联性比较密切的一个知识体系。当然除了先后修关系,概念之间还有很多有意义的关系值得挖掘研究,比如上下位的关系:丹顶鹤是一种鸟。
获取课程概念和挖掘先后修关系
一、如何获取课程概念
课程概念有三大特性,在寻找符合这三条性质的课程概念的过程中,两个比较主要的问题需要我们考虑。
第一,从哪里获取。
第二、如何在挖掘的时候保证拿到的概念本身是高质量的。因为如果引入过多的噪声,则弊大于利。
由于课程概念来自课程字幕,这个问题就成为了一个非常特殊的关键词挖掘问题。
除了要考虑在关键词挖掘这个领域的努力之外,我们还要考虑概念的短语性、信息性以及它与课程的关联性。
具体操作是:首先对课程字幕进行分词,然后使用特定的语义模板进行组合,比如形容词加名词可能也是一个候选概念,然后把它与维基百科语料放到一起。先对维基语料进行实体标注,然后训练在这样一个高质量文本上的word vector。对于实体组合的概念,比如“算法的复杂度”,通过向量的加和得到的候选词的向量表示。然后可以通过算余弦相似度等等方法来进行概念的挖掘。
具体来说,我们设计了一个图的置信度传播算法。假设我们对于一门课程,先手工标出数个一定属于这个课程的概念,甚至是每个视频的标题,然后通过刚刚训练好的语言模型,来构建这些候选词与已知概念之间的关联图,然后通过语义关联来进行置信度的传播,算出哪些概念的置信度分数较高,哪些较低。
算法的设计同时考虑了这个词的短语性以及与已有课程内容的关联度,这种使用置信度挖掘、标注少量种子作为半监督的知识概念抽取方法,取得了比较明显的效果。
为了能够让概念体系更加丰富、概念集和也尽可能完整,我们尝试如何基于已有的课程概念,利用外部的知识进行课程概念的扩展。
在实际操作中,最大的问题来自于语义漂移:其他领域的专业术语、与课程无关术语的发现。我们这里使用了一个朴素但有效的假设:一个课程作为比较复杂的语言类别,其实可以由多个聚类组成,如果能够在概念的发现过程中去维护出这样几个比较有意义的聚类,在实际操作中就能够减少大量噪音。这样一个边扩展边聚类的算法,是我们发表于ACL2019的一篇工作。
另外,对于课程概念这部分的模型建构过程中,我们其实设计了一个用户接口,让人帮助我们继续优化这样的高质量知识体系。所谓取之于民、用之于民,通过用户点击反馈来标注候选词概念。
二、如何挖掘先后修关系
先后修关系,与日常提到比如奥巴马是美国的前总统这样的事实性关系不同。我们很少在一个课程字幕或者书籍这样的知识体系里找到明确的句子,说概念A就是概念B非常重要的先修。比如反向传播算法和梯度下降,往往都是在使用的过程中隐式地引用了。因此我们就想了这样的一个办法,既然先后修关系是不可逆的、有依赖性的偏序关系,那么我们就应该很好地利用这种概念之间的不对称性来挖掘。比如老师讲反向传播算法的时候,会经常讲到梯度下降这样的概念,但是在梯度下降的数学讲解课程中,老师们只会偶尔提及反向传播算法这类具体应用。因此如果能够构建出两个概念在知识资源中的不对称性,就能很好的找出其依赖关系。
具体来说,我们目前使用的模型构建了包含语义特征、上下文特征以及结构特征的三大类,一共七个不同的不对称性特征,用来挖掘先后修关系。
总结一下以知识为核心的在线教育资源组织中使用知识概念的优势、难点以及未来的研究方向:
难点在于,有的知识概念可能是一个实体,有的概念则虚无缥缈,未必存在于实际生活中。因此,一个概念可能出现在通用的百科知识图谱中,也可能是一个全新的术语和词汇。因为这种概念的模糊性,我们更难进行课程概念之间先后修关系的挖掘。比如对于数据结构这门课程,“指针数组”算是数据结构的一个概念,还是更应该算是C++或者是C语言课程的一个概念呢?如果“指针数组”被判别完了,那比它更先一步的“指针”应不应该算是数据结构的概念呢?
实际上,根据不同情境的需求,我们需要更好地调整我们的算法才能达到目标,这一部分也是我们与其他关键词挖掘相比的特殊性。对于以知识为核心的在线教育资源组织的任务来说,一个比较主要且有意义的方向是如何更加充分地利用外部资源包括搜索引擎、百科知识、已有的知识图谱、各种用户的评价以及知识型文本,集合起来更好地与学习行为、教育需求相配合,来优化我们的模型。
三、在线教育智能交互的知识服务
在有了知识之后,很多已有的研究都可以有所不同。比如原先我们只有学生本身的信息,但如果我们已经有了对于知识的相关判断,结合学生的行为以及每个行为所对应的知识,可以做学生的知识追踪(knowledge tracing)即认知诊断的任务。根据学生的行为包括看视频的情况及做题的结果,建模学生的知识掌握情况。由此可以非常智能地对每个学生自己的认知水平进行定制化操作。
与此同时,课程推荐的任务也会发生质变,可以根据学生的学习目标以及知识掌握情况和学习兴趣推荐有趣且有用的课程资源。
另一个有意思的应用是类似bilibili爱奇艺的高能预警,从而对于学生的视频观看进行智能导航。
为了实现个性化智能学习助手、学习路径规划、学习认知情况诊断、教育资源推荐、智能视频导航等任务和目标,我们团队构建了一个智能助教机器人“小木”,即下面这个萌萌的小企鹅。它包含的功能目前已经比较丰富,除了正常的客服机器人能做的网站操作答疑,更可以对于很多知识比如数据结构中的快速排序,进行答疑解惑和内容推荐,甚至在学生产生某种特定学习行为的时候进行主动干预,或鼓励或警醒。小牧有其独特的人设,甚至可以跟他开玩笑或者让他做诗等等。
脑洞时间
除了刚刚提到的这些应用之外,有很多任务供大家去探索!
比如MOOC本身虽是一个独立的学习场景,但是能不能帮助学生找到志趣相投的同学,形成一个社交网络相关的研究呢?
再比如通过知识在课程资源中的分布以及学生学习课程资源后的反馈学习结果,是否能够对于这些知识进行组织挖掘,为老师接下来改善课程或是补充内容提供建议呢?
对于一个正在学习的用户是否在课前提供一些思考题,或者课后出一些重要的练习题,能够帮助他更好地掌握知识概念?
相信大家的智慧会碰撞出更为绚丽的火花!
呼吁大家为这种公平开放的知识共享平台尽自己的一份努力,共同促进知识的高效传播!
答疑互动
最后和大家分享直播后微信群里大家与嘉宾的部分互动。
知识存在于课程之中,想让学生获取一个递进的学习路线,如何判断一个知识点的前置知识点是什么?
判断知识点的前置知识点,请参考“Prerequisite Relation Discovery”这个任务,专门做知识点之间的依赖,我们团队有一篇Prerequisite Relation Learning for Concepts in MOOCs. ACL17,可以follow和更新一下。
如何评估自己推荐的知识对用户来说,是有趣的或者有用的?
推荐的知识是否有用,最好的评测方法是通过对用户的最终表现进行追踪得到,但如果是实际使用,因为数据集是确定的,一个可行的思路是用Knowledge Tracing的模型来做,比如预测学生学了这个概念,对于某些重要的题目是否做对了。
对于中学比如数学科的知识图谱构建,目前有已经做好的可以参考么?
推荐我们实验室做的一个术语Taxonomy:http://moocdata.cn/mooc_knowledge_graph/MOOC%20Knowledge%20Graph,里面数学领域有7721个概念。以及http://www.edukg.cn/是一个非常大的基础教育知识图谱,主要面向中小学,是清华的许斌老师团队做的。
(直播回放:https://www.bilibili.com/video/BV14C4y1a7V7)
整理:鸽鸽
审稿:于济凡
领取专属 10元无门槛券
私享最新 技术干货