基于编程行为的学习者人格特质识别及应用探索

2021-10-18 08:55周小涵吴芝明唐宁九
关键词:人格特质鼠标键盘

林 涛, 周小涵, 吴芝明, 洪 玫, 王 建, 唐宁九

(四川大学软件学院, 成都 610065)

1 引 言

为学习者提供个性化教学支持是现代教育的目标之一.然而,如何精准地识别学习者个性是个性化教学实现的前提和难点.人格特质能科学地揭示人与人之间稳定的个性差异,并且与个体其它学习心理特征(如学习动机、自我效能、学习期望等)保持了相对稳定的预测关系,因此,人格特质已经普遍被采用来反映学习者的个性.

就软件工程专业学生而言,编程能力是一种核心能力,准确地识别编程学习者的人格特质是为其提供个性化学习支持的前提.现有的人格特质自动识别研究主要基于机器学习或深度学习方法,通过文本[1-2]、语音和图像[3-4]、社交网络[5-6]等数据源来建立人格特质识别模型.但由于这些方法需要额外的设备、平台或任务来收集数据,难以在日常的编程实践学习环境中应用.

编程本质上是一种实践活动,编程过程中会产生大量的反映学习行为的数据,这些数据具有能够被实时、隐式采集,不依赖其他设备平台,采集成本低等特点.人格心理学研究认为,人格特质作为人格的基础成分,决定了个体适应的独特性且能在一定程度上指挥个体行为[7].因此我们认为,编程行为不仅受到学习者水平、编程题目、编程难度等因素影响,还在一定程度上受到学习者人格特质的影响.然而,如何从“高噪声”的编程行为数据中,抽取每一种特质独有的行为模式,继而建立人格识别模型仍是一个挑战.

本文面向编程实践学习环境,综合运用支持向量机(Support Vector Machine, SVM)[8]、遗传算法(Genetic Algorithm, GA)和网格搜索(Grid Search, GS),提出一种基于编程行为的人格特质识别方法.即,收集学习者在一段时间内完成的多个编程任务的行为数据,将学习者每一个编程任务中抽取的行为特征和该学习者人格特质标签(大五人格量表获得)作为一个样本,建立人格特质分类模型,并基于学习者多个编程任务的分类结果,采用投票策略综合判断其人格特质.

本研究主要内容包括:设计实验采集编程学习者的编程行为和人格量表数据;提出一种基于编程行为的人格特质识别方法并验证分析其效果;探索基于编程行为的人格特质方法在个性化编程教育、学习中的可能应用及未来研究方向.

2 实 验

本实验旨在收集学习者在编程学习过程中的行为及其人格特质数据.

2.1 被试

某高校大二计算机专业共计230位学生作为被试参加了实验,年龄分布在20~25岁之间.

2.2 实验任务

2.2.1 人格量表 本文采用大五人格特质模型描述被试的人格,大五人格特质模型作为目前应用最广泛的人格特质模型,包括“开放性”、“尽责性”、“外倾性”、“宜人性”、“神经质”五种特质[9].考虑到应用范围,时间成本、稳定性等因素,选择BFI-44大五人格问卷收集被试的大五人格特质得分[10].

2.2.2 编程任务 选择JAVA作为编程语言,通过与老师交流以及预实验,充分考虑被试学习进度、编程水平以及编程用时,确定编程任务(如表1所示),编程任务为四道编程题,编程时间为60 min.

表1 编程任务

2.3 实验平台

选择Eclipse作为本实验JAVA编程任务平台,采用Fluorite[11]插件记录被试编程实践学习中的行为,并在Fluorite的原始版本上添加了日志监控(控制台输出和错误警告)、用户登录,帮助信息记录等功能.此外,我们编写了键盘鼠标记录插件,记录键盘操作中按键的键盘操作码、键盘操作类型(按下/弹起)、时间戳,以及鼠标操作中的鼠标操作类型(滑动、左键按下/弹起、右键按下/弹起 )、鼠标的XY坐标值、时间戳等.

2.4 实验过程

本实验在某高校计算机学院上机课上进行,实验前,在实验用机上提前安装和配置了实验平台.在教师讲述实验目的以及注意事项后,学生首先按照要求在60 min之内完成编程任务,然后填写在线人格量表.在编程过程中,学生可以上网查询知识点,但不能搜索题目答案.最后,被试以自愿的原则签订同意书,同意将编程行为数据和人格量表内容用于本研究.实验结束后,实验人员收集日志文件.

