一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

获取点击流的方法和装置、聚类方法、学习平台和介质

2022-07-10 13:39:12 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,具体地,涉及一种获取答题点击流的方法和装置、对答题行为进行聚类的方法、交互式学习平台和计算机可读存储介质。


背景技术:

2.在线学习平台作为新型的学习途径已得到广泛应用。在线学习平台主要提供两种类型的课程:采用“阅读学习”和/或“观看学习”的方法并提供测验以评估绩效的课程;以及采用“边做边学”的方法并使用完成的问题进行绩效评估的课程。
3.目前,只能获取基于平台的点击流(click stream)数据。但是在某些情况下,仅依靠基于平台的点击流数据并不能准确反映出不同学生之间的差异。


技术实现要素:

4.根据本公开的一个方面,提供一种获取答题点击流的方法,包括:响应于用户在答题过程中的每一个操作,产生答题点击流事件;分别对各个答题点击流事件进行预处理,以生成预处理点击流数据,其中,各个预处理点击流数据构成预处理点击流数据序列;以及将所述预处理点击流数据序列编码为答题点击流向量,其中,所述答题点击流向量表示用户所答问题的答题点击流。
5.根据本公开的另一方面,提供一种对答题行为进行聚类的方法,包括:针对多个用户执行根据本公开的获取答题点击流的方法,以得到分别对应于所述多个用户的多个答题点击流向量;以及对所述多个答题点击流向量进行聚类,以根据所述多个用户的答题行为对所述多个用户进行分类。
6.根据本公开的另一方面,提供一种交互式学习平台,包括:事件产生模块,其配置为响应于用户在答题过程中的每一个操作,产生答题点击流事件;预处理模块,其配置分别对各个答题点击流事件进行预处理,以生成预处理点击流数据,其中,各个预处理点击流数据构成预处理点击流数据序列;以及向量化模块,其配置为将所述预处理点击流数据序列编码为答题点击流向量,其中,所述答题点击流向量表示用户所答问题的答题点击流。
7.根据本公开的另一方面,提供一种获取答题点击流的装置,包括:一个或多个处理器;以及存储器,其上存储有一个或多个计算机程序,其中,当所述一个或多个计算机程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据本公开的获取答题点击流的方法。
8.根据本公开的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器实现根据本公开的获取答题点击流的方法。
9.根据本公开的技术方案,通过收集答题过程中的答题点击流数据,可以更好地了解学生的能力和表现,甚至是学生的学习过程,这是因为,答题过程反映了学生如何解决问题以及学生如何思考。相比于基于平台的点击流,通过获得粒度更小的答题点击流,可以对
学生的行为或逻辑思维进行建模、聚类,以实现针对学生的自适应学习、个性化推荐以及成绩预测等。
附图说明
10.将通过参照附图详细地描述本公开的示例性实施例,本公开的以上和其它特征将变得显而易见,在附图中:
11.图1示出了根据本公开实施例的获取答题点击流的方法的流程图;
12.图2示出了应用根据本公开实施例的获取答题点击流的方法的示例网络环境;
13.图3至图6示出了根据本公开实施例的问题示例;
14.图7示出了根据本公开实施例的自编码器模型的体系结构;
15.图8示出了根据本公开实施例的对答题行为进行聚类的方法的流程图;
16.图9示出了根据本公开实施例的答题点击流可视化的示例;以及
17.图10示出了根据本公开实施例的交互式学习平台的示意性框图。
具体实施方式
18.为使本领域的技术人员更好地理解本公开的技术方案,下面将结合附图对本公开提供的方法和装置、交互式学习平台和计算机可读存储介质进行详细描述。
19.在下文中将参考附图更充分地描述示例实施例,但是示例实施例可以以不同形式来具体实现,并且不应当被解释为限于本文阐述的实施例。提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
20.本文所用的术语仅是为了描述特定示例实施例,并且不旨在限定所要求保护的主题。如本文所使用的那样,除非上下文清楚地指明不是这样,否则单数形式“一”、“一个”和“该”也旨在包括复数形式。还应该理解的是,当术语“包括”和/或“包括
……
的”用于本说明书中时,指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。
21.将要理解的是,虽然本文使用了术语“第一”和“第二”等来描述各个元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不受这些术语限定。这些术语仅用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分区分开。因此,下面所讨论的第一元件、第一组件、第一区域、第一层或第一部分可称作第二元件、第二组件、第二区域、第二层或第二部分,而没有背离本文所公开的指教。
22.还应理解,除非上下文中另外清楚地指出,否则每个示例性实施例内的特征或方面的描述通常应被认为可用于其它示例性实施例中的其它相似特征或方面。
23.除非另外进行限定,否则本文所使用的所有术语(包括技术术语和科学术语)具有与本文公开的主题所属技术领域的普通技术人员的通常理解相同的含义。还将理解的是,诸如在常用字典中定义的那些术语应当解释为具有与其在相关技术的语境中的含义一致的含义,并且不应理想化或过于形式化地进行解释,除非在本文中明确地进行了这样的定义。
24.在相关技术中,基于在线学习平台的点击流数据,可以对通过在线学习平台进行学习的学生在后续测验中的表现进行预测。基于平台的点击流可以包括,例如,视频导航、
页面导航和提交问题等。视频导航的动作可以包括播放、暂停、更改速率、向前搜索和向后搜索等,页面导航动的作可以包括后退、前进和跳转等,问题提交可以包括答案和分数。可以使用基于平台的点击流数据来预测学生在测验和/或期末考试中的表现。但是在某些情况下,仅依靠基于平台的点击流数据并不能准确反映出不同学生之间的差异。
25.例如,两个学生都正确地回答了同一个问题,但是在分析他们答题步骤时,可能会发现一个学生采取了很少的步骤来得到正确答案;而另一个学生采取了更多的步骤,或者是通过猜测得到了正确答案。分析这些答题的步骤会揭示出这两个学生之间非常关键的差异。又例如,两个学生回答相同的问题时都答错了,但是对他们的答题步骤进行分析会发现,一个学生的起始步骤很好,但随后的步骤却有所下滑,从而未能得出正确答案;而另一名学生只是在通过随机选择进行作答。分析这些答题的步骤也会揭示出这两个学生之间非常关键的差异。
26.由于学生在阅读/观看教学材料时获得知识的方式和阅读/观看的速度不能反映他们真实的知识水平,而他们提交的答案也不能真实体现他们的实际能力。因此,使用基于平台的点击流数据,只能间接地反映学生的表现。
27.针对相关技术中的上述问题,提出本公开的技术方案,除了基于平台的点击流数据之外,还可以收集答题过程中的答题点击流数据,以更好地了解学生的能力和表现,甚至是学生的学习过程,这是因为,答题过程反映了学生如何解决问题以及学生如何思考。相比于基于平台的点击流,通过获得粒度更小的答题点击流,可以对学生的行为或逻辑思维进行建模、聚类,以实现针对学生的自适应学习、个性化推荐以及成绩预测等。
28.在本公开的上下文中,“答题点击流”表示用户通过在线学习平台完成一个问题的回答的过程中所形成的点击流。在本公开的方案中,答题点击流可以表现为多种形式,包括(但不限于)答题点击流数据构成的序列,以及答题点击流向量。在没有特别说明的情况下,以上术语均可以用于表示本公开所述的答题点击流。
29.图1示出了根据本公开实施例的获取答题点击流的方法的流程图,图2示出了应用根据本公开实施例的获取答题点击流的方法的示例网络环境。下面将结合图1和图2对根据本公开实施例的获取答题点击流的方法进行详细说明。
30.如图1所示,根据本公开实施例的获取答题点击流的方法可以包括步骤s10至s30。
31.在步骤s10,响应于用户在答题过程中的每一个操作,产生答题点击流事件。
32.在步骤s20,分别对各个答题点击流事件进行预处理,以生成预处理点击流数据,各个预处理点击流数据构成预处理点击流数据序列。
33.在步骤s30,将预处理点击流数据序列编码为答题点击流向量,答题点击流向量表示用户所答问题的答题点击流。
34.根据本公开的实施例,在用户答题过程中的每一个操作(例如,单击鼠标、拖放对象和键盘输入)都可以产生答题点击流事件,从而相比于基于平台的点击流,可以获得粒度更小的答题点击流。
35.对于在问题中的可操作物件上具有回调的在线学习平台,当用户与可操作物件进行交互时可以生成产生答题点击流事件;对于没有回调的在线学习平台,可以通过加载javascript脚本(如图2所示的javascript 120)对用户的操作进行侦听,并根据用户的操作生成答题点击流事件。
36.图2所示的是一个客户端-服务器系统。应当认识到,图2仅示出了可以应用根据本公开实施例的获取答题点击流的方法的示例性网络环境,实际的网络环境可以具有各种配置,并且本公开不旨在限于图2所示的示例性网络环境。
37.如图2所示,该系统可以包括多个学生(即,学生110i、110ii、
……
、110m)的客户端设备和服务器130。多个学生通过在线学习平台100完成了多个问题(即,问题111a、111b、
……
、111x)的回答。嵌入在网络浏览器中的javascript 120可以监听各个学生的在回答每个问题的过程中的操作,以捕获学生的动作并生成相应的答题点击流事件(即,步骤s10),随后可以通过网络将答题点击流事件发送到服务器130。例如,javascript 120可以将答题点击流事件封装为json(javascript object notation)格式的数据发送至服务器130。服务器130的数据库132可以存储学生的数据(例如,学生个人信息)、答题点击流事件,预处理点击流数据和编码了的答题点击流向量。
38.根据本公开的实施例,每个答题点击流事件可以包括事件类型、答案状态、答案状态的得分和时间戳。表1示出了根据本公开实施例的答题点击流事件中的各个属性。
39.表1
[0040][0041]
根据本公开的实施例,答题点击流事件的事件类型可以包括进入问题、点击、拖动、选择、输入、导航、提交问题和离开问题中的一者。答题点击流事件的答案状态的得分可以,例如,在0至100的范围内。答题点击流事件的时间戳可以包括,例如,unix时间戳。然而本公开不限于此,而是可以涵盖与表1所示示例不同的实施方式。例如,事件类型可以包括更多或更少的类型,或者包括不同的类型,答案状态的得分范围可以不限于0至100,并且时间戳可以包括其他类型的时间戳。在不背离本公开的构思的情况下,本公开旨在涵盖所有上述变化的实施方式。
[0042]
在进一步阐明本公开的方案之前,对根据本公开各实施例的答案状态做进一步说明,以便更加清晰的理解本公开的构思。
[0043]
【答案状态】
[0044]
在本公开的上下文中,“答案状态”表示对应于答题点击流事件的临时答案,即,在产生用户操作时的状态下所呈现出的答案。这样,在每次产生用户操作时,可以记录与用户操作对应的答案状态,从而可以记录从用户开始进入问题一直到用户提交并离开问题的整个过程中的答案的变化过程。答案的变化过程可以体现用户的逻辑思维过程,通过对答案的变化过程进行分析,可以对用户的行为或逻辑思维进行建模、聚类。
[0045]
对于通过在线学习平台提供的问题而言,问题的种类很多,与不同种类相对应的答案格式也会不同,而相同类型的问题可以具有相似的答案格式。使用相同的标准来设计答案格式可以消除答案处理过程中的人工参与。
[0046]
答案内容
[0047]
答案内容应当包括用于重建学生的答案以及用于计算得分所需的所有必要信息。由于在用户的每个操作后都会获取答案状态(即,临时答案),因此那些能够在答题点击流(例如,由答题点击流数据构成的序列)中获取的信息可以排除在答案状态之外。例如,题目要求学生在有限的步骤内完成问题,用于记录步数的计数器的信息可以被排除在答案状态之外,这是因为序列本身就已经包含了这样的信息。在答案状态中包含不必要的信息会影响到后续的向量化操作。
[0048]
数据结构
[0049]
用于表示答案状态的数据结构会影响后续的预处理操作和向量化操作。不同问题类型的数据结构可以采用相同的设计标准来存储答案,以便在预处理操作中无需人工干预。
[0050]
可以根据答案中的值的顺序是否重要将问题分成两列。图3和图4分别示出了这两类问题的示例。下面结合图3和图4所示的示例性问题对答案状态的数据结构作进一步说明。
[0051]
如图3所示,题目要求将一系列小图像301至309有序地排列到右侧的方格阵列310中,以构成一个完整的五边形图案。因此,小图像在方格阵列310中的位置是重要的,也就是说,各个小图像的排列顺序对于答案正确与否是重要的。图3所示问题的正确答案(按照从左至右,从上至下的顺序)为:302、306、307、303、309、305、308、304和301。对于这类问题,可以采用阵列(array)的数据结构来存储答案。图3所示问题的正确答案可以表示为["302","306","307","303","309","305","308","304","301"],阵列中的每一项元素为表示一个对象标识(id)的字符串。
[0052]
如图4所示,题目要求根据给定的陈述来判断四项陈述401至404的真伪,并将陈述401至404拖动至表示“真”组410和“假”组411的相应位置处。各项陈述401至404之间的先后顺序并不重要。例如,陈述401和404均为真,在将陈述401和404拖动至“真”组410时,将陈述401放置在陈述404之上,或者将陈述401放置在陈述404之下不影响答案的正确性。对于这类问题,可以采用集合(set)或python字典的数据结构来储存答案。图4所示问题的正确答案可以表示为:
[0053]
{"401":"true","402":"not true","403":"not true","404":"true"}
[0054]
其中,字符串"401"至"404"表示可以被拖动的四个陈述对象401至404的id,字符串"true"和"not true"分别表示“真”组410和“假”组411的id,即,利用对象id作为字典的标签,利用组id作为字典的值来表示答案状态。对于某些分组问题,同一个对象可以属于多个不同的组(即,有替换项),可以利用组id作为字典标签,利用二进制指示值作为字典的值。例如,三个对象a、b和c分别属于组1和组2,对象a和c属于组1,对象b和c属于组2,在此情况下,答案状态可以表示为:
[0055]
{"组1":{"a":1,"b":0,"c":1},"组2":{"a":0,"b":1,"c":1}}
[0056]
其中,字符串"组1"和"组2"分别表示组1和组2的id,{"a":1,"b":0,"c":1}以二进
制指示值表示出对象a和c属于组1,{"a":0,"b":1,"c":1}以二进制指示值表示出对象b和c属于组2。
[0057]
采用如上所述的阵列和python字典来设计答案状态的数据结构可以使得后续操作(例如,向量化操作)更好地表示答题点击流,但是本公开不限于此,能够用于表示答案内容并且有助于后续预处理操作和向量化操作的各种数据结构都可以应用于答案状态。
[0058]
占位符
[0059]
由于在用户答题过程中的每一次操作都会记录答案状态,因此在很多操作过后,答案状态的值是不完整的。为了提高后续的预处理效率,相同问题中的每个操作所对应的答案状态应具有相同的格式,当答案不完整时,可以使用占位符来代替不完整的内容。例如图3所示的问题,在事件类型为“进入问题”的答题点击流事件中,答案状态可以表示为["","","","","","","","",""],即,使用了9个空字符串来替代答案中相应的位置。随着用户的答题操作,可以将表示对象id的字符串填充至相应的位置。又例如图4所示的问题,在事件类型为“进入问题”的答题点击流事件中,答案状态可以表示为{"401":"","402":"","403":"","404":""}。随着用户的答题操作,可以将表示“真”组id和“假”组id的字符串"true"和"not true"填充至相应的位置。
[0060]
对于现有的在线学习平台而言,每个操作步骤后的答案状态的内容有可能是不完整的。假定分数为满分的答案状态包括了答案状态的所有元素。通过将每个操作步骤后的答案状态与满分的答案状态进行比较,在大多数情况下,可以用占位符来替代答案状态中不完整的内容。
[0061]
值类型
[0062]
答案状态中元素值的类型会影响编码方法的选择。答案状态的分类值可以表示为字符串,连续值可以表示为整数,而浮点连续值可以表示为浮点数字。在图3和图4所示的问题中,采用了字符串作为答案状态中元素值的类型。对于计算类题目,例如,1 3
×5÷
50=?,其答案是浮点连续值,可以采用浮点数字作为答案状态中元素值的类型。
[0063]
可操作物件的标签
[0064]
在某些情况下下,对所有的对象均使用不同的id进行标记是不合适的。具有相同含义的对象可以具有相同的对象id。图5示出了具有这一特征的示例性问题。如图5所示,在左边的6张卡片对象(即,可操作物件)中,对象601至603具有相同的含义,即,表示数字4,对象605和606具有相同的含义,即,表示数字8。因此,6张卡片对象表示了三个数字4、6和8,因此,可以只设置三个标签,即,三个对象id,使得对象601至603具有相同的对象id,并且对象605和606具有相同的对象id。
[0065]
在某些情况下,可操作物件的标签不适于直接用于答案状态。图6示出了具有这一特征的示例性问题。在图6所示的问题中,要求用户拖动点对象(即,可操作物件)701使得灰色区域711的面积占总面积的四分之三。由于点对象701可以在整个平面内运动,因此满足条件的点对象701的位置不是唯一的。因此,点对象701的标签(例如,坐标)不适于直接用于答案状态。可以采用交点对象721的坐标来表示答案状态。
[0066]
以上对根据本公开各实施例的答案状态的各个方面进行了详细描述。下面简要说明根据本公开各实施例的答案状态的得分。
[0067]
评分函数存在于大多数在线学习平台上,用于对学生提交的答案进行评分。根据
本公开的实施例,每个题目有对应的评分函数。评分函数接收具有,例如,json对象格式的答案状态(即,临时答案),并且可以返回,例如,0至100之间的得分。然而本公开不限于此,评分函数可以接收具有其他格式的答案状态,并且可以返回的得分范围可以不限于0至100。
[0068]
回到图2,数据预处理器133可以对答题点击流事件进行预处理,以生成预处理点击流数据(即,步骤s20)。此外,数据预处理器133可以将得到的预处理点击流数据保存至数据库132或其他存储介质。对应于整个答题过程中的各个答题点击流事件的各个预处理点击流数据构成了对应于整个答题过程的预处理点击流数据序列,该序列可以用于表示整个答题过程的答题点击流。
[0069]
根据本公开的实施例,对答题点击流事件的预处理可以包括对于事件类型的预处理,对于答案状态的预处理,对于答案状态的得分的预处理,以及对于时间戳的预处理。
[0070]
事件类型的预处理
[0071]
事件类型是分类值,因此可以采用独热编码(one-hot encoding)的方式对事件类型进行编码(即,预处理)。
[0072]
根据本公开的实施例,对事件类型的预处理可以包括:根据事件类型的数量进行独热编码处理。例如,事件类型可以包括进入问题、点击、拖动、选择、输入、导航、提交问题和离开问题8种类型,可以将点击的事件类型编码为01000000,并且可以将输入的事件类型编码为00001000。然而本公开不限于此,根据需要,可以采用其他的编码方式对事件类型进行编码,例如,可以采用二进制编码的方式对事件类型进行编码,例如,可以采用三位二进制数来表示事件类型的8种类型。
[0073]
答案状态的预处理
[0074]
不同问题的答案状态具有不同的格式。如果使用了阵列、集合和python字典去表示答案状态,则只要提取答案状态的值便可以形成一维向量。
[0075]
根据本公开的实施例,对答案状态的预处理可以包括:提取答案状态的值,以形成一维向量;以及根据一维向量中每个元素的类型进行独热编码处理或特征缩放到范围0至1的处理。例如,图3所示的问题的正确答案为["302","306","307","303","309","305","308","304","301"],其本身就是一维向量,表示为("302","306","307","303","309","305","308","304","301")。这个一维向量中的每个元素都是分类值(即,9个对象id中的一个),因此可以对这个一维向量进行独热编码,独热编码的结果可以表示为:
[0076]
(010000000
[0077]
000001000
[0078]
000000100
[0079]
001000000
[0080]
000000001
[0081]
000010000
[0082]
000000010
[0083]
000100000
[0084]
100000000)
[0085]
又例如图4所示的问题的正确答案为{"401":"true","402":"not true","403":"
not true","404":"true"},其字典值是一维向量("true","not true","not true","true")。这个一维向量中的每个元素都是分类值(即,"true"和"not true"中的一个),因此可以对这个一维向量进行独热编码,独热编码的结果可以表示为:
[0086]
(10
[0087]
01
[0088]
01
[0089]
10)
[0090]
答案状态的得分的预处理
[0091]
取决于在线学习系统的评分函数,答案状态的得分大致可以分为离散分值和连续分值两类。离散分值是指,每个问题的得分只有很少几个(例如,小于10个)独特的分值,例如,每个问题的得分可以是0或100(即,两个独特的分值)。连续分值是指,每个问题的得分具有很多独特的分值,因而将其视为连续的分值,例如,每个问题的得分可以是从0至100的任意整数。
[0092]
根据本公开的实施例,对答案状态的得分的预处理可以包括:对于离散分值,根据离散分值的数量进行独热编码处理;以及对于连续分值,进行特征缩放到范围0至1的处理。例如,每个问题的得分可以是0、50、100三个分值之一,如果评分函数对于答案状态给出的得分是50,则可以对其进行独热编码,独热编码的结果可以表示为010。又例如,每个问题的得分可以是从0至100的任意整数,如果评分函数对于答案状态给出的得分是50,则可以对其进行特征缩放到范围0至1的处理,处理的结果是0.5。
[0093]
时间戳的预处理
[0094]
时间戳用于表示用户进行操作以生成答题点击流事件的时间。通过测量每个答题点击流事件相对于前一答题点击流事件的持续时间,可以将原始时间戳转换为时间间隔。
[0095]
根据本公开的实施例,对时间戳的预处理可以包括:通过比较当前答题点击流事件的时间戳与前一答题点击流事件的时间戳,得到对应于当前答题点击流事件的时间间隔。表2示出了根据本公开实施例的各个事件类型的时间戳示例。
[0096]
表2
[0097]
事件类型时间戳时间间隔(秒)log2表示进入问题160810894400点击1608108954103.3219点击160810895842提交问题160810896021离开问题160810896552.3219
[0098]
在表2的示例中,为了降低数值范围,对时间间隔以秒为单位以log2标度进行表示,并且对于时间间隔等于0秒的答题点击流事件,其值替换为值0。然而本公开不限于此,可以采用任何其他方式来降低时间间隔的数值范围。
[0099]
动作位置
[0100]
根据本公开的实施例,对答题点击流事件进行预处理的步骤(即,步骤s20)还可以包括:通过比较当前答题点击流事件的答案状态与前一答题点击流事件的答案状态生成动作位置。
[0101]
通过记录鼠标的移动可以更好地理解学生回答问题的途径。然而,装置的差异以及个人的习惯都会对鼠标的位置和移动产生数据噪音。通过引入动作位置(action location,aloc)可以有效地去除这种数据噪音。可以根据答案状态的变化来生成动作位置,也就是说,答案状态中发生了变化的部分,就是用户执行操作的动作位置。
[0102]
表3示出了动作位置的示例。
[0103]
表3
[0104]
时间戳答案状态动作位置1608108944(”,”,”,”,”,”,”,”,”)(0,0,0,0',0,0,0,0,0)1608108954('a2',”,”,”,”,”,”,”,”)(1,0,0,0',0,0,0,0,0)1608108958('a2','a1',”,”,”,”,”,”,”)(0,1,0,0',0,0,0,0,0)1608108960('a2','a1',”,”,”,”,”,”,'a4')(0,0,0,0',0,0,0,0,1)1608108965('a1','a2',”,”,”,”,”,”,'a4')(1,1,0,0',0,0,0,0,0)
[0105]
如表3所示,动作位置可以采用多热编码(multi-hot encoding),这是因为单个步骤中的答案状态可能会在多个位置上发生变化,例如,用户交换了两个可操作物件的位置。
[0106]
回到图2,可以采用点击流编码器134将预处理点击流数据序列编码为答题点击流向量(即,步骤s30)。点击流编码器134可以使用自编码器模型将预处理点击流数据序列c
t
编码为答题点击流向量c
t
(参见图7)。
[0107]
如图2所示,对于每个问题111设置对应的点击流编码器134。由于每个问题的内容、解决方案和交互式对象可能彼此都不相同,因此需要对每个问题的答题点击流分别向量化,以允许每个点击流编码器捕获到对应问题的独有功能。各个问题的点击流编码器使用了递归神经网络(recurrent neural network,rnn),将长度不一的点击流数据序列转换/编码为固定大小的一维向量。所使用的rnn可以是普通rnn、闸门递回单位(gated recurrent unit,gru)或长短期记忆(long short term memory,lstm)。
[0108]
图7示出了根据本公开实施例的自编码器模型的体系结构。
[0109]
如图7所示,自编码器模型包括编码器questionrnn和解码器decoderrnn。编码器questionrnn将序列c
t
编码为向量c
t
,解码器decoderrnn将向量c
t
解码为序列c'
t
。向量c
t
的大小是通过实验调整的超参数。
[0110]
该模型使用梯度下降(gradient descent)算法来优化模型参数,例如,自适应梯度(adagrad)算法和自适应矩估计(adam)算法,以最大程度地减少序列c
t
和c'
t
之间的差异(即,重构损失)。重构损失可以用不同的损失函数组合而成。表4显示了与不同特征相对应的损失函数。
[0111]
表4
[0112]
[0113]
在计算答案状态的得分的损失时,如果使用了独热编码,则将加权因子w应用于交叉熵损失。这是因为分数的分布可能不平衡,很少的答题点击流中的步骤得分数可以为满分(例如,100),而许多步骤的得分都低于满分。每个问题的权重是预先计算的,与分数的频率成反比。以下数学式(1)可以用于计算问题中不同分数的损失权重:
[0114][0115]
其中,s是问题中的唯一分数,ws是分数s∈s的加权因子,fi是分数i∈s的频率。
[0116]
根据本公开的获取答题点击流的方法,可以收集答题过程中的答题点击流数据,以更好地了解学生的能力和表现,甚至是学生的学习过程。相比于基于平台的点击流,通过获得粒度更小的答题点击流。可以在答题点击流数据的基础上,对学生的行为或逻辑思维进行建模、聚类,以实现针对学生的自适应学习、个性化推荐以及成绩预测等。
[0117]
为了更好地应用根据本公开各实施例的获取答题点击流的方法,在进行问题设计时需要考虑以下情况。
[0118]
每个问题的内容应涉及“单项操作”或“多项相关操作”。“单项操作”类问题的一个示例是单个空格的填空题,用户的单个操作就是填一个空格。如果在该问题的基础上添加了一个不依赖于已有操作的操作,则该问题将变为“非单项操作”问题。例如,问题是提供了一个直角三角形每个边的长度,要求用户在其答案中提供三角形的周长和面积。由于周长和面积的计算不相互依赖,因此用户可以按任意顺序执行这两个计算,这会给捕获的答题点击流带来噪音。另一方面,“多项相关操作”问题的例子是数字排序问题,要求用户将一些数字卡拖放到排序的序列中,因此用户的每个动作都会影响下一个动作的选择。就问题的正确答案而言,每个问题可以具有单个正确答案或多个正确答案。
[0119]
图8示出了根据本公开实施例的对答题行为进行聚类的方法的流程图。
[0120]
如图8所示,根据本公开实施例的对答题行为进行聚类的方法可以包括步骤s40至s50。
[0121]
在步骤s40,针对多个用户执行根据本公开各实施例的获取答题点击流的方法,以得到分别对应于多个用户的多个答题点击流向量。
[0122]
在步骤s50,对多个答题点击流向量进行聚类,以根据多个用户的答题行为对多个用户进行分类。
[0123]
通过将聚类技术应用于的一维答题点击流向量c
t
,可以根据学生在答题操作中的行为/逻辑思维/表现将其分为几类。
[0124]
根据本公开的实施例的对答题行为进行聚类的方法还可以包括将多个答题点击流向量可视化。
[0125]
回到图2,可以通过可视化算法(例如,t分布随机邻域嵌入(t stochastic neighbor embedding,t-sne)算法)将答题点击流向量可视化为二维平面135。
[0126]
对于每个问题,可以使用t-sne算法来可视化所涉及学生的输出。使用t-sne算法可以将回答了问题的学生可视化在二维平面。图9示出了根据本公开实施例的答题点击流可视化的示例。
[0127]
如图9所示,每个点代表一个学生,学生的id可以显示在点旁边。点越大表示学生
用于回答问题的步骤就越多。可以用颜色对点进行编码以指示答案提交时的最终分数或其他信息。
[0128]
回到图2,数据预处理器133可以向点击流编码器134、二维平面135以及其他服务140提供数据。应当认识到,答题点击流数据的使用不限于点击流编码器134和二维平面135,而是还可以应用于其他服务140,其他服务140包括(但不限于)学生建模、知识跟踪、成绩预测等。
[0129]
图10示出了根据本公开实施例的交互式学习平台的示意性框图。
[0130]
如图10所示,根据本公开实施例的交互式学习平台可以包括事件产生模块1010、预处理模1020和向量化模块1030。
[0131]
事件产生模块1010可以配置为响应于用户在答题过程中的每一个操作,产生答题点击流事件。
[0132]
预处理模块1020可以配置分别对各个答题点击流事件进行预处理,以生成预处理点击流数据,各个预处理点击流数据构成预处理点击流数据序列。
[0133]
向量化模块1030可以配置为将预处理点击流数据序列编码为答题点击流向量,答题点击流向量表示用户所答问题的答题点击流。
[0134]
根据本公开的实施例,事件产生模块1010可以配置为:响应于用户与可操作物件的交互产生答题点击流事件;和/或通过javascript脚本监听用户的操作产生答题点击流事件。
[0135]
根据本公开的实施例,答题点击流事件可以包括事件类型、答案状态、答案状态的得分和时间戳,答案状态为对应于答题点击流事件的临时答案。
[0136]
根据本公开的实施例,事件类型可以包括下列各项之一:进入问题、点击、拖动、选择、输入、导航、提交问题和离开问题。
[0137]
根据本公开的实施例,预处理模块1020可以配置为:对事件类型进行预处理;对答案状态进行预处理;对答案状态的得分进行预处理;以及对时间戳进行预处理。
[0138]
根据本公开的实施例,预处理模块1020对事件类型的预处理可以包括:根据事件类型的数量进行独热编码处理。
[0139]
根据本公开的实施例,预处理模块1020对答案状态的预处理可以包括:提取答案状态的值,以形成一维向量;以及根据一维向量中每个元素的类型进行独热编码处理或特征缩放到范围0至1的处理。
[0140]
根据本公开的实施例,预处理模块1020对答案状态的得分的预处理可以包括:对于离散分值,根据离散分值的数量进行独热编码处理;以及对于连续分值,进行特征缩放到范围0至1的处理。
[0141]
根据本公开的实施例,预处理模块1020对时间戳的预处理可以包括:通过比较当前答题点击流事件的时间戳与前一答题点击流事件的时间戳,得到对应于当前答题点击流事件的时间间隔。
[0142]
根据本公开的实施例,预处理模块1020还可以配置为:通过比较当前答题点击流事件的答案状态与前一答题点击流事件的答案状态生成动作位置。
[0143]
根据本公开的实施例,向量化模块1030可以配置为:使用rnn将预处理点击流数据序列编码为答题点击流向量。
[0144]
参照图2和图10,事件产生模块1010可以实现为javascript120,预处理模块1020可以实现为数据预处理器133,向量化模块1030可以实现为点击流编码器134,因此参照图1和图2描述的各项技术细节都可应用于图10所示的实施例,为了减少重复,这里不再赘述。然而本公开不限于此,图10所示的各个模块可以实现为不同于图2所示示例中的相应部件,而是只要能够实现各个模块的功能即可。此外,根据本公开实施例的交互式学习平台还可以包括图10未示出的其他功能模块,例如,图2所示的数据库132,本公开旨在涵盖所有上述变化的实施方式。
[0145]
需要明确的是,本公开并不局限于上文实施例中所描述并在图中示出的特定配置和处理。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0146]
本公开实施例还提供的一种获取答题点击流的装置,包括:一个或多个处理器;以及存储器,其上存储有一个或多个计算机程序,其中,当所述一个或多个计算机程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据本公开各实施例的获取答题点击流的方法。
[0147]
处理器为具有数据处理能力的器件,其包括(但不限于)中央处理器(cpu)等;存储器为具有数据存储能力的器件,其包括(但不限于)随机存取存储器(ram,更具体如sdram、ddr等)、只读存储器(rom)、带电可擦可编程只读存储器(eeprom)、闪存(flash)。
[0148]
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器实现根据本公开各实施例的获取答题点击流的方法。
[0149]
根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在计算机可读存储介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以从网络上被下载和安装,和/或从可拆卸存储介质被安装。
[0150]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0151]
尽管已经参照本发明构思的示例性实施例具体示出和描述了本发明构思,但是将理解,在不脱离如所附权利要求限定的本发明构思的精神和范围的情况下,可以在本文中做出形式和细节上的各种改变。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献