孟 俊,周琪云,曲彥文
(江西師范大學(xué) 計(jì)算機(jī)信息工程學(xué)院,江西 南昌 330022)
個(gè)性化內(nèi)容推薦服務(wù),在諸多領(lǐng)域已有應(yīng)用,如電商平臺(tái)[1],教育領(lǐng)域同樣如此?;ヂ?lián)網(wǎng)中知識(shí)內(nèi)容日益繁雜,學(xué)習(xí)者很難快速定位想要的知識(shí)內(nèi)容,為此研究通過(guò)優(yōu)化各種信息推薦算法使得信息更加快速準(zhǔn)確到達(dá)學(xué)習(xí)者手中,實(shí)現(xiàn)學(xué)習(xí)資源個(gè)性化推薦。有效個(gè)性化學(xué)習(xí)內(nèi)容將提高學(xué)習(xí)者學(xué)習(xí)效果[2]。目前個(gè)性化推薦算法主要分為:基于內(nèi)容過(guò)濾的推薦算法與協(xié)同過(guò)濾推薦算法?;趦?nèi)容過(guò)濾的推薦算法依據(jù)“用戶(hù)—資源”關(guān)系決定推薦內(nèi)容,通過(guò)分析用戶(hù)過(guò)去對(duì)教學(xué)資源選擇、訪(fǎng)問(wèn)或評(píng)價(jià)的情況,獲取用戶(hù)感興趣的內(nèi)容,并向用戶(hù)推薦同類(lèi)教學(xué)資源;協(xié)同過(guò)濾推薦算法依據(jù)“用戶(hù)—用戶(hù)”關(guān)系決定推薦內(nèi)容,根據(jù)用戶(hù)興趣的相似性,把其他用戶(hù)感興趣的教學(xué)資源推薦給該用戶(hù)。這兩種方法各有優(yōu)缺點(diǎn)?;趦?nèi)容過(guò)濾的推薦算法注重用戶(hù)當(dāng)前興趣,協(xié)同過(guò)濾推薦算法則能夠?yàn)橛脩?hù)發(fā)現(xiàn)新的、潛在的感興趣的資源,所以在實(shí)踐中將這兩種算法結(jié)合使用,會(huì)取得較好效果,但這種方法并不能快速查找適合學(xué)習(xí)者需求的內(nèi)容。
為學(xué)習(xí)者快速推薦符合需求的內(nèi)容,節(jié)約在線(xiàn)查找時(shí)間是在線(xiàn)學(xué)習(xí)系統(tǒng)未來(lái)發(fā)展趨勢(shì)。本文提出基于詞向量的學(xué)科學(xué)習(xí)內(nèi)容推薦方法,該方法用于解決學(xué)習(xí)者學(xué)科內(nèi)容知識(shí)學(xué)習(xí)的不足,彌補(bǔ)學(xué)習(xí)者學(xué)習(xí)盲點(diǎn)?;谠~向量的學(xué)科內(nèi)容推薦方法對(duì)大量學(xué)科文本進(jìn)行詞向量訓(xùn)練。詞向量是一種能夠有效體現(xiàn)文本特征的表示方法,同時(shí)詞向量也可作為計(jì)算文檔關(guān)鍵詞的基礎(chǔ)數(shù)據(jù)。文檔關(guān)鍵詞計(jì)算完成后,將學(xué)習(xí)者的學(xué)習(xí)需求(學(xué)習(xí)內(nèi)容、知識(shí)點(diǎn)等)設(shè)計(jì)成關(guān)鍵詞——學(xué)科知識(shí)文檔算法(KeyWords-to-documents)。
KeyWords-to-documents算法設(shè)計(jì)過(guò)程可描述為:①獲取學(xué)習(xí)者學(xué)習(xí)需求,將學(xué)習(xí)需求使用文本詞向量表征;②計(jì)算學(xué)科知識(shí)文檔的詞向量關(guān)鍵詞,依據(jù)關(guān)鍵詞匹配相似學(xué)習(xí)需求文檔詞向量;③使用top-n關(guān)鍵詞與文檔的匹配方法,將學(xué)科知識(shí)文檔推薦給學(xué)習(xí)者。
在線(xiàn)學(xué)習(xí)過(guò)程中,眾多學(xué)習(xí)平臺(tái)都會(huì)留下學(xué)習(xí)者的學(xué)習(xí)足跡,使研究者能夠跟蹤學(xué)習(xí)者學(xué)習(xí)內(nèi)容,了解學(xué)習(xí)者學(xué)習(xí)需求。本文根據(jù)學(xué)習(xí)者學(xué)習(xí)內(nèi)容及學(xué)習(xí)者需要了解的知識(shí)點(diǎn),基于詞向量提出知識(shí)內(nèi)容推薦流程,如圖1所示。
圖1 學(xué)科內(nèi)容推薦流程
學(xué)習(xí)者學(xué)習(xí)的知識(shí)及搜索過(guò)的知識(shí)點(diǎn),這些關(guān)鍵內(nèi)容成為學(xué)習(xí)者的原始需求。無(wú)論是大段知識(shí)文本內(nèi)容還是簡(jiǎn)潔知識(shí)點(diǎn)總結(jié),其內(nèi)在的學(xué)習(xí)要點(diǎn)都在于關(guān)鍵詞。因此,本文以學(xué)習(xí)資源文檔的關(guān)鍵詞為核心,實(shí)現(xiàn)基于關(guān)鍵詞的學(xué)習(xí)資源文檔推薦方法。
本文使用深度學(xué)習(xí)工具Word2vec[3]將文本向量化,文本中所有詞匯用多維向量表征。Word2vec是基于數(shù)學(xué)的概率模型,結(jié)合神經(jīng)網(wǎng)絡(luò)模型,根據(jù)當(dāng)前詞匯計(jì)算出上下文詞匯概率,或者根據(jù)上下文詞匯計(jì)算出當(dāng)前詞匯概率,計(jì)算公式見(jiàn)式(1),其中f(*)為神經(jīng)網(wǎng)絡(luò)函數(shù)。
P(Wn│W1,…,Wn-1)=f(W1,…,Wn-1,Wn)
(1)
經(jīng)過(guò)Word2vec工具訓(xùn)練后的詞向量,每一個(gè)詞匯對(duì)應(yīng)唯一的向量,向量與向量之間通過(guò)余弦值計(jì)算得到兩個(gè)向量間的距離,并且向量間通過(guò)運(yùn)算實(shí)現(xiàn)文本上下文的語(yǔ)義連接。如訓(xùn)練大量文本詞匯之后:vector("King")-vector("Man")+vector("Woman")≈vector("Queen")。
Word2vec共有兩種訓(xùn)練模型,分別為CBOW模型與SKip-gram模型,如圖2所示。
圖2 Word2vec CBOW與SKip-gram模型
其中CBOW模型是使用上下文預(yù)測(cè)當(dāng)前詞,SKip-gram是利用當(dāng)前詞預(yù)測(cè)上下文詞匯。如“公民享有的權(quán)利與義務(wù)是統(tǒng)一的”,使用CBOW模型:對(duì)于每一個(gè)Word,使用該Word周?chē)腤ord預(yù)測(cè)當(dāng)前Word生成概率,如使用“公民、享有、權(quán)利、義務(wù)”生成“統(tǒng)一”;使用SKip-gra模型:對(duì)于每一個(gè)Word,使用該Word本身預(yù)測(cè)生成其它Word的概率,如使用“統(tǒng)一”生成“公民、享有、權(quán)利、義務(wù)”中的每個(gè)Word。
基于Python機(jī)器學(xué)習(xí)包gensim包中的Word2Vec工具,先對(duì)文本進(jìn)行詞向量訓(xùn)練,再取出單詞WK的編碼路徑,根據(jù)詞向量計(jì)算路徑中每個(gè)節(jié)點(diǎn)概率,得到文本中詞匯概率,最終找出關(guān)鍵詞。
本文提出基于關(guān)鍵詞的學(xué)科資源文檔匹配算法:KW-to-doc(KeyWords-to-documents)。KW-to-doc算法是基于學(xué)科文本內(nèi)容,使用Word2vec詞向量工具計(jì)算出學(xué)科知識(shí)內(nèi)容的多維詞向量。KW-to-doc主要包含3個(gè)步驟:
(1)計(jì)算出學(xué)科文本的詞向量,并依據(jù)詞向量計(jì)算詞匯概率,找出學(xué)習(xí)文檔關(guān)鍵詞內(nèi)容,并保存文檔關(guān)鍵詞。
(2)通過(guò)詞向量,從文本中抽取能體現(xiàn)主題的關(guān)鍵詞,依據(jù)需求關(guān)鍵詞,計(jì)算出與學(xué)科知識(shí)文檔關(guān)鍵詞間的相似性。如果文檔中包含該需求關(guān)鍵詞,則推薦包含該關(guān)鍵詞的學(xué)科資源文檔。然后采取搜索鄰近關(guān)鍵詞策略,即選取最鄰近top-n關(guān)鍵詞,推薦包含鄰近關(guān)鍵詞的學(xué)科資源文檔。
(3)如果文檔中不包含需求關(guān)鍵詞,則直接采用搜索鄰近關(guān)鍵詞策略,循環(huán)一遍步驟(2),最后得到學(xué)習(xí)者所需要的推薦文檔。
Kw-to-doc算法描述如下:
輸入:RKw(需求關(guān)鍵詞),Doc(學(xué)科知識(shí)文檔)
輸出:DocId(符合要求的文檔id)
function searchDocId(input=Kw):
KeyWords, allDocId=computeKeyWords(Doc)
For Word, DocId∈KeyWords,allDocId:
if Word=Kw:
return DocId
end if
end function
DocId=searchDocId(input=Kw)
if DocId=null
simKeyWords=similarKeyWord(KeyWords)
for KeyWords∈simKeyWords
DocId=searchDocId(input=KeyWords)
end for
end if
其中computeKeyWords(*)表示計(jì)算文檔的關(guān)鍵字,similarKeyWord(*)表示計(jì)算得到相似的關(guān)鍵字。
本文基于小學(xué)五、六年級(jí)思想品德學(xué)科知識(shí)內(nèi)容,檢驗(yàn)所提出的學(xué)科知識(shí)內(nèi)容推薦方法的有效性。
選取在線(xiàn)學(xué)習(xí)資源平臺(tái)中學(xué)學(xué)科資源網(wǎng)(http://www.zxxK.com/)作為學(xué)科內(nèi)容資源來(lái)源,該網(wǎng)站收錄了大量小學(xué)學(xué)科資源,其學(xué)習(xí)資源被廣泛應(yīng)用于一線(xiàn)教學(xué)。實(shí)驗(yàn)通過(guò)設(shè)計(jì)相應(yīng)爬蟲(chóng)程序,獲取多個(gè)學(xué)科學(xué)習(xí)資源內(nèi)容,包括多個(gè)年級(jí)的語(yǔ)文、品德、科學(xué)、美術(shù)、體育、音樂(lè)、信息技術(shù)7類(lèi)學(xué)科資源內(nèi)容。共包含學(xué)科學(xué)習(xí)資源9 099篇,涵蓋知識(shí)點(diǎn)的講解文檔、教案、課件等。由于收集文檔中含有大量特殊字符以及與文檔無(wú)關(guān)的標(biāo)點(diǎn)符號(hào),為提高實(shí)驗(yàn)效率,筆者對(duì)這些文檔做特殊字符清理的預(yù)處理工作,并將所有類(lèi)別文檔轉(zhuǎn)化為文本文件(txt.)格式。各學(xué)科資源文本類(lèi)型及數(shù)量如圖3所示。
圖3 學(xué)科資源類(lèi)別數(shù)量
各學(xué)科資源占比如圖4所示,語(yǔ)文、美術(shù)、品德3門(mén)學(xué)科類(lèi)別獲取的學(xué)習(xí)資源占比79%,因此本實(shí)驗(yàn)選定學(xué)科學(xué)習(xí)資源語(yǔ)文、美術(shù)、品德作為實(shí)驗(yàn)關(guān)鍵詞驗(yàn)證科目。
圖4 學(xué)科資源數(shù)量占比
對(duì)上述文檔預(yù)處理之后,采用基于Word2vec的Python包gensim訓(xùn)練詞向量,并根據(jù)每個(gè)文檔計(jì)算文檔關(guān)鍵字。關(guān)鍵字提取方法是使用Python軟件包Gensim機(jī)器學(xué)習(xí)包,利用Word2vec工具詞向量計(jì)算文本中詞匯概率,然后得到文本中的關(guān)鍵詞。格式如下:
人教版思想品德八下第一單元《權(quán)利義務(wù)伴我行》
…
為了驗(yàn)證實(shí)驗(yàn)中學(xué)習(xí)資源關(guān)鍵詞生成的準(zhǔn)確性,在實(shí)驗(yàn)中采用前top-10原則進(jìn)行人工驗(yàn)證,即對(duì)學(xué)習(xí)資源內(nèi)容前10個(gè)關(guān)鍵詞準(zhǔn)確性進(jìn)行驗(yàn)證,最后人工驗(yàn)證結(jié)果如圖5所示,橫坐標(biāo)表示選取的關(guān)鍵詞數(shù),縱坐標(biāo)表示準(zhǔn)確率。
圖5 關(guān)鍵詞準(zhǔn)確率變化
由圖5可以看出,經(jīng)過(guò)人工驗(yàn)證,在選取的關(guān)鍵次數(shù)為5時(shí),學(xué)科資源內(nèi)容關(guān)鍵詞準(zhǔn)確率可達(dá)81%。
由于本文方法主要應(yīng)用于在線(xiàn)學(xué)習(xí)系統(tǒng),因此在實(shí)驗(yàn)中,筆者模擬在線(xiàn)學(xué)習(xí)過(guò)程,搜索想要的學(xué)科知識(shí)點(diǎn)或記錄下已經(jīng)學(xué)習(xí)過(guò)的內(nèi)容。實(shí)驗(yàn)流程如圖6所示。
圖6 實(shí)驗(yàn)流程
實(shí)驗(yàn)結(jié)果如表1所示。
表1 推薦準(zhǔn)確率判斷邏輯
從表1可以看出,實(shí)驗(yàn)人員經(jīng)過(guò)多次測(cè)試之后,基于詞向量的學(xué)習(xí)內(nèi)容推薦方法準(zhǔn)確率可達(dá)82.1%,本文所提方法能夠滿(mǎn)足學(xué)習(xí)者對(duì)所學(xué)內(nèi)容的需求。
因目前在線(xiàn)學(xué)習(xí)平臺(tái)學(xué)科知識(shí)內(nèi)容推薦準(zhǔn)確率有限,本文提出了基于詞向量的個(gè)性化學(xué)科知識(shí)內(nèi)容的推薦方法。該方法針對(duì)學(xué)科知識(shí)內(nèi)容,抽取文本中包含的關(guān)鍵字,結(jié)合學(xué)習(xí)者學(xué)習(xí)需求關(guān)鍵字設(shè)計(jì)相應(yīng)學(xué)科知識(shí)文檔推薦算法。實(shí)驗(yàn)證明,本文所提出的方法能夠有效滿(mǎn)足學(xué)習(xí)者對(duì)學(xué)習(xí)內(nèi)容的需求,提高了學(xué)習(xí)效率。