2.5 数据处理

除去由于实验过程中失误造成数据缺失(例如,在线人格问卷缺失的情况),共收集到96名被试的完整数据.从日志文件中获取了每个被试的编程事件列表以及键盘鼠标等数据,用以提取特征,并从人格量表数据中获取学习者人格特质的类标.

3 方 法

图1描述了本文提出的基于编程行为的人格特质识别方法(Programming Behavior based Personality Recognition Method, PB_PRM)的流程.

图1 方法流程图Fig.1 The flow chart of the method

该方法对某一人格特质进行二分类.其中,采用SVM算法建立分类模型,以径向基函数(Radial Basis Function, RBF)作为SVM模型核函数,通过GS方法对SVM模型参数(C和γ)进行优化,并使用GA进行特征选择.为了获得更准确的结果,我们采用了基于多编程任务的投票策略.首先将学习者行为序列数据按单个编程任务进行样本分割(本研究共4个任务,96名被试的行为数据被分割成384份样本);然后,基于每一个编程任务数据分别获得一个分类结果,即,一个学习者的某一人格特质有4个分类结果;最后,对4个分类结果进行综合投票,以多数投票结果作为该学习者的人格特质的最终识别结果.

3.1 特征提取

行为特征包括编程事件特征、知识掌握水平特征、鼠标键盘特征,共计81个(见表2).

表2 学习者编程行为特征Tab.2 The features extracted from the learners’ programming behaviors

(1) 编程特征.

编程特征包括编程事件时间特征、编程事件频率特征、编程学习特征、编程修改特征.编程事件时间特征包括插入、编译、运行事件时间间隔的统计特征,编程事件频率特征包括运行,查找,打开文件等操作的次数,编程学习特征为网页查询的次数,编程修改特征为代码编辑距离的统计特征.

(2) 知识掌握水平特征.

本文抽取了知识掌握水平特征包括完成题目的总时间和WATWIN分数.其中,WATWIN分数由Watson等人[12-13]提出,WATWIN算法根据学生编程日志对学生编程表现进行评分,该算法基于编译事件(本研究基于运行事件)信息,通过比较某一学生解决错误的时间与其他人解决时间的分布,对该学生的编程水平进行评估.

(3) 鼠标键盘操作特征.

鼠标操作特征包括各类操作所占比例,鼠标左键和右键的按下时间、鼠标角加速度的统计量.击键特征包括击键速度、键盘按下时间、键盘释放时间、特殊按键使用频率的统计量.

3.2 投票策略

首先建立SVM分类模型,然后采用投票策略,综合多个编程任务分类结果判断学习者人格特质.

人格识别模型中学习者i的人格Ri的确定方式如式(1)所示.

(1)

3.3 参数优化和特征选择.

SVM模型待优化的参数包括惩罚系数(C)和gamma(γ).本文使用网格搜索的方法搜索最优参数,其中C的取值范围为[0.01,10 000],γ的取值范围为[0.000 01,10].

使用GA获取SVM模型的最优特征子集[14].首先初始化SVM模型的最优特征子集,基于该特征子集训练SVM的模型,并基于人格识别结果对SVM模型进行评估,根据评估结果确定是否替换最优子集,并且判断GA是否结束,如果不满足结束条件,则根据对特征子集进行遗传操作,生成新特征子集, 如果满足GA算法结束条件,则该轮遗传算法结束.

(1) GA参数及评估函数.

GA的种群数60,交叉率0.7,变异率0.05,进化代数100,评估函数见式(2).

fitness =WA×ACC+WE× (1-E)

(2)

其中,ACC为分类准确率;E为基于投票的全局误差.WA为分类准确率(ACC)的权重;WE为全局误差(E)的权重.

(2) 基于投票的全局误差E.

考虑到由于题目难度以及学习者水平不同,被试在不同的编程题上有较大的行为差异,可能导致人格特质分类结果不稳定.因此,基于参考文献[15],我们提出了一种基于多任务投票的全局误差计算方法.全局误差计算方法如式(3)所示.

(3)

其中,Ei是第i个被试的误差;N为被试人数,i=1,2,...,N.Ei的计算方式见式(4).

(4)

