林 濤, 周小涵, 吳芝明, 洪 玫, 王 建, 唐寧九
(四川大學軟件學院, 成都 610065)
為學習者提供個性化教學支持是現(xiàn)代教育的目標之一.然而,如何精準地識別學習者個性是個性化教學實現(xiàn)的前提和難點.人格特質(zhì)能科學地揭示人與人之間穩(wěn)定的個性差異,并且與個體其它學習心理特征(如學習動機、自我效能、學習期望等)保持了相對穩(wěn)定的預測關系,因此,人格特質(zhì)已經(jīng)普遍被采用來反映學習者的個性.
就軟件工程專業(yè)學生而言,編程能力是一種核心能力,準確地識別編程學習者的人格特質(zhì)是為其提供個性化學習支持的前提.現(xiàn)有的人格特質(zhì)自動識別研究主要基于機器學習或深度學習方法,通過文本[1-2]、語音和圖像[3-4]、社交網(wǎng)絡[5-6]等數(shù)據(jù)源來建立人格特質(zhì)識別模型.但由于這些方法需要額外的設備、平臺或任務來收集數(shù)據(jù),難以在日常的編程實踐學習環(huán)境中應用.
編程本質(zhì)上是一種實踐活動,編程過程中會產(chǎn)生大量的反映學習行為的數(shù)據(jù),這些數(shù)據(jù)具有能夠被實時、隱式采集,不依賴其他設備平臺,采集成本低等特點.人格心理學研究認為,人格特質(zhì)作為人格的基礎成分,決定了個體適應的獨特性且能在一定程度上指揮個體行為[7].因此我們認為,編程行為不僅受到學習者水平、編程題目、編程難度等因素影響,還在一定程度上受到學習者人格特質(zhì)的影響.然而,如何從“高噪聲”的編程行為數(shù)據(jù)中,抽取每一種特質(zhì)獨有的行為模式,繼而建立人格識別模型仍是一個挑戰(zhàn).
本文面向編程實踐學習環(huán)境,綜合運用支持向量機(Support Vector Machine, SVM)[8]、遺傳算法(Genetic Algorithm, GA)和網(wǎng)格搜索(Grid Search, GS),提出一種基于編程行為的人格特質(zhì)識別方法.即,收集學習者在一段時間內(nèi)完成的多個編程任務的行為數(shù)據(jù),將學習者每一個編程任務中抽取的行為特征和該學習者人格特質(zhì)標簽(大五人格量表獲得)作為一個樣本,建立人格特質(zhì)分類模型,并基于學習者多個編程任務的分類結(jié)果,采用投票策略綜合判斷其人格特質(zhì).
本研究主要內(nèi)容包括:設計實驗采集編程學習者的編程行為和人格量表數(shù)據(jù);提出一種基于編程行為的人格特質(zhì)識別方法并驗證分析其效果;探索基于編程行為的人格特質(zhì)方法在個性化編程教育、學習中的可能應用及未來研究方向.
本實驗旨在收集學習者在編程學習過程中的行為及其人格特質(zhì)數(shù)據(jù).
某高校大二計算機專業(yè)共計230位學生作為被試參加了實驗,年齡分布在20~25歲之間.
2.2.1 人格量表 本文采用大五人格特質(zhì)模型描述被試的人格,大五人格特質(zhì)模型作為目前應用最廣泛的人格特質(zhì)模型,包括“開放性”、“盡責性”、“外傾性”、“宜人性”、“神經(jīng)質(zhì)”五種特質(zhì)[9].考慮到應用范圍,時間成本、穩(wěn)定性等因素,選擇BFI-44大五人格問卷收集被試的大五人格特質(zhì)得分[10].
2.2.2 編程任務 選擇JAVA作為編程語言,通過與老師交流以及預實驗,充分考慮被試學習進度、編程水平以及編程用時,確定編程任務(如表1所示),編程任務為四道編程題,編程時間為60 min.
表1 編程任務
選擇Eclipse作為本實驗JAVA編程任務平臺,采用Fluorite[11]插件記錄被試編程實踐學習中的行為,并在Fluorite的原始版本上添加了日志監(jiān)控(控制臺輸出和錯誤警告)、用戶登錄,幫助信息記錄等功能.此外,我們編寫了鍵盤鼠標記錄插件,記錄鍵盤操作中按鍵的鍵盤操作碼、鍵盤操作類型(按下/彈起)、時間戳,以及鼠標操作中的鼠標操作類型(滑動、左鍵按下/彈起、右鍵按下/彈起 )、鼠標的XY坐標值、時間戳等.
本實驗在某高校計算機學院上機課上進行,實驗前,在實驗用機上提前安裝和配置了實驗平臺.在教師講述實驗目的以及注意事項后,學生首先按照要求在60 min之內(nèi)完成編程任務,然后填寫在線人格量表.在編程過程中,學生可以上網(wǎng)查詢知識點,但不能搜索題目答案.最后,被試以自愿的原則簽訂同意書,同意將編程行為數(shù)據(jù)和人格量表內(nèi)容用于本研究.實驗結(jié)束后,實驗人員收集日志文件.
除去由于實驗過程中失誤造成數(shù)據(jù)缺失(例如,在線人格問卷缺失的情況),共收集到96名被試的完整數(shù)據(jù).從日志文件中獲取了每個被試的編程事件列表以及鍵盤鼠標等數(shù)據(jù),用以提取特征,并從人格量表數(shù)據(jù)中獲取學習者人格特質(zhì)的類標.
圖1描述了本文提出的基于編程行為的人格特質(zhì)識別方法(Programming Behavior based Personality Recognition Method, PB_PRM)的流程.
圖1 方法流程圖Fig.1 The flow chart of the method
該方法對某一人格特質(zhì)進行二分類.其中,采用SVM算法建立分類模型,以徑向基函數(shù)(Radial Basis Function, RBF)作為SVM模型核函數(shù),通過GS方法對SVM模型參數(shù)(C和γ)進行優(yōu)化,并使用GA進行特征選擇.為了獲得更準確的結(jié)果,我們采用了基于多編程任務的投票策略.首先將學習者行為序列數(shù)據(jù)按單個編程任務進行樣本分割(本研究共4個任務,96名被試的行為數(shù)據(jù)被分割成384份樣本);然后,基于每一個編程任務數(shù)據(jù)分別獲得一個分類結(jié)果,即,一個學習者的某一人格特質(zhì)有4個分類結(jié)果;最后,對4個分類結(jié)果進行綜合投票,以多數(shù)投票結(jié)果作為該學習者的人格特質(zhì)的最終識別結(jié)果.
行為特征包括編程事件特征、知識掌握水平特征、鼠標鍵盤特征,共計81個(見表2).
表2 學習者編程行為特征Tab.2 The features extracted from the learners’ programming behaviors
(1) 編程特征.
編程特征包括編程事件時間特征、編程事件頻率特征、編程學習特征、編程修改特征.編程事件時間特征包括插入、編譯、運行事件時間間隔的統(tǒng)計特征,編程事件頻率特征包括運行,查找,打開文件等操作的次數(shù),編程學習特征為網(wǎng)頁查詢的次數(shù),編程修改特征為代碼編輯距離的統(tǒng)計特征.
(2) 知識掌握水平特征.
本文抽取了知識掌握水平特征包括完成題目的總時間和WATWIN分數(shù).其中,WATWIN分數(shù)由Watson等人[12-13]提出,WATWIN算法根據(jù)學生編程日志對學生編程表現(xiàn)進行評分,該算法基于編譯事件(本研究基于運行事件)信息,通過比較某一學生解決錯誤的時間與其他人解決時間的分布,對該學生的編程水平進行評估.
(3) 鼠標鍵盤操作特征.
鼠標操作特征包括各類操作所占比例,鼠標左鍵和右鍵的按下時間、鼠標角加速度的統(tǒng)計量.擊鍵特征包括擊鍵速度、鍵盤按下時間、鍵盤釋放時間、特殊按鍵使用頻率的統(tǒng)計量.
首先建立SVM分類模型,然后采用投票策略,綜合多個編程任務分類結(jié)果判斷學習者人格特質(zhì).
人格識別模型中學習者i的人格Ri的確定方式如式(1)所示.
(1)
SVM模型待優(yōu)化的參數(shù)包括懲罰系數(shù)(C)和gamma(γ).本文使用網(wǎng)格搜索的方法搜索最優(yōu)參數(shù),其中C的取值范圍為[0.01,10 000],γ的取值范圍為[0.000 01,10].
使用GA獲取SVM模型的最優(yōu)特征子集[14].首先初始化SVM模型的最優(yōu)特征子集,基于該特征子集訓練SVM的模型,并基于人格識別結(jié)果對SVM模型進行評估,根據(jù)評估結(jié)果確定是否替換最優(yōu)子集,并且判斷GA是否結(jié)束,如果不滿足結(jié)束條件,則根據(jù)對特征子集進行遺傳操作,生成新特征子集, 如果滿足GA算法結(jié)束條件,則該輪遺傳算法結(jié)束.
(1) GA參數(shù)及評估函數(shù).
GA的種群數(shù)60,交叉率0.7,變異率0.05,進化代數(shù)100,評估函數(shù)見式(2).
fitness =WA×ACC+WE× (1-E)
(2)
其中,ACC為分類準確率;E為基于投票的全局誤差.WA為分類準確率(ACC)的權(quán)重;WE為全局誤差(E)的權(quán)重.
(2) 基于投票的全局誤差E.
考慮到由于題目難度以及學習者水平不同,被試在不同的編程題上有較大的行為差異,可能導致人格特質(zhì)分類結(jié)果不穩(wěn)定.因此,基于參考文獻[15],我們提出了一種基于多任務投票的全局誤差計算方法.全局誤差計算方法如式(3)所示.
(3)
其中,Ei是第i個被試的誤差;N為被試人數(shù),i=1,2,...,N.Ei的計算方式見式(4).
(4)
其中,Eij為被試i中第j個樣本Bij的誤差;Mi表示被試i對應的樣本Bi的個數(shù);Δ(Bi,Eij= 0)表示的是被試i對應的樣本Bi中誤差為0的樣本個數(shù).Eij的計算方式見式(5).
(5)
其中,Pij代表樣本的真實類標;Pij∈{0,1};Oij為模型輸出概率.
本研究對大五人格模型中的特質(zhì)分別建立識別模型,采用十重交叉法驗證模型.為了解學習者編程行為特征對各個人格特質(zhì)的影響,表3描述了每個特質(zhì)最優(yōu)模型的特征子集.
表3 大五人格特質(zhì)的最優(yōu)模型特征子集Tab.3 The feature subsets of the optimal models for the Big Five personality traits
從表3可以看出,不同類型的行為特征對人格特質(zhì)有不同的識別潛力.其中代碼輸入行為相關的特征(如插入操作、編譯操作、代碼編輯距離的部分統(tǒng)計特征)被選入了全部五個人格特質(zhì)識別模型的最優(yōu)特征子集,對五個人格特質(zhì)都有較好的識別潛力;同樣,與編程錯誤處理相關的特征(如運行操作部分統(tǒng)計特征、WATWIN分數(shù))以及鍵盤相關的部分特征也被選入了五個特質(zhì)的最優(yōu)模型,對五個人格特質(zhì)都有較好的識別潛力.鼠標相關的特征被選入了“開放性”、“外傾性”、“宜人性”、“神經(jīng)質(zhì)”四個特質(zhì)最優(yōu)模型的特征子集中,對這四個特質(zhì)有較好的識別潛力.此外,學習相關的行為特征(即網(wǎng)頁查詢次數(shù))對“開放性”特質(zhì)的有較好的識別潛力;完成題目的總時間這一特征對“盡責性”特質(zhì)的有較好的識別潛力.
采用ROC曲線下的面積(AUC)、精度(ACC)、查準率(P)、查全率(R)、F1[16]五個指標來評估人格特質(zhì)識別模型.表4描述了模型在測試集上性能指標的均值和方差.
表4 人格特質(zhì)識別模型評估
表4的結(jié)果表明,本文提出的模型在各個評價指標上都有較好的表現(xiàn)(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),這說明了本研究提出的基于編程行為的學習者人格特質(zhì)識別方法能夠較準確地識別大五人格特質(zhì).
本文提出的基于編程行為的人格特質(zhì)識別方法在一定程度上能夠識別學習者人格特質(zhì),具有較好的學習者個性刻畫的潛力,為實現(xiàn)學習者個性化的教學輔助提供了依據(jù).例如,基于人格特質(zhì)識別模型,可以進行個性化的編程伙伴推薦.編程對初學者尤其困難,學習者往往經(jīng)歷長期的、枯燥的獨自學習和摸索過程,可能導致學習者中途放棄,影響學習效果.為編程學習者推薦人格特質(zhì)“匹配的”(如相似型、互補型)學習伙伴進行協(xié)作學習,是提升學習體驗和效果的重要手段,而人格特質(zhì)則是判定學習伙伴是否匹配的關鍵.此外,具有不同人格特質(zhì)的學習者對于學習資源的偏好可能不同,如“開放性”高的學習者在編程實踐中可能偏好先了解原理知識,“外向性”高的學習者可能偏好在線答疑方式.依據(jù)學習者的人格特質(zhì)為其推薦適應的學習資源,能夠讓學習資源的投放更加精準,提升學習效率.此外,人格特質(zhì)識別結(jié)果也能在日常教學實踐中幫助教師快速地理解學生,成為教師為學生提供個性化指導的依據(jù).例如:對于“神經(jīng)質(zhì)”高的學習者,教師可以在其遇到困難時盡早進行干預,對于“盡責性”低的學習者,教師可以對其學習進度進行更加細致的監(jiān)督.
本研究提出了基于編程行為的學習者人格特質(zhì)識別方法,其實驗結(jié)果顯示,基于學習者編程行為數(shù)據(jù)能夠在一定程度上識別大五人格特質(zhì),為個性化編程學習的支持提供了新思路,例如,基于人格特質(zhì)識別的學伴推薦、學習資源推薦以及個性化教學指導等.
本研究雖然選擇了4道不同難度的題目以盡量多地覆蓋學習者的不同行為模式,但受限于實驗資源與時間,實驗被試數(shù)量和采集的編程行為數(shù)據(jù)略顯不足,如果能在未來工作中擴大被試數(shù)量及編程任務類型,有望進一步提升模型的泛化能力和準確性.