圖片來源:攝圖網(wǎng)
本文是胡天碩《揭秘自適應學習的背后原理》系列文章第二篇,第一篇為《一套自適應學習系統(tǒng)更應該包括那些環(huán)節(jié)?》。
當大家聊起AI與汽車的時候,第一個想到的是無人駕駛技術。當大家聊起AI與教育的時候,第一個往往想到的則是自適應學習。然而自適應學習就像無人駕駛一樣,是分為不同的等級。較低等級的自適應學習幾乎與AI無關,而最高等級的自適應學習沒有一家公司能夠完全做出來,是AI領域非常困難的問題。
今天我?guī)е蠹覐淖畹退降淖赃m應學習,一直講述自適應學習的最高等級。
Level 0:基于純?nèi)斯さ淖赃m應學習
如果要做一款自適應學習的產(chǎn)品,我們先假設電腦是完全沒有能力判斷出學生的能力水平,而由老師來做判斷,判斷之后,由電腦來推送相應的課程。
1、英語作文批改
用戶在網(wǎng)站上錄入了自己的托福作文,提交后,作文被送到一個隊列里等待人工的批注。老師收到了新的作文后,對學生作文的各個部分進行標注,哪些單詞拼錯了,用錯了,哪些固定搭配錯了,哪些語法有問題,文章結構有什么問題。批改完畢后,學生會收到老師的評價,和系統(tǒng)自動推送出的單詞,語法,和結構課。從算法上來講,邏輯很簡單,總共會有不同的幾種錯誤類型,和對應的課程,只要學生在作文里出現(xiàn)某種錯誤,就自動推這類課程。
2、一對一幾何課
老師在一對一地個性化輔導一個同學,這時候給出一道幾何題目讓學生完成,學生通過手寫的方式錄入自己的答案,但是中間有幾個過程問題。老師用手寫批改后,在直播過程中的后臺,記錄了學生的知識漏洞,課后生成的學習報告里,會包括學生的知識點掌握情況,出現(xiàn)的錯題,推薦做的同類題目。甚至,完全可以在直播的過程中,老師出什么題目,完全并不由老師決定,而是由系統(tǒng)自動出,老師每次只是給出評價學生到底出現(xiàn)哪些知識漏洞,是否要出一個更難的挑戰(zhàn)?從算法上來講,邏輯也非常簡單,一道幾何題出現(xiàn)的錯誤類型有限,可以為每道題目找難度更低和更高的幾種題目,然后由老師決定是加大難度,減少難度,還是到下一個學習環(huán)節(jié)。
接下來我們讓電腦來判斷學生的對錯。
Level 1:基于簡單規(guī)則的自適應學習
我們要在Level 0的基礎上加入簡單的條件判斷,就可以實現(xiàn)最簡單的自適應學習算法?;谝?guī)則的自適應學習,其實本質(zhì)是決策樹,適用場景是那些不去判斷學生是否掌握某種知識,而是直接去判斷學生的某種行為是否是不對的。
1、汽車模擬駕駛
學生闖紅燈了,扣分,然后告訴學生,你要注意紅綠燈。學生左轉忘打轉向燈了,扣分,然后告訴學生,你要記得打轉向燈。學生超速了,扣分,然后告訴學生,你要注意自己行駛的速度。由于是電腦模擬駕駛,判斷語句設計起來都并不復雜。這種情況,不僅適用于開車,也適用于開飛機,開挖掘機,等各種計算機可以模擬的情景。
2、智能健身矯正
通過可穿戴式或者是視頻式的動作捕捉設備,能夠獲得學生在做深蹲,硬拉,平板支撐等一系列動作時各個關節(jié)的角度。當學生完成動作的過程中有角度超出規(guī)定值的時候,就提醒學生,你硬拉時背部不夠收緊,臀部不夠翹起。動作捕捉的技術和硬件雖然當前還未普及,但是實際上,判斷姿態(tài)是否正確的算法并不是那么困難。這種情況,不僅適用于健身,還有各種球類,舞蹈,甚至器樂的基本功學習。
實際上學生的掌握程度,未必是那么黑白分明,對就是對,錯就是錯,接下來,我們需要在簡單的決策樹規(guī)則之上建立更好的自適應學習算法。
Level 2:基于難度等級的自適應學習
剛才我們在Level 1級的自適應學習里,通過學生的行為直接指出學生的問題。而拿開車的例子,同樣兩個人既不闖紅燈,也不超速,但依然可能開除的體驗非常不同——所謂有新手司機和老司機的區(qū)別。
如果我們不去規(guī)定,學生什么具體行為錯了就推送什么相應課程,而是設計一套難度遞增的課程,當學生完成得好的時候就加大挑戰(zhàn)難度,當學生完成的有問題時,就相應減少難度。這就是基于難度等級的自適應學習。
1、英語分級閱讀
一個學生是否能看懂一篇文章,背后的原因是非常多的。一個很難的單詞,靠上下文,反而可能能猜測出來;幾個簡單的單詞,組合成短語和搭配,可能完全意思就變了;甚至如果是因為專業(yè)問題,可能單詞,短語,語法都完全看得懂,但依然不明白的現(xiàn)象也會發(fā)生。
所以國外提出了所謂的readability(可讀性)的概念,兒童出版社將書籍按照大概的年齡段劃分。教學的時候,雖然每一個孩子有他的真實年齡,但是可以通過閱讀測試找到最合適他讀的年齡段。一開始當書比較少的時候,可以由教育專家和老師來評定書籍的可讀性,但隨著要標注的書籍的增加,這件事情就必須由算法來完成。
國外readability的算法在wikipedia有講述,以常見的Flesch-Kincaid等級為例,單詞的平均音節(jié)數(shù)越多,段落里句子的長度越長,就認為文章越難讀懂。例如高考聽力的難度最難也就在10年級,高考閱讀在12年級左右,托福雅思的閱讀題可能會有18-19年級的壓軸題。注意像Flesch-Kincaid這類把句子長度考慮進去的readability算法,對于缺乏標點符號的歌詞或詩歌,還有標點符號過于頻繁的對話型文章,都會有較大偏差,需要進行修正。
2、王者榮耀的天梯系統(tǒng)
在這里我們舉一個非常有意思的學習例子,那就是手機游戲。像王者榮耀這類MOBA手機游戲,并不是自己去設計不同難度的關卡讓用戶進階學習而是采用了天梯的方式,讓水平近似的人在相同的段位PK,變相地提供了一個進階的臺階。在排位賽的個天梯系統(tǒng)里,贏得多了就會遇到更強的對手,輸?shù)枚嗔?,就會遇到更弱的對手。雖然最終比賽的輸贏不僅和個人的操作、意識和配合有關,還跟自己的隊友,選擇的英雄組合相比較對手是壓制和被壓制,還有運氣有關。但是整體來講,差一個大的段位(例如鉆石和鉑金),水平上一定會有明顯的差距。
elo算法在圍棋,國際象棋,是國際上評估水平高低的重要算法。與天梯系統(tǒng)不同,輸贏的得分并不是固定的,而和你和競爭對手的差異有關的,如果你贏了水平比你強的人,你提的分數(shù)多,而他掉的分數(shù)多,如果你輸了水平比你強的人,你掉的分數(shù)少,而他提的分數(shù)也少。感興趣的可以參考這里。
基于難度的自適應學習算法的最大缺點是認為學生的學科掌握度是一個值——有點像把學生分為重點班,普通版的感覺——而實際上,更多時候,大家關注的是學科中細粒度的知識點的掌握情況。
Level 3:基于知識點網(wǎng)絡和概率模型的自適應學習
Level 2 只有難度等級的概念,現(xiàn)在我們要引入知識圖譜的概念了。我們實際上是沒有直接辦法去測量學生的知識點掌握程度,我們只能倒過來從學生的做題情況,推斷知識點的掌握程度。后面可能會涉及到一些數(shù)學公式,不會的同學可以選擇性跳過。Level 3的內(nèi)容比較多,我們分為多個部分來講。
1、相同難度,單一知識點的題目
我們先解釋一下,為什么學生的知識點要用概率模型來算。學生做對做錯的最簡單模型就是翻一枚不均衡的硬幣,看正面朝上的分布。假如學生知識點的掌握度為p,p是0~1之間的一個數(shù),意味著每做1道題,有p的概率做對。那么學生做了n道題,得零分的概率為(1-p)的n次方,得滿分的概率是p的n次方,他最有可能做對的題目數(shù)是n*p。
問題是,沒有人知道p為多少,我們倒過來只知道n道題里,有m道做對了。當n趨近于無窮的時候,我們幾乎可以肯定p=m/n,但現(xiàn)實中,別說無窮道題,同一個知識點的題目讓學生做20遍,學生就會受不了了。所以為了追求實用,我們必須犧牲一部分精度,我們可以認為n=0的時候,也就是我們對學生一無所知的時候,p應該是一個0~1的均勻分布,但是隨著n的增加,p的分布應該如何改變呢?
實際上數(shù)學家們早已經(jīng)告訴我們了,扔不均勻硬幣的二項式分布的共軛先驗密度函數(shù)(conjugate prior probability distribution)是beta分布(其多維版本叫做Dirichlet分布)。具體的公式和推導參見維基百科。
這里背后核心的思想是,同樣是100%的正確率,同樣難度的題,張三做了三道,李四做了20道,由于樣本容量的不同,會導致知識點掌握度的置信因子不同。
2、不同難度,相同知識點的題目
接下來我們要考慮到,真實的題型,并不是都難度一樣的,甚至說難度一個衡量指標,是遠遠不夠的。舉一個例子,題目一是1234*56789等于多少,填空題,題目二一個天體為水的密度,重量為1億億噸,請問這個天體是否是一個黑洞。前者其實難度是比后者小的,但是,由于前面是填空題,后面是判斷題,其實后面的題目有50%的蒙對概率。為了能夠?qū)︻}目更好地建模,我們引入IRT(Item-response-theory)模型。
以上圖是三個參數(shù)版本的IRT,其中a為區(qū)分度,b為難度,c為猜測可能性。橫縱標里,值越高代表學生能力越強。c=0.25,意味著哪怕最差的學生都有25%的可能性做對,所以這道題目最有可能是一道4選1的單選題。b=0.0代表,這道題目的難度正好適中,如果b比較大,代表能夠把特別優(yōu)秀的學生和普通學生區(qū)分開,如果b比較小,代表這是一道送分題,如果這還做不對,大概是平時沒有認真學習。區(qū)分度a,可以認為當區(qū)分度特別大時,這道題目是要么肯定就會,要么就是徹底不會,不存在中間地帶。
IRT模型的初始化可以用老師來標注,但是后期只有有足夠多的真實做題數(shù)據(jù)才反映真實的題目難度。通常來講,一道題目被1000個不同的學生做后,參數(shù)就可以基本確定,當這道題被10000個學生做過后,會基本收斂,再來新的學生,參數(shù)變化會非常小。
在IRT的基礎上,又出現(xiàn)了利用貝葉斯+HMM的BKT,還有基于深度學習的DKT等一系列算法,不管算法怎么演進,其核心目的在于通過做題情況估算學生真是的知識點掌握度。然而,剛才有一個重要的點被我們略過了,那就是,實際的題目,并不是只有單一知識點的,而往往可能同時對應多個知識點。這時候我們就要引入題目知識映射矩陣(q matrix)的概念。
3、一題多個知識點對應的情況
q matrix就是一個題目與知識點對應的矩陣,其中的值既可以是離散的0或1,也可以是連續(xù)的0~1之間的概率。Level 3級自適應學習的最大工作量之一就在于q矩陣的搭建,尤其是當知識點的粒度比較細的時候,所需要投入的人工成本非常大,就光初中數(shù)學一個學科,為百萬道題目打標簽,沒有大幾百萬的經(jīng)費是幾乎不可能完成的。而哪怕在收到足夠多的數(shù)據(jù)后,可以對q矩陣進行演化,做知識點的拆分和合并,但是在沒有任何初始化的q矩陣,光有數(shù)據(jù)幾乎是不可能空手套白狼變出一個知識圖譜的。
到底應該怎樣給題目打標簽呢?這個過程一定要拋開狹義的課本上的知識點,而采用廣義知識點(Knowledge Component)。廣義知識點,除了章節(jié)以外,還應該包括策略,考察點,技巧,知識誤區(qū),甚至還有學生是否馬虎大意,應用題的閱讀理解能力如何。好的系統(tǒng),可能會給選擇題的不同選項都會對應不同的知識點,而填空題的情況還會更加復雜。
4、知識點相互關聯(lián)形成知識圖譜
知識點之間并不是孤立的。當學生做題之后,除了要更新題目所對應的知識點,還要以降低置信度+傳播到相關知識點。這部分的算法并不復雜,真正難的是建立知識圖譜。
知識點的關系,遠比課本或教參中呈現(xiàn)的章節(jié)樹復雜的多。章節(jié)樹的結構,僅僅是做了包含關系,而且由于教材版本的不同,實際上會出現(xiàn)一個知識圖譜與不同版本教材章節(jié)的映射網(wǎng)絡。高中學習階段,有的知識點會一次次地出現(xiàn),然而每次地出現(xiàn)都是把過去的定義,特性推倒重來,可是到了高三總復習的時候,又要融會貫通,這些同類知識點,需要關聯(lián)起來。很多團隊做了知識的先后依存關系,但是忽略了,實際上有的時候多學的知識,不僅沒有強化過去的知識,反而有可能會導致困惑,讓過去的知識的掌握程度降低(例如英語里學完compose之后又學了comprise)。
5、考慮到時間的影響
一個學生做了100道知識點一樣的題目,最終對了50道,這真的代表學生水平是0.5嗎?實際上很有可能,前20道題,由于學生什么都不會,只對了2-3道,而后20道題,學生已經(jīng)基本掌握了,可能一道都沒錯。我們要以變化的眼光去看待學生的發(fā)展,這就意味著,我們需要“遺忘”那些時間久遠的事情。也就是我們需要一個滑動的窗口(sliding window),越遙遠的行為數(shù)據(jù)權重越低。
還有一個時間的影響就是記性,隨著時間的推移,學生遺忘的比例會越來越高。而最佳的復習時間,就是學生恰好要遺忘,卻沒有忘記的時候。自適應的復習算法,開源軟件anki采用了supermemo的早期spaced repeatition算法,已經(jīng)能夠滿足絕大多數(shù)的需求,也是多數(shù)背單詞軟件所采納的算法。
終于講完了,下面可以舉例了。
6、數(shù)學的填空題,0.0035的科學計數(shù)法
比如學生回答:-0.35*10的3次方。那么最簡單的辦法是,系統(tǒng)評估這道題是一道簡單題,說學生你的科學計數(shù)法基本功不行。但實際上如果是一名優(yōu)秀的數(shù)學老師,他會發(fā)現(xiàn),學生搞錯了多個事情。一、科學計數(shù)法首位應該非零的數(shù)字。二、負號的位置學生搞錯了。三、學生估計記得老師說過,從小數(shù)點往后數(shù)幾位,指數(shù)應該放多少,而沒有真正理解指數(shù)上的坐標的意思。
7、英語開放作文的發(fā)音和語法
發(fā)音的知識圖譜比較簡單,bit和bite混淆發(fā)音,那么lit和light混淆的可能性也非常大。甚至bed和bead都有可能因為元音長短因分不清楚而錯誤。這個在學生邊讀的過程中,就可以逐漸收集問題,并且推送相應課程。
語法的知識圖譜就比較復雜了,同樣是動詞的過去式,規(guī)則動詞就包括多種情況,不規(guī)則動詞幾乎每一個都構成自己一個知識點,過去式與過去分詞搞混了又是另外一種情況。同樣是冠詞,a后面是元音是一種情況,但a user是一種特例,an hour是另一種特例,如果后面接的是地理位置,則更加混亂(the USA, 但不是the China)。英語的教研工作量一點都不比數(shù)學簡單。
自適應做到這個地步,依然存在兩大問題,一個問題是人工教研工作量耗大,做得越細越好,越困難。另一個問題是,只能解決客觀題,對于證明題,簡答題,完全沒有辦法做。而只有能夠在解題步驟里做自適應,才是真正的終極解決辦法。
Level 4:基于NLP和推理引擎的自適應學習
真正的AI級別的自適應學習,說的就是Level 4。如果拿自動駕駛技術來對比,這就是你可以撒手,不摸方向盤,不看路面,不聽導航,在汽車里睡覺,汽車就會安全送你到你的指定位置。達到這個水平的自適應學習系統(tǒng),可以做到拿到任何一道學科題目,就可以用多種策略得到正確答案(也就是最近高考機器人在比拼的事情),并且看到別人的答案時,判斷答案是否正確。
一個簡單粗暴的想法是略過推理引擎,直接拿著幾百萬道題目做char-rnn,但很顯然這個是不work的??梢哉J為答案就是如同程序代碼一樣的,是其內(nèi)在邏輯的,然而目前char-rnn是根本沒有能力生成任何有真實意義的代碼,最多只能生成一些格式上看起來正確,但是沒有任何含義的代碼。
這件事情如果要做成,必須死磕推理邏輯。畢竟一道題目里,學生可能會出現(xiàn)的錯誤類型實在是太多了。例如:
推導錯誤
計算錯誤
關鍵步驟順序不對
推導正確但原因不對
多次計算錯誤,但最終答案湊巧對了
用結論來“反證”結論
引入原本不存在的條件
冗余步驟
這個其實會像alphago一樣,除了一個深度學習的價值和策略網(wǎng)絡以外,也需要一個通曉邏輯的mcts,在數(shù)學運算這種場景下,一樣也是需要“閱讀理解”和“推理邏輯”兩個部分。
所以,整個過程應該是:
【識別】將題目的題干和相關圖片抽取成機器能讀懂的條件
【邏輯】判斷題目沒有邏輯錯誤,確實有解(小紅有三個蘋果,小明有四個,請問小紅多大了)
【邏輯】得出標準答案
【識別】如果學生是手寫的答案,先做圖像識別
【邏輯】如果是選擇,填空,直接對比學生的答案
【邏輯】如果是大題,驗證學生的推理過程是否完備,正確
【表達】判斷學生出錯的環(huán)節(jié),不告訴完整答案,而只是給學生一個點撥性的提示
【表達】AI與人之間可以以一種對話式的界面
對比當下的掃題軟件,學生哪里不會,去哪里抄答案。而這一的自適應學習系統(tǒng),則更是,哪里卡住了,算錯了,哪里小小地提醒一下。這種教學方法才是真正幫助學生成長和前進,當然這里也要防止部分學生利用提醒的機制不斷刷最終答案。
1、英語作文AI批改
回到了Level 0的例子了,只不過再也不需要老師的參與,AI直接對詞匯,短語,句式,語法,文章的邏輯性,結構,和文筆優(yōu)美度給出了打分和修改建議。目前的AI對于前面幾點(尤其國外的Grammarly公司)做得還可以,但是對于結構,邏輯,文筆,則是完全做不到。
2、一對一幾何課
還是Level 0的例子,老師這回是真的面臨失業(yè)了,全中國的每一個學生都配備了一個最厲害的AI老師,他能夠針對性地解決你的學習問題,你做題并不需要在電腦上做,依然是筆和紙,但是他隨時會提醒提示你,學習的過程由過去的很長時間才有反饋,變成了像游戲一樣,很快就有反饋和進步。
結論,一旦出現(xiàn)了Level 4級別的自適應學習,從Level 0到Level 3級別的都會收到巨大的顛覆,畢竟都能自動駕駛了,自然就不需要單獨的自動泊車技術。然而Level 4級別的難度非常高,無論是國內(nèi)還是國際上都是在探索階段。說實在,我這里沒有展開說算法,因為連我也不知道具體算法該怎么做。至于在Level 4之后,未來幾年會不會有沒有像移植記憶等黑科技,目前我們就不得而知了。
本文轉自微信公眾號“EduMax教育資本論”,作者胡天碩,原標題為《寄在線教育創(chuàng)業(yè)者:揭秘自適應學習的背后原理(中)》。
2、芥末堆不接受通過公關費、車馬費等任何形式發(fā)布失實文章,只呈現(xiàn)有價值的內(nèi)容給讀者;
3、如果你也從事教育,并希望被芥末堆報道,請您 填寫信息告訴我們。