從推薦算法出發(fā),談?wù)勵(lì)}庫(kù)個(gè)性化推題思路
個(gè)性化推薦、算法推薦這類(lèi)概念已經(jīng)在互聯(lián)網(wǎng)產(chǎn)品中十分常見(jiàn),那么,我們是否可以將個(gè)性化推薦概念應(yīng)用到在線學(xué)習(xí)領(lǐng)域,借助個(gè)性化推薦來(lái)提高學(xué)習(xí)效率?這篇文章里,作者談了談?lì)}庫(kù)個(gè)性化推題思路,一起來(lái)看一下。
在線教育提供了豐富的學(xué)習(xí)資源,也留下了大量學(xué)習(xí)者的學(xué)習(xí)數(shù)據(jù),如何據(jù)此實(shí)現(xiàn)個(gè)性化推題來(lái)提高學(xué)習(xí)效率是個(gè)值得研究的課題。本篇文章先以抖音為例研究了一下推薦算法的思路,再把思路應(yīng)用到題庫(kù)的個(gè)性化推題中。
為什么選擇了抖音?提到推薦算法,大部分人腦中閃過(guò)的第一個(gè)詞可能就是“抖音”,抖音容易讓人上癮靠得就是推薦算法。
根據(jù) Question Mobile 數(shù)據(jù)顯示,2023 年 9 月的抖音人均單日使用時(shí)長(zhǎng)從 2022 年 9 月的 108.4 分鐘提升至 115.2 分鐘。
一、推薦算法是什么
我們?cè)诙兑舻漠a(chǎn)品表面能看到的就是每次上滑的時(shí)候,都能刷出一個(gè)系統(tǒng)覺(jué)得你喜歡的視頻。那么推薦算法是什么呢?
一句話來(lái)說(shuō),推薦算法就是把合適的內(nèi)容推送給合適的人。
這個(gè)流程中體現(xiàn)出了三個(gè)過(guò)程:
- 斷物:讓算法識(shí)別物料
- 識(shí)人:讓算法識(shí)別人
- 推薦:匹配合適的內(nèi)容和人
要讓推薦系統(tǒng)識(shí)別用戶和物料并建立連接,需要將用戶和物料向量化——打標(biāo)簽。所以在推薦前的準(zhǔn)備工作,就是建立標(biāo)簽體系,并給物料和用戶都打上標(biāo)簽。
二、斷物:給物料打標(biāo)簽
斷物指的就是系統(tǒng)把物料進(jìn)行分析、歸類(lèi)、打標(biāo)簽。對(duì)于電商平臺(tái)來(lái)說(shuō),物料就是商品;對(duì)于文章資訊平臺(tái)來(lái)說(shuō),物料就是文章;對(duì)于題庫(kù)來(lái)說(shuō),物料就是試題。
1. 標(biāo)簽類(lèi)別
物料標(biāo)簽可以分為分類(lèi)標(biāo)簽和內(nèi)容標(biāo)簽:
- 分類(lèi)標(biāo)簽:主要是根據(jù)個(gè)業(yè)務(wù)的特點(diǎn)定制一套體系框架,將每個(gè)物料映射到框架中。比如谷歌的分類(lèi)體系;
- 內(nèi)容標(biāo)簽:描述主體內(nèi)容的開(kāi)放式詞匯集,很難提前制定完備的體系枚舉出每個(gè)詞匯,往往是一個(gè)無(wú)窮的集合。
分類(lèi)標(biāo)簽和內(nèi)容標(biāo)簽的區(qū)別:
分類(lèi)是一種嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)組織方式,一般按照一個(gè)或多個(gè)維度自上而下、從整體到明細(xì)的窮舉,遵循“相互獨(dú)立,完全窮舉”的原則。而內(nèi)容標(biāo)簽是一種靈活的數(shù)據(jù)組織方式,放棄大而全的框架。
簡(jiǎn)單來(lái)說(shuō),一個(gè)物料只能屬于一個(gè)分類(lèi),但是可以擁有一堆內(nèi)容標(biāo)簽。
2. 視頻怎么打標(biāo)簽
打標(biāo)簽最基礎(chǔ)的方式就是靠人工,但是內(nèi)容量過(guò)大時(shí),人工打標(biāo)簽效率會(huì)很低,所以需要機(jī)器來(lái)輔助,實(shí)現(xiàn)自動(dòng)打標(biāo)簽。怎么自動(dòng)給視頻打標(biāo)簽?zāi)兀?/p>
一般采用的是對(duì)視頻封面圖、關(guān)鍵幀圖片進(jìn)行圖像識(shí)別,提取音頻分析,提取字幕、視頻介紹等對(duì)文字進(jìn)行分析,從中抽取出標(biāo)簽,然后將得到的標(biāo)簽進(jìn)行整合,得到視頻的標(biāo)簽。
參考鏈接: 愛(ài)奇藝短視頻智能標(biāo)簽生成實(shí)踐
三、識(shí)人:建立用戶畫(huà)像
在建立用戶畫(huà)像之前,我們僅有用戶的行為數(shù)據(jù),這些無(wú)法直接用于數(shù)據(jù)分析和模型訓(xùn)練,所以需要將用戶的行為日志進(jìn)行處理,然后標(biāo)簽化,這樣我們對(duì)用戶就有了一個(gè)直觀的認(rèn)識(shí),同時(shí)計(jì)算機(jī)也能夠理解用戶,將用戶的行為信息用于個(gè)性化推薦、廣告精準(zhǔn)投放等領(lǐng)域。
用戶標(biāo)簽按生成方式來(lái)劃分包括三種:事實(shí)類(lèi)標(biāo)簽、模型類(lèi)標(biāo)簽、預(yù)測(cè)類(lèi)(基于機(jī)器學(xué)習(xí)挖掘)類(lèi)標(biāo)簽。
1. 事實(shí)標(biāo)簽
事實(shí)標(biāo)簽也叫統(tǒng)計(jì)標(biāo)簽,是根據(jù)實(shí)際發(fā)生的原始數(shù)據(jù)統(tǒng)計(jì)得到的(原始數(shù)據(jù)包括網(wǎng)站/app 日志、用戶填寫(xiě)的表單、消費(fèi)數(shù)據(jù)等等)。事實(shí)標(biāo)簽構(gòu)成了用戶畫(huà)像的基礎(chǔ),也是數(shù)量最多的一種標(biāo)簽。
比如:
- 人口屬性:性別/年齡/城市
- 最近 7/30/90 天購(gòu)買(mǎi)次數(shù)
- 首次購(gòu)買(mǎi)時(shí)間
- 每天登錄次數(shù)
- ……
2. 模型標(biāo)簽
模型標(biāo)簽以事實(shí)標(biāo)簽為基礎(chǔ),按照指定規(guī)則生成,用于對(duì)用戶分群。該類(lèi)標(biāo)簽與業(yè)務(wù)緊密結(jié)合,通常由數(shù)據(jù)人員和業(yè)務(wù)人員配合完成。
比如:
- 按購(gòu)課類(lèi)型:軟考、法考考生;
- 按活躍度:高活躍、中活躍、低活躍;
- 按消費(fèi):RFM 用戶分群模型(Recency、Frequency、Monetary)
按轉(zhuǎn)化:AARRR 轉(zhuǎn)化模型中從獲取的用戶到推薦的用戶分為五層。
3. 預(yù)測(cè)標(biāo)簽
預(yù)測(cè)標(biāo)簽通過(guò)機(jī)器學(xué)習(xí)挖掘產(chǎn)生,用于對(duì)用戶的某些缺失的屬性或某些行為進(jìn)行預(yù)測(cè)判斷。例如:根據(jù)根據(jù)用戶的行為數(shù)據(jù)預(yù)測(cè)用戶的性別,用戶的消費(fèi)習(xí)慣判斷其對(duì)某商品的偏好程度等。
這類(lèi)標(biāo)簽是通過(guò)概率模型產(chǎn)生,概率是介于 0-1 之間的數(shù)值。根據(jù)用戶消費(fèi)過(guò)的內(nèi)容(文本、圖片、視頻、商品等)數(shù)據(jù),機(jī)器自動(dòng)學(xué)習(xí)出用戶興趣、喜好等標(biāo)簽及其概率,通過(guò)全面、完整、細(xì)致地標(biāo)簽化來(lái)生成用戶的個(gè)性化特征。
比如:
小明的預(yù)測(cè)標(biāo)簽:「汽車(chē):0.1」,「寵物:0.8」,「航拍:0.7」
四、推薦流程
有了視頻的標(biāo)簽和用戶的畫(huà)像之后,我們就可以通過(guò)推薦算法去匹配視頻和用戶了。上面小明的興趣標(biāo)簽「汽車(chē):0.1」「寵物:0.8」「航拍:0.7」,我們可以直接給用戶推薦寵物內(nèi)容的視頻嗎?
在刷抖音的時(shí)候我們也能發(fā)現(xiàn),每次滑動(dòng)的時(shí)候推的往往不是固定的一個(gè)主題,即使同一個(gè)主題下面不同的視頻也會(huì)有個(gè)先后順序,所以我們需要有一個(gè)量化的方式來(lái)計(jì)算用戶對(duì)哪個(gè)視頻的喜愛(ài)度更高。
因?yàn)槎兑羰且o用戶推他最可能喜歡的視頻,而用戶在看視頻的過(guò)程中發(fā)生的任何互動(dòng)都能代表用戶對(duì)視頻的興趣,比如點(diǎn)贊、評(píng)論、不喜歡等等,所以抖音假設(shè)用戶看一個(gè)視頻產(chǎn)生的價(jià)值等于用戶在這個(gè)視頻上發(fā)生的所有互動(dòng)價(jià)值的總和。
舉個(gè)例子:小明打開(kāi)抖音,默認(rèn)進(jìn)入了推薦 tab,有一個(gè)視頻在自動(dòng)播放。小明很喜歡這個(gè)視頻,在看的過(guò)程中給視頻點(diǎn)了個(gè)贊。
這個(gè)過(guò)程中有兩種互動(dòng)——觀看&點(diǎn)贊。用戶在觀看視頻時(shí)的每一次互動(dòng)都有正面或者負(fù)面的價(jià)值,那么這次行為里面「小明觀看視頻」這件事情的價(jià)值是什么,「小明點(diǎn)贊」的價(jià)值又是什么呢?
1. 價(jià)值模型
在抖音平臺(tái)中,互動(dòng)的價(jià)值主要分為這樣幾種:
- 用戶價(jià)值:為當(dāng)前視頻被推給的用戶創(chuàng)造的價(jià)值,主要是當(dāng)前用戶的時(shí)長(zhǎng)、留存、滿意度等。
- 作者價(jià)值:為視頻的作者創(chuàng)造的價(jià)值,包括作者獲得的流量、互動(dòng)、收入等。
- 平臺(tái)價(jià)值:為平臺(tái)創(chuàng)造的價(jià)值,包括品牌效應(yīng)、內(nèi)容安全、平臺(tái)收入等。
- 間接價(jià)值:本次視頻的播放間接產(chǎn)生的價(jià)值,如評(píng)論后其他用戶收到通知可能提升其他用戶的留存,對(duì)內(nèi)容生態(tài)產(chǎn)生的影響等。
用戶的每次互動(dòng),都可能帶有上面的一種或多種價(jià)值。
想要衡量發(fā)生互動(dòng)的價(jià)值,我們需要引入價(jià)值模型(V)。我們以點(diǎn)贊互動(dòng)為例,用V_{like}來(lái)表示點(diǎn)贊的價(jià)值模型,來(lái)看一下小明這次點(diǎn)贊會(huì)產(chǎn)生哪些價(jià)值。
首先來(lái)拆解一下「小明點(diǎn)贊」這個(gè)行為有上面哪些價(jià)值:
用戶價(jià)值:
- 小明給這個(gè)視頻點(diǎn)了贊,說(shuō)明小明喜歡這個(gè)視頻,所以這次點(diǎn)贊應(yīng)該有正面的用戶價(jià)值(公式中的 1);
- 視頻被點(diǎn)贊的次數(shù)(u_like_cnt)越多,再點(diǎn)贊時(shí)的用戶價(jià)值越高,因?yàn)橄矚g的人多,所以給高贊視頻點(diǎn)贊的價(jià)值更高(這樣可以保證其他參數(shù)都相同時(shí),優(yōu)先推點(diǎn)贊數(shù)高的視頻);
- 小明今天對(duì)這一類(lèi)視頻已經(jīng)點(diǎn)過(guò)了好多次贊(same_tag_today),點(diǎn)的贊越多越可能產(chǎn)生審美疲勞,這次點(diǎn)贊的用戶價(jià)值也會(huì)變得越低,所以點(diǎn)贊也會(huì)有一個(gè)負(fù)向的價(jià)值;
作者價(jià)值:
小明點(diǎn)贊增加了這個(gè)視頻的點(diǎn)贊數(shù),對(duì)作者有激勵(lì)作用,特別是在低贊(is_like_lower_than_100)的時(shí)候,所有點(diǎn)贊也有作者價(jià)值;
平臺(tái)價(jià)值:
如果視頻是騙贊視頻(is_like_bait),給它們過(guò)多的贊可能影響整體生態(tài),所以在騙贊視頻上的點(diǎn)贊可能會(huì)有負(fù)向的平臺(tái)價(jià)值。
所以:
V_{like}=1 + u_like_cnt*0.01 – same_tag_today*0.5 + is_like_lower_than_100*10 – is_like_bait*100
由上面公式可以看出,同一個(gè)用戶給不同的視頻點(diǎn)贊產(chǎn)生的價(jià)值是不同的,不同的用戶給同一個(gè)視頻點(diǎn)贊產(chǎn)生的價(jià)值也是不同的。
價(jià)值模型是對(duì)應(yīng)該給用戶推薦什么視頻的理解,計(jì)算方式不是一成不變的,需要反復(fù)優(yōu)化參數(shù)和權(quán)重,才能達(dá)到最好的效果。對(duì)價(jià)值模型做優(yōu)化,需要把每個(gè)互動(dòng)的價(jià)值分解清楚,從而最大化視頻推薦獲得的收益。
理解了價(jià)值模型之后,再看開(kāi)頭的例子,小明看過(guò)視頻,點(diǎn)過(guò)贊,沒(méi)有發(fā)生其他互動(dòng)。那么這次視頻觀看的實(shí)際價(jià)值就是:
如果小明還做過(guò)其他互動(dòng)呢?短視頻中都包括哪些互動(dòng)方式——播放、點(diǎn)贊、收藏、評(píng)論、分享、不喜歡、關(guān)注作者等,前面提過(guò)用戶看一個(gè)視頻產(chǎn)生的價(jià)值等于用戶在這個(gè)視頻上發(fā)生的所有互動(dòng)價(jià)值的總和,所以總價(jià)值:
2. 預(yù)測(cè)模型
我們應(yīng)該給用戶推送價(jià)值最高的視頻。但是我們給用戶推送視頻的時(shí)候,互動(dòng)還沒(méi)有發(fā)生,我們?cè)鯓尤ビ?jì)算實(shí)際產(chǎn)生的價(jià)值呢?
我們要預(yù)測(cè)視頻推送給用戶之后每個(gè)互動(dòng)發(fā)生的概率,用價(jià)值的期望值來(lái)替代實(shí)際發(fā)生的價(jià)值來(lái)衡量。因此需要引入預(yù)測(cè)模型(P)。
預(yù)測(cè)模型是在排序時(shí)預(yù)測(cè)一切未知的事情發(fā)生的概率的模型。預(yù)測(cè)模型一般是機(jī)器學(xué)習(xí)模型,它們用視頻和用戶相關(guān)的數(shù)據(jù)做輸入,輸出一件事情發(fā)生的概率。模型的輸入叫做特征,輸出叫做預(yù)估。
常見(jiàn)的預(yù)測(cè)模型包括兩類(lèi):
- 預(yù)測(cè)是否發(fā)生:點(diǎn)贊、評(píng)論等互動(dòng)是否會(huì)發(fā)生,有多大概率發(fā)生;
- 預(yù)測(cè)實(shí)際值:播放時(shí)長(zhǎng)、個(gè)人頁(yè)停留時(shí)長(zhǎng)等;
預(yù)測(cè)模型的輸入特征可以分成這樣幾部分:
- 用戶相關(guān)信息。如用戶 id、用戶地域、用戶歷史互動(dòng)統(tǒng)計(jì)、用戶最近看過(guò)的視頻 id 列表等。
- 視頻相關(guān)信息。如視頻 id、視頻時(shí)長(zhǎng)、視頻貼紙、視頻內(nèi)容、視頻互動(dòng)統(tǒng)計(jì)等。
- 作者相關(guān)信息。如作者 id、作者粉絲數(shù)、作者歷史統(tǒng)計(jì)等。
- 其他信息。
預(yù)測(cè)模型是個(gè)性化的,比如點(diǎn)贊模型預(yù)測(cè)的是當(dāng)前用戶在當(dāng)前場(chǎng)景下,看到當(dāng)前視頻,點(diǎn)贊的概率。同一個(gè)視頻,對(duì)于不同的觀看者或在不同環(huán)境下的同一個(gè)觀看者,預(yù)測(cè)出的概率也是不同的,拿一個(gè)明星視頻舉例:
- 這個(gè)明星的粉絲和非粉絲點(diǎn)贊的概率是不同的;
- 這個(gè)明星的粉絲,在剛打開(kāi)抖音時(shí)看到這個(gè)視頻和已刷膩快要退出的時(shí)候看到這個(gè)視頻,點(diǎn)贊的概率也是不同的。
3. 排序公式
推薦系統(tǒng)的目標(biāo)就是把價(jià)值最高的視頻推給用戶,引入預(yù)測(cè)模型(P)后,我們用期望值來(lái)代替實(shí)際發(fā)生的價(jià)值,所以價(jià)值公式就變成了樣子:
根據(jù)這個(gè)公式把候選集里的視頻分別計(jì)算一下,按分值大小排序,分值最高的就是下一個(gè)要推薦給用戶的視頻。
4. 篩選視頻
抖音有幾十億條視頻,我們不可能直接把全部的視頻按上面的公式跑一下,計(jì)算出最高值的視頻作為下一個(gè)推薦的內(nèi)容,因?yàn)閿?shù)據(jù)量太大了。那么怎么從中選擇出來(lái)要推薦的視頻呢?
直接從大池子里撈不現(xiàn)實(shí),所以預(yù)先會(huì)維護(hù)一個(gè)小池子,可以叫推薦池。推薦池對(duì)所有用戶是幾乎完全一致的,通常包括比較新的視頻和表現(xiàn)比較好的老視頻。
用戶每次請(qǐng)求推薦流時(shí),推薦服務(wù)會(huì)從推薦池中通過(guò)多個(gè)召回源初步選取幾千或者上萬(wàn)個(gè)視頻,再用上面的公式進(jìn)行計(jì)算。
召回源主要分兩種:
- 基于模型的召回:給推薦池中全部視頻按照模型打分排序,選擇得分最高的視頻,比如 like 模型-召回用戶最可能點(diǎn)贊的視頻。
- 基于屬性的召回:根據(jù)用戶的屬性,召回一系列視頻,比如同城召回、好友召回等等。
比如:
- 點(diǎn)贊召回 100 個(gè)視頻:視頻 A1(預(yù)測(cè)點(diǎn)贊概率 32.5%)、視頻 A2(27.4%)、視頻 A3(27.1%)…
- 同城召回 300 個(gè)視頻:視頻 B1(豐臺(tái)區(qū))、視頻 B2(西城區(qū))…
- 好友召回 10 個(gè)視頻:視頻 C1(好友 A 發(fā)布)、視頻 C2(好友 B 發(fā)布)…
- ……
所有召回的視頻形成一個(gè)序列,就可以用上面的公式計(jì)算得分來(lái)排序了。
5. 效果評(píng)估
怎么評(píng)估排序的效果好不好呢?主要是兩個(gè)步驟:
第一步:離線評(píng)估
在離線準(zhǔn)備好的驗(yàn)證集上進(jìn)行數(shù)據(jù)驗(yàn)證,如果效果優(yōu)于先前的模型數(shù)據(jù),則進(jìn)行第二步,這里的效果包含多個(gè)指標(biāo),比如準(zhǔn)確率、覆蓋率、多樣性等,在不同階段側(cè)重的指標(biāo)也許是不一樣的,這個(gè)就是產(chǎn)品經(jīng)理要去把控確定的,當(dāng)前這一產(chǎn)品階段側(cè)重點(diǎn)在哪里或者是怎么去取舍平衡。
第二步:線上實(shí)驗(yàn)
直接對(duì)于線上用戶進(jìn)行 AB 分桶實(shí)驗(yàn),先小流量實(shí)驗(yàn)一段時(shí)間,一般在 10 天到半個(gè)月左右,對(duì)比實(shí)驗(yàn)組和對(duì)照組數(shù)據(jù);如果實(shí)驗(yàn)數(shù)據(jù)為正向,則推到更多的用戶;如數(shù)據(jù)持續(xù)穩(wěn)定,則推全到所有用戶。
??抖音的推薦流程中哪些思路可以用在教育中?
抖音推薦流程中的核心在于對(duì)不同互動(dòng)價(jià)值的拆解,并且可以根據(jù)戰(zhàn)略發(fā)展重心來(lái)不斷調(diào)整計(jì)算公式中的參數(shù)和權(quán)重。這個(gè)思路是可以借鑒的。
五、題庫(kù)個(gè)性化推題
個(gè)性化推題是個(gè)性化學(xué)習(xí)中的一個(gè)環(huán)節(jié)。個(gè)性化學(xué)習(xí)是個(gè)比較大的概念,它可以根據(jù)學(xué)員設(shè)定的目標(biāo)和可投入時(shí)間生成符合學(xué)員自身訴求的個(gè)性化學(xué)習(xí)路線,讓“學(xué)-練-背-考”各個(gè)環(huán)節(jié)都適應(yīng)學(xué)員自身。我們本次只針對(duì)學(xué)員在題庫(kù)練習(xí)中的智能推題部分。
俗話說(shuō),他山之石,可以攻玉。從上面抖音的推薦流程,我們可以推理出題庫(kù)中的題目推薦流程,實(shí)現(xiàn)學(xué)員的個(gè)性化學(xué)習(xí)。
推題的邏輯按以下幾個(gè)步驟:
- 打標(biāo)簽:給題目和用戶打標(biāo)簽,建立用戶的能力模型;
- 篩選題目:通過(guò)多種召回方式,從題庫(kù)的所有題目中召回可能適合當(dāng)前學(xué)員的一些試題;
- 讀取數(shù)據(jù):讀取學(xué)員的基本信息、學(xué)習(xí)水平、學(xué)習(xí)進(jìn)度、學(xué)習(xí)偏好、學(xué)習(xí)目標(biāo)等數(shù)據(jù)和題目的標(biāo)簽數(shù)據(jù);
- 計(jì)算得分排序:通過(guò)模型計(jì)算候選集中對(duì)學(xué)員提升知識(shí)點(diǎn)掌握水平最高的試題作為下一個(gè)推薦的目標(biāo);
- 收集反饋:收集學(xué)員的作答結(jié)果和定性反饋,評(píng)估效果,不斷迭代優(yōu)化模型中的參數(shù)。
1. 題標(biāo)簽
??對(duì)題目來(lái)說(shuō),最主要的標(biāo)簽就是知識(shí)點(diǎn),但是讓機(jī)器去理解題目考查的知識(shí)點(diǎn)內(nèi)容比較困難,也不夠準(zhǔn)確,所以主要采用人工打標(biāo)簽的方式,靠教師專(zhuān)家去標(biāo)注知識(shí)點(diǎn)。
題目標(biāo)簽的維度:
- 學(xué)科:法考、軟考、考研英語(yǔ)等;
- 內(nèi)容:知識(shí)點(diǎn);
- 類(lèi)型:選擇題、填空題、主觀題等;
- 能力:記憶、理解、分析、創(chuàng)造等;
- 難度:1、2、3 或簡(jiǎn)單、中等、困難;(題目難度是對(duì)學(xué)員能力水平的衡量,難度標(biāo)簽可以在創(chuàng)建題目時(shí)人工創(chuàng)建初始值,在實(shí)際使用的過(guò)程中,根據(jù)學(xué)員作答情況去修正)
- 區(qū)分度:題目對(duì)學(xué)員的區(qū)分能力,區(qū)分度高的試題能更好地將不同水平的考生區(qū)分開(kāi);(題目的區(qū)分度靠機(jī)器根據(jù)題目對(duì)學(xué)員的區(qū)分情況自動(dòng)生成)
2. 用戶標(biāo)簽->能力模型
考試類(lèi)學(xué)科用戶的能力體現(xiàn)在什么地方——體現(xiàn)在對(duì)知識(shí)點(diǎn)的掌握,對(duì)所有知識(shí)點(diǎn)的掌握水平越高,考試的時(shí)候就越容易考高分。
但知識(shí)點(diǎn)依托于題目,我們沒(méi)辦法直接得到學(xué)員對(duì)知識(shí)點(diǎn)是否掌握,只能通過(guò)學(xué)員作答題目的情況來(lái)分析他對(duì)知識(shí)點(diǎn)的掌握情況。學(xué)員對(duì)某個(gè)知識(shí)點(diǎn)的掌握水平越高,答對(duì)對(duì)應(yīng)題目的概率就越高。
如上圖,橫坐標(biāo)表示學(xué)員對(duì)知識(shí)點(diǎn)的掌握水平,縱坐標(biāo)是答對(duì)某題的概率,隨著學(xué)員對(duì)知識(shí)點(diǎn)掌握水平提高,答對(duì)概率會(huì)無(wú)限趨近于 1。
除了知識(shí)點(diǎn)掌握水平,還有哪些因素影響學(xué)員作答是否正確呢?
一是題目的猜測(cè)系數(shù)。做題的時(shí)候除了答對(duì),還能蒙對(duì),比如不會(huì)就選 C。猜測(cè)系數(shù)是哪怕學(xué)員掌握水平極低,純憑猜測(cè)也有答對(duì)題目的概率(我們用c表示),在圖中的表示就是曲線和縱軸的交點(diǎn)。對(duì)于四個(gè)選項(xiàng)的單選題來(lái)說(shuō),猜測(cè)系數(shù)就是0.25。
二是題目的難度。同一個(gè)知識(shí)點(diǎn)下有不同難度的題目,學(xué)員對(duì)知識(shí)點(diǎn)的掌握水平相同的情況下,答對(duì)的概率也不一樣,題目的難度越高,答對(duì)的概率就會(huì)越低,如下圖。(題目的難度我們用d來(lái)表示)
題目的難度是反映答對(duì)題目所需要的對(duì)知識(shí)點(diǎn)的掌握水平,這是同一個(gè)維度的東西。從上圖中可以看出,學(xué)員對(duì)知識(shí)點(diǎn)的掌握水平和題目難度相等的時(shí)候,答對(duì)題目的概率是 0.5。
這個(gè) 0.5 的含義不是說(shuō)學(xué)員每次作答時(shí)一定有 50%的幾率答對(duì)問(wèn)題,而是表示在學(xué)員能力和題目難度匹配的情況下,通過(guò)大量重復(fù)試驗(yàn),學(xué)員答對(duì)和答錯(cuò)的機(jī)會(huì)是相等的,就和拋硬幣一樣。
第三個(gè)因素是題目的區(qū)分度(我們用a來(lái)表示)。題目的區(qū)分度越高,我們?cè)侥軈^(qū)分出不同掌握水平的學(xué)員。表示在圖上就是曲線拐點(diǎn)處的斜率,區(qū)分度越高,斜率越大,學(xué)員對(duì)知識(shí)點(diǎn)的掌握水平提升一點(diǎn),答對(duì)的概率會(huì)提升很多。
我們用什么公式來(lái)表示上面圖中的曲線呢?因?yàn)榇饘?duì)題的概率:
所以采用邏輯回歸函數(shù)表示。
??邏輯回歸的公式如下,這種方式可以把輸入的任意 x 值轉(zhuǎn)化為[0,1]之間的數(shù):
那么把上面的知識(shí)點(diǎn)掌握水平、題目猜測(cè)系數(shù)、題目區(qū)分度、題目難度代入公式,知識(shí)點(diǎn)掌握水平比題目難度高的越多,答對(duì)概率就會(huì)越高。題目的區(qū)分度會(huì)放大知識(shí)點(diǎn)掌握水平和題目難度的差值。所以題目區(qū)分度越高,知識(shí)點(diǎn)掌握水平與題目難度的差值與答對(duì)概率正相關(guān)性越大。
因此學(xué)員答對(duì)題目的概率:
這個(gè)公式就是項(xiàng)目反應(yīng)理論(IRT)的核心內(nèi)容。
我們把所有學(xué)員對(duì)每個(gè)題的歷史作答記錄都放入公式中(答對(duì)的題目 P=1,答錯(cuò)的題目 P=0),可以計(jì)算出這四個(gè)參數(shù),數(shù)據(jù)越多,計(jì)算出的參數(shù)的精度越高。
(具體的計(jì)算過(guò)程比較復(fù)雜,可以參考 項(xiàng)目反應(yīng)理論(IRT)詳解 – 知乎 )
有了學(xué)員對(duì)知識(shí)點(diǎn)的掌握程度和題目屬性之后,我們就可以將用戶要做的題目的猜測(cè)系數(shù)、區(qū)分度、題目難度和學(xué)員的知識(shí)點(diǎn)掌握水平代入這個(gè)公式,來(lái)預(yù)測(cè)用戶做對(duì)的概率。
3. 需完善的問(wèn)題
1)能力值的參考
上面這種方式我們可以計(jì)算出用戶對(duì)某個(gè)知識(shí)點(diǎn)掌握水平的絕對(duì)值,但這個(gè)值代表的意義是什么?比如用戶對(duì)知識(shí)點(diǎn) a 的掌握水平是 11.3,沒(méi)有外顯的價(jià)值。
外顯的內(nèi)容應(yīng)該是用戶可以直接感受到的,比如考試的預(yù)估分。因此,掌握水平的值達(dá)到多少可以在考試中取得多少分?jǐn)?shù),還需要補(bǔ)充其他維度的數(shù)據(jù)。
這方面可以通過(guò)助教的考后服務(wù)或者考后估分工具來(lái)收集學(xué)員在考試中的作答情況,以此與學(xué)員的能力模型形成關(guān)聯(lián),比如:學(xué)員 A 掌握知識(shí)點(diǎn) a 的水平 11.3,掌握知識(shí)點(diǎn) b 的水平 5.6…考試中知識(shí)點(diǎn)a的題目3題全對(duì),知識(shí)點(diǎn)b的題目對(duì)1錯(cuò)1…整體考了178分。
數(shù)據(jù)量大之后,我們就可以建立模型,根據(jù)學(xué)員對(duì)每個(gè)知識(shí)點(diǎn)的掌握水平結(jié)合考試中知識(shí)點(diǎn)出現(xiàn)的概率來(lái)預(yù)測(cè)這個(gè)學(xué)員在考試中能夠考多少分。
2)學(xué)習(xí)曲線和遺忘曲線
這個(gè)公式只能計(jì)算到當(dāng)前狀態(tài)下學(xué)員對(duì)知識(shí)點(diǎn)的掌握程度,但學(xué)員對(duì)知識(shí)點(diǎn)的掌握水平不僅會(huì)隨著學(xué)習(xí)的過(guò)程提高,也會(huì)隨著時(shí)間推移降低。
學(xué)習(xí)曲線理論:隨著持續(xù)性的嘗試和練習(xí),學(xué)員能夠習(xí)得相關(guān)知識(shí)。
遺忘曲線理論:隨著時(shí)間推移,學(xué)員對(duì)于知識(shí)的記憶也越來(lái)越差,其知識(shí)水平會(huì)呈現(xiàn)下降趨勢(shì)。
所以我們?cè)谟?jì)算學(xué)員對(duì)知識(shí)點(diǎn)的掌握程度時(shí),需要引入記憶因子和遺忘因子,這是需要完善的地方。
4. 篩選題目
當(dāng)前現(xiàn)狀最多的學(xué)科才幾千道題,幾萬(wàn)道題以內(nèi)大概率不太需要召回,直接全量跑即可,如果題目多形成題海的話才需要一些召回方式。
在題庫(kù)中可能會(huì)用到的一些召回方式如下:
- 掌握水平低的知識(shí)點(diǎn)對(duì)應(yīng)的題目;
- 沒(méi)做過(guò)的知識(shí)點(diǎn)的題目,完善學(xué)員能力模型;
- 高頻考點(diǎn)對(duì)應(yīng)的題目;
- 其他相似用戶在本階段練習(xí)的題目(用戶協(xié)同);
- 全站難題易錯(cuò)題;
- 短期內(nèi)波動(dòng)的知識(shí)點(diǎn)的題目;
- 長(zhǎng)期未練習(xí)的知識(shí)點(diǎn)的題目;
5. 計(jì)算得分排序
我們應(yīng)該給學(xué)員推什么樣的題目?
就和抖音不會(huì)直接推用戶喜愛(ài)度最高的標(biāo)簽的視頻一樣,我們也不能直接推用戶掌握水平最低的知識(shí)點(diǎn)對(duì)應(yīng)的題目,這種單一的推薦目標(biāo)是不合理的。比如一個(gè)學(xué)員未掌握知識(shí)點(diǎn) a,我們一直給學(xué)員推考察知識(shí)點(diǎn) a 的題目,其中可能會(huì)包含難度遠(yuǎn)超出學(xué)員水平的題目,導(dǎo)致學(xué)員在學(xué)習(xí)過(guò)程中產(chǎn)生挫敗感。
??抖音推給用戶的是 ta 喜歡的視頻,用戶在一個(gè)視頻上發(fā)生的所有互動(dòng)都能代表他是不是喜歡這個(gè)視頻,所以抖音通過(guò)計(jì)算用戶在視頻上的互動(dòng)價(jià)值之和來(lái)推薦值最大的視頻。
但在做題的場(chǎng)景下,我們需要考慮的是提升用戶對(duì)知識(shí)點(diǎn)的掌握水平,除了作答這種互動(dòng)方式之外,其他的比如收藏題目、做筆記都是做完題后置的互動(dòng)過(guò)程,這些對(duì)評(píng)估掌握水平幫助有限。所以我們不能直接采用每種互動(dòng)價(jià)值加和的方式來(lái)計(jì)算推送題目的價(jià)值。
抖音價(jià)值的計(jì)算拆解的是互動(dòng)行為,題庫(kù)中需要考慮學(xué)員在學(xué)習(xí)過(guò)程中的諸多學(xué)習(xí)需求,因此,我們?cè)谧鐾扑]時(shí)拆解的是目標(biāo),讓推薦的題目滿足每個(gè)目標(biāo)的價(jià)值加和最大。
需要考慮以下三個(gè)目標(biāo):
- 復(fù)習(xí)與探索:不僅需要幫助學(xué)員及時(shí)查漏補(bǔ)缺,讓他們復(fù)習(xí)掌握水平不高的知識(shí),還需要在合適的時(shí)候,即使某些知識(shí)未完全掌握,讓他們學(xué)習(xí)新的知識(shí);
- 難度平滑性:學(xué)員知識(shí)學(xué)習(xí)的過(guò)程是循序漸進(jìn)的,推薦題目的難度不應(yīng)該變化過(guò)大,算法需要自適應(yīng)調(diào)整使得被推薦題目的難度更加平滑;
- 學(xué)習(xí)熱情:在線學(xué)習(xí)系統(tǒng)需要持續(xù)保持學(xué)生學(xué)習(xí)的熱情,這是一個(gè)比較抽象的概念。一個(gè)合理的推薦算法,需要推薦一部分具有挑戰(zhàn)性的題目,而保留一些“送分題”給學(xué)員,從而使他們保持學(xué)習(xí)熱情。
綜合這三個(gè)目標(biāo),來(lái)找出對(duì)用戶知識(shí)點(diǎn)掌握水平提升幫助最大的題目。接下來(lái)我們需要把每個(gè)目標(biāo)的價(jià)值量化:
1)復(fù)習(xí)與探索
目標(biāo) 1 的價(jià)值用V1表示。
我們需要全面了解學(xué)員對(duì)各知識(shí)點(diǎn)的掌握水平,所以優(yōu)先應(yīng)該推薦學(xué)員未做過(guò)的知識(shí)點(diǎn)。因此,系統(tǒng)推薦新知識(shí)點(diǎn)的題目時(shí),賦給這個(gè)目標(biāo)的價(jià)值一個(gè)正的值:
若學(xué)員在每個(gè)知識(shí)點(diǎn)下均做過(guò)題目,優(yōu)先推其掌握水平低的知識(shí)點(diǎn)的題目(還需結(jié)合知識(shí)點(diǎn)的考頻),所以推的題目學(xué)員掌握水平越低,價(jià)值應(yīng)該越高。仍然采用邏輯回歸公式:
可以控制價(jià)值的值在β2到 0 之間;
如果學(xué)員答錯(cuò)了當(dāng)前的題目,我們希望能讓用戶再次做相同知識(shí)點(diǎn)的題目,來(lái)確定學(xué)員的狀態(tài),所以此時(shí)推薦系統(tǒng)推薦不同知識(shí)點(diǎn)的題目時(shí),給予懲罰,賦給這個(gè)目標(biāo)的價(jià)值一個(gè)負(fù)的值:
β1、β2、β3是可調(diào)的參數(shù),如果希望學(xué)習(xí)新知識(shí)的機(jī)會(huì)高一些,可以調(diào)高β1的值。
2)難度平滑性
目標(biāo) 2 的價(jià)值用V2表示,難度平滑性體現(xiàn)在要推的題目和上一個(gè)題目的難度是否接近,臨近兩個(gè)題目的難度越接近,目標(biāo)的收益也應(yīng)該越大。
所以我們用兩個(gè)題的難度差值的平方取負(fù)數(shù)來(lái)表示,這樣兩個(gè)題目難度越接近V2值越大(越趨近于 0),總收益越大。
3)學(xué)習(xí)熱情
如果一直給學(xué)員推薦極簡(jiǎn)單或者極難的題,都會(huì)讓學(xué)員對(duì)結(jié)果不滿意,我們需要讓推的題符合學(xué)員的學(xué)習(xí)目標(biāo),來(lái)讓學(xué)員保持學(xué)習(xí)熱情。如果學(xué)員一直做對(duì)題目,需要提高推薦題目的難度;如果學(xué)員一直做錯(cuò)題目,那么就需要降低推薦題目的難度。
這個(gè)目標(biāo)價(jià)值衡量的基本思想是:學(xué)員最近做題的表現(xiàn)與設(shè)置的目標(biāo)因子越接近,價(jià)值應(yīng)該越高。
這里面我們引入一個(gè)學(xué)習(xí)目標(biāo)因子:
可以通過(guò)學(xué)員自己設(shè)置的目標(biāo)來(lái)對(duì)應(yīng),也可以根據(jù)學(xué)員的表現(xiàn)自動(dòng)調(diào)整。
我們假設(shè)即將要推的題目是 t,回顧學(xué)員最近 N 次的學(xué)習(xí)記錄(答對(duì) p=1,答錯(cuò) p=0),結(jié)合即將要推的題的預(yù)測(cè)答對(duì)概率,計(jì)算其平均表現(xiàn)。因此目標(biāo) 3 的價(jià)值公式用V3表示:
學(xué)員如果希望獲得具有挑戰(zhàn)性的學(xué)習(xí)體驗(yàn),可以設(shè)置較低的 g 數(shù)值。
舉個(gè)例子:比如學(xué)習(xí)目標(biāo)因子是 0.8 的學(xué)員最近 10 題的表現(xiàn)為 0,1,0,1,1,0,1,0,1,1,我們的窗口題數(shù) N 設(shè)為 6,那么:
我們現(xiàn)在有兩個(gè)題,一個(gè)答對(duì)概率是 0.2,一個(gè)答對(duì)概率是 0.8,計(jì)算一下就知道此時(shí)推答對(duì)概率高的題目當(dāng)前目標(biāo)的價(jià)值值更大。
綜上,每個(gè)目標(biāo)的價(jià)值在總價(jià)值中會(huì)有不同的權(quán)重,給每個(gè)目標(biāo)設(shè)置一個(gè)權(quán)重系數(shù) λ ,那么推一個(gè)題目的總的收益公式如下:
公式中的權(quán)重系數(shù)可以根據(jù)需求來(lái)調(diào)整,如果更關(guān)注推的題目難度的平滑性,就可以通過(guò)調(diào)高 λ2 的值來(lái)實(shí)現(xiàn)。用這個(gè)公式將候選集中的題目計(jì)算后,收益最高的題目就是接下來(lái)要推的題目。
當(dāng)然,以上僅是設(shè)想的思路,但在實(shí)際應(yīng)用過(guò)程中是否可行,還需要根據(jù)使用情況,不斷調(diào)整優(yōu)化公式中的參數(shù)和權(quán)重,找到最合適的計(jì)算方式。
本文由 @YTY 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
雖然部分內(nèi)容有些難以理解,但是覺(jué)得思路是對(duì)的,值得反復(fù)琢磨,收藏一下
路過(guò),點(diǎn)贊,文章內(nèi)容十分棒
路過(guò),點(diǎn)個(gè)贊,好文章
非常棒的文章,收獲很多!我是一名大二計(jì)算機(jī)專(zhuān)業(yè)學(xué)生,剛剛了解產(chǎn)品經(jīng)理,請(qǐng)問(wèn)這屬于產(chǎn)品經(jīng)理的哪個(gè)方向呢?
這個(gè)屬于在線教育領(lǐng)域的推薦策略,可能偏策略產(chǎn)品
最近投了美團(tuán)的策略產(chǎn)品實(shí)習(xí),這篇文章講的內(nèi)容幫助了我很多,謝謝!