其中,Eij为被试i中第j个样本Bij的误差;Mi表示被试i对应的样本Bi的个数;Δ(Bi,Eij= 0)表示的是被试i对应的样本Bi中误差为0的样本个数.Eij的计算方式见式(5).

(5)

其中,Pij代表样本的真实类标;Pij∈{0,1};Oij为模型输出概率.

4 结果和讨论

本研究对大五人格模型中的特质分别建立识别模型,采用十重交叉法验证模型.为了解学习者编程行为特征对各个人格特质的影响,表3描述了每个特质最优模型的特征子集.

表3 大五人格特质的最优模型特征子集Tab.3 The feature subsets of the optimal models for the Big Five personality traits

从表3可以看出,不同类型的行为特征对人格特质有不同的识别潜力.其中代码输入行为相关的特征(如插入操作、编译操作、代码编辑距离的部分统计特征)被选入了全部五个人格特质识别模型的最优特征子集,对五个人格特质都有较好的识别潜力;同样,与编程错误处理相关的特征(如运行操作部分统计特征、WATWIN分数)以及键盘相关的部分特征也被选入了五个特质的最优模型,对五个人格特质都有较好的识别潜力.鼠标相关的特征被选入了“开放性”、“外倾性”、“宜人性”、“神经质”四个特质最优模型的特征子集中,对这四个特质有较好的识别潜力.此外,学习相关的行为特征(即网页查询次数)对“开放性”特质的有较好的识别潜力;完成题目的总时间这一特征对“尽责性”特质的有较好的识别潜力.

采用ROC曲线下的面积(AUC)、精度(ACC)、查准率(P)、查全率(R)、F1[16]五个指标来评估人格特质识别模型.表4描述了模型在测试集上性能指标的均值和方差.

表4 人格特质识别模型评估

表4的结果表明,本文提出的模型在各个评价指标上都有较好的表现(AUC: 0.77~0.83,ACC: 0.78~0.81,P:0.76~0.91,F1: 0.73~0.83,R: 0.65~0.86),这说明了本研究提出的基于编程行为的学习者人格特质识别方法能够较准确地识别大五人格特质.

5 应 用

本文提出的基于编程行为的人格特质识别方法在一定程度上能够识别学习者人格特质,具有较好的学习者个性刻画的潜力,为实现学习者个性化的教学辅助提供了依据.例如,基于人格特质识别模型,可以进行个性化的编程伙伴推荐.编程对初学者尤其困难,学习者往往经历长期的、枯燥的独自学习和摸索过程,可能导致学习者中途放弃,影响学习效果.为编程学习者推荐人格特质“匹配的”(如相似型、互补型)学习伙伴进行协作学习,是提升学习体验和效果的重要手段,而人格特质则是判定学习伙伴是否匹配的关键.此外,具有不同人格特质的学习者对于学习资源的偏好可能不同,如“开放性”高的学习者在编程实践中可能偏好先了解原理知识,“外向性”高的学习者可能偏好在线答疑方式.依据学习者的人格特质为其推荐适应的学习资源,能够让学习资源的投放更加精准,提升学习效率.此外,人格特质识别结果也能在日常教学实践中帮助教师快速地理解学生,成为教师为学生提供个性化指导的依据.例如:对于“神经质”高的学习者,教师可以在其遇到困难时尽早进行干预,对于“尽责性”低的学习者,教师可以对其学习进度进行更加细致的监督.

6 结 论

本研究提出了基于编程行为的学习者人格特质识别方法,其实验结果显示,基于学习者编程行为数据能够在一定程度上识别大五人格特质,为个性化编程学习的支持提供了新思路,例如,基于人格特质识别的学伴推荐、学习资源推荐以及个性化教学指导等.

本研究虽然选择了4道不同难度的题目以尽量多地覆盖学习者的不同行为模式,但受限于实验资源与时间,实验被试数量和采集的编程行为数据略显不足,如果能在未来工作中扩大被试数量及编程任务类型,有望进一步提升模型的泛化能力和准确性.

猜你喜欢
人格特质鼠标键盘
你知道手机拨号键盘上为什么要有*和#吗?
人格特质对年轻驾驶员潜在危险感知能力的影响
人格特质对企业员工时间侵占行为的影响
键盘猫
近视患者人格特质与近视矫正手术意向的关系研究
Cлово месяца
ikbc R300机械键盘
选择一张神奇的行为艺术照片,秒测你的真实人格特质
鼠标折叠笔
45岁的鼠标