張群慧 朱愛軍
(湖南科技職業(yè)學(xué)院,湖南 長(zhǎng)沙 410004)
隨著網(wǎng)絡(luò)科技的日益發(fā)達(dá)和社會(huì)物質(zhì)生活的日益改善,為了在這個(gè)快節(jié)奏的社會(huì)節(jié)省不必要的時(shí)間以及提高生活質(zhì)量,個(gè)性化推薦成為互聯(lián)網(wǎng)的核心功能之一,并被運(yùn)用于各個(gè)行業(yè)。在線學(xué)習(xí)網(wǎng)站使用推薦算法,為用戶推薦最有機(jī)會(huì)學(xué)習(xí)和購(gòu)買的課程資料,給用戶帶來(lái)潛在的好友關(guān)注;為用戶推送其最有機(jī)會(huì)點(diǎn)擊的視頻內(nèi)容[1];為用戶提供最有趣的特色信息。個(gè)性化推送技巧是解決之道,這也是互聯(lián)網(wǎng)智能的體現(xiàn)之一。
現(xiàn)階段的選擇方式大致有三類:基于內(nèi)容的推薦算法、協(xié)同過濾算法、混合推薦算法。[2]
基于內(nèi)容的推薦算法根據(jù)具體的文本數(shù)據(jù)來(lái)進(jìn)行選擇。
協(xié)同過濾算法一般包含了通過程序的計(jì)算和通過模式的計(jì)算。[3]在最初的時(shí)候一般是通過大數(shù)據(jù)研究,利用問題的評(píng)估矩陣的實(shí)驗(yàn)數(shù)據(jù),來(lái)尋找類似的問題或者數(shù)據(jù)。然后通過構(gòu)建一個(gè)模式,以通過這個(gè)模式的評(píng)估矩陣為基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù),來(lái)進(jìn)行智能的推薦預(yù)測(cè)。
不過,上面的兩個(gè)推薦算法都有著干擾最終選擇結(jié)果的顯著缺陷,于是科學(xué)家們?yōu)榱吮苊鈨蓚€(gè)算法的弊端,發(fā)揮其長(zhǎng)處,給出了第三個(gè)算法,混合推薦算法,它是一個(gè)把基于內(nèi)容的推薦算法與協(xié)同過濾算法融合到一起的算法?,F(xiàn)在大部分市場(chǎng)上的推薦系統(tǒng)都是通過各種推薦算法融合的混合推薦系統(tǒng)。[4]
協(xié)同過濾算法是從海量的數(shù)據(jù)中挖掘出與用戶興趣相似的用戶,使他們成為用戶的鄰居,然后根據(jù)他們喜歡的東西,產(chǎn)生一個(gè)推薦列表推送給用戶。由此,可以看出協(xié)同過濾算法有兩個(gè)核心問題:(1)確定與當(dāng)前用戶興趣相似的用戶;(2)產(chǎn)生推薦列表推送給當(dāng)前用戶。
要實(shí)現(xiàn)協(xié)同過濾算法有三大步驟:(1)收集用戶的喜歡度;(2)找到相似的用戶和學(xué)習(xí)資源;(3)計(jì)算數(shù)據(jù)并生成推薦列表。
數(shù)據(jù)稀疏性問題也是協(xié)同過濾算法中必然會(huì)遇到的最大的問題。[5]在現(xiàn)實(shí)的商業(yè)推薦系統(tǒng)中,雖然用戶以及與其相應(yīng)的購(gòu)物項(xiàng)目的信息總量都非常巨大,但用戶卻通常只能在很少的購(gòu)物項(xiàng)目上基于客觀評(píng)價(jià),從而產(chǎn)生評(píng)價(jià)矩陣數(shù)量稀少的問題。在數(shù)量如此稀少的情形下,由于沒有參考的數(shù)據(jù)信息,不利于使用所選擇的機(jī)器學(xué)習(xí)資源估計(jì)兩個(gè)不同用戶間的接近程度,進(jìn)而造成對(duì)鄰居集合的資源選取不精確,影響了推薦精度。冷啟動(dòng)也是關(guān)于數(shù)量稀少性的一種很典型的問題。所謂冷啟動(dòng),即在沒有用戶評(píng)價(jià)的情況下,很難憑空生成符合當(dāng)前用戶需求的推薦列表。
擴(kuò)展性問題是隨著系統(tǒng)的使用所出現(xiàn)的問題。隨著用戶和對(duì)應(yīng)的購(gòu)買學(xué)習(xí)資源的增多,由于計(jì)算資源和計(jì)算速度的限制,協(xié)同過濾算法在用戶和對(duì)應(yīng)購(gòu)買學(xué)習(xí)資源增長(zhǎng)到一定數(shù)量后,效率會(huì)大大降低,以致于不能滿足實(shí)際需求。
表1 基于內(nèi)容的推薦算法和協(xié)同過濾算法的比較
基于內(nèi)容的推薦算法的核心是學(xué)習(xí)資源之間兩兩相似度的精確度。如何實(shí)現(xiàn)這個(gè)算法,可分三步:(1)獲取過去機(jī)器學(xué)習(xí)數(shù)據(jù)的特征值;(2)通過特征數(shù)據(jù)來(lái)構(gòu)建用戶的喜好模式;(3)通過將候選學(xué)習(xí)資源與喜好模型進(jìn)行比較,生成推薦列表。
推薦對(duì)象的多樣性問題是基于內(nèi)容的推薦算法的首要問題。喜好模型是根據(jù)過去用戶喜歡的學(xué)習(xí)資源的學(xué)習(xí)中得出的,所以在原始數(shù)據(jù)中就有隱患。即過去喜歡的學(xué)習(xí)資源不可能包括用戶潛在喜歡的學(xué)習(xí)資源。
同時(shí)對(duì)用戶和學(xué)習(xí)資源間建立關(guān)聯(lián)模型和提取主要特征是一個(gè)會(huì)耗費(fèi)大量的時(shí)間和人力的過程。此外,如果用戶很少有購(gòu)買和瀏覽的行為,那么所得到的數(shù)據(jù)總量就遠(yuǎn)遠(yuǎn)不夠,將會(huì)大大地影響推薦結(jié)果的精準(zhǔn)度。
協(xié)同過濾算法與基于內(nèi)容的推薦方式是能夠優(yōu)勢(shì)互補(bǔ)的。協(xié)同過濾算法并不出現(xiàn)推薦學(xué)習(xí)中資源多樣性的現(xiàn)象,而基于內(nèi)容的推薦方式并不出現(xiàn)資源冷啟動(dòng)的現(xiàn)象。因此可以將這兩種推薦算法融合起來(lái)成為一種新的混合推薦算法,以求更好的推薦效果。
該方案將改變傳統(tǒng)基于內(nèi)容的方式獲取用戶既有興趣,而采用特征詞的協(xié)同過濾方式獲取用戶潛在興趣,并將用戶現(xiàn)有的興趣和潛在興趣混合,得出混合的用戶興趣模型,用混合模式與候選學(xué)習(xí)資料進(jìn)行相似度統(tǒng)計(jì),給不同用戶推送可能感興趣的學(xué)習(xí)資料。較之前的方法,本文更充分地考慮了用戶喜好以及在多樣性與個(gè)性化上的要求,更加充分地挖掘了用戶的潛在興趣,提高了用戶對(duì)推薦學(xué)習(xí)資源的點(diǎn)擊率。
混合推薦系統(tǒng)模型主要由三個(gè)部分組成:用戶已有的興趣模型、潛在的用戶興趣模型、混合推薦算法模型。首先在這里有些定義需要說(shuō)明一下。
特征詞序列:搜索內(nèi)容有非結(jié)構(gòu)化和結(jié)構(gòu)化之分。結(jié)構(gòu)化是指搜索內(nèi)容就是一個(gè)或多個(gè)確定的詞匯,例如:牛津字典、書包等。非結(jié)構(gòu)化內(nèi)容指的是用一個(gè)長(zhǎng)短語(yǔ)或句子來(lái)描述想要檢索的學(xué)習(xí)資源信息。推薦算法是以結(jié)構(gòu)化的搜索內(nèi)容為基礎(chǔ)的,所以要對(duì)搜索內(nèi)容的文本信息進(jìn)行結(jié)構(gòu)化處理,這一部分的實(shí)際操作就是提取搜索內(nèi)容的特征詞。對(duì)任意用戶的搜索非結(jié)構(gòu)化內(nèi)容的集合D={d1,d2,d3.....dn},將能夠代表搜索內(nèi)容和搜索內(nèi)容特征的詞匯或者短語(yǔ)通過數(shù)學(xué)算法提取出來(lái)形成一個(gè)特征詞序列S={s1,s2,s3......sn}。特征詞序列包含了用戶的非結(jié)構(gòu)化內(nèi)容集合的特征詞,類似于給每個(gè)用戶搜索內(nèi)容集貼上標(biāo)簽。
用戶已有的興趣模型(EM):將任意用戶的搜索內(nèi)容的文本信息向量化,然后經(jīng)過一些數(shù)學(xué)運(yùn)算,算出每個(gè)特征值的權(quán)重,得出特征詞序列的一一對(duì)應(yīng)的特征值權(quán)重向量,記為W1={w11,w12,w13,...,w1n},稱其為用戶已有的興趣模型。這是根據(jù)搜索內(nèi)容來(lái)設(shè)計(jì)興趣模型,這屬于基于內(nèi)容的推薦算法的一部分。
用戶潛在的興趣模型(PM):通過協(xié)同過濾算法找出當(dāng)前用戶的鄰居,鄰居就是與當(dāng)前用戶興趣相似的用戶群體,將鄰居的已有興趣推薦給當(dāng)前用戶,即將相似的用戶的已有興趣模型作為當(dāng)前用戶的潛在興趣模型,記為W2={w21,w22,w23,...,w2n},其中W2i是特征詞序列中對(duì)應(yīng)的權(quán)重。
混合興趣模型(HM):將用戶已有興趣模型和潛在的興趣模型按照一定的規(guī)則合并得到的權(quán)重向量,記為W3={w31,w32,w33,...,w3n},其中W3i是特征詞序列中對(duì)應(yīng)的權(quán)重,稱其為混合興趣模型。
混合興趣模型中用戶已有興趣模型根據(jù)原理可劃分為基于內(nèi)容的推薦算法的版塊[6],用戶潛在興趣模型屬于協(xié)同過濾算法的內(nèi)容,所以這就是混合興趣推薦模型的基本框架。
圖1 混合興趣模型構(gòu)建流程
建立用戶的興趣模型之前要對(duì)搜索的內(nèi)容進(jìn)行結(jié)構(gòu)化處理。典型的處理辦法就是TF_IDF(term frequency_inverse document frequency)表示法。這個(gè)表示法是用權(quán)重來(lái)衡量詞匯的重要程度。TF(term frequency)詞頻,即某個(gè)特定的詞匯在文本信息中所有詞匯中所占的比例。在所有的文本內(nèi)容里,“的”“這些”“那些”,類似這種沒有實(shí)意的常見詞的詞頻通常會(huì)很高,因此為了提高提取的特征詞的準(zhǔn)確度,提出了IDF(inverse document frequency)逆文檔頻率的概念。假設(shè)某個(gè)詞比較少見,卻在某個(gè)文檔出現(xiàn)次數(shù)較多,那么這些詞匯很有可能反映文章的特性,極有可能是文章內(nèi)容的特征詞。為這種情況設(shè)置了一個(gè)新的權(quán)重參數(shù)便是IDF,這個(gè)參數(shù)和詞匯的常見程度成反比。TF_IDF的權(quán)值計(jì)算方法為TF*IDF,[freq(i,j)/sum(k,j)]*log[N/n(j)],TF=freq(i,j)/sum(k,j),其中freq(i,j)為在搜索內(nèi)容集dj中詞匯i出現(xiàn)的次數(shù);sum(k,j)為在搜索內(nèi)容集dj中所有的詞匯個(gè)數(shù)。IDF=log[N/n(j)],其中N為搜索內(nèi)容集的總數(shù),n(j)為出現(xiàn)過詞匯i的搜索內(nèi)容的條數(shù)。
給定搜索內(nèi)容集D={d1,d2,...,dn},和特征詞集合S={s1,s2,...,sn},搜索內(nèi)容集可表示為與特征詞集合S對(duì)應(yīng)的一個(gè)向量空間模型,di={wi1,wi2,...,wij,...,wik},其中wij表示特征詞sj在搜索內(nèi)容集di的權(quán)值,如果wij為0,表示為在搜索內(nèi)容集di中沒有特征詞sj,于是,搜索內(nèi)容集可以等同于一個(gè)權(quán)值矩陣:
用戶的潛在興趣模型與用戶的已有興趣模型的區(qū)別在于不能通過以往的搜索內(nèi)容直接發(fā)現(xiàn)用戶潛在的興趣。本文提出用協(xié)同過濾算法來(lái)解決問題。傳統(tǒng)的協(xié)同過濾算法是通過評(píng)分矩陣來(lái)發(fā)現(xiàn)相似用戶,通常不同的用戶會(huì)購(gòu)買或者瀏覽相同的學(xué)習(xí)資源,但是購(gòu)買不同的學(xué)習(xí)資源,這些瀏覽了相同的學(xué)習(xí)資源的用戶很難歸為相似用戶。針對(duì)上述問題,我們只要計(jì)算不同用戶搜索內(nèi)容的相似度sim(u,v)即可。
4.2.1 相似度的計(jì)算
協(xié)同過濾算法的核心部分是尋找興趣相似的用戶,其效率和結(jié)果很大程度上決定了協(xié)同過濾算法的效率和結(jié)果。測(cè)度用戶i和用戶j的搜索內(nèi)容相似性的方法如下:首先得到用戶i和j的搜索內(nèi)容集特征詞權(quán)重的所有項(xiàng),然后通過相似度測(cè)量方法來(lái)計(jì)算用戶i和j的相似度,記為sim(i,j)。
通常sim(i,j)的計(jì)算方法有三種:余弦相似性計(jì)算法、皮爾遜相關(guān)系數(shù)、歐幾里得度量,本文采用余弦相似性計(jì)算法。
設(shè)用戶u搜索內(nèi)容集Du={du1,du2,...,dui,...,dum},EMu=(w1u1,w1u2,…,w1uj,…,w1uk),用戶v搜索內(nèi)容集Dv={dv1,dv2,…,dvj,…,dvs},Du、Dv均為D的子集,EMv=(w1v1,w1v2,…,w1vj,…,w1vk),用戶u,v的內(nèi)容相似度如下:
4.2.2 推薦相似用戶群的興趣詞并構(gòu)建模型
通過上述算法可以計(jì)算出當(dāng)前用戶與其他所有用戶搜索內(nèi)容之間的相似度,排列出與當(dāng)前用戶相似度最高的n個(gè)用戶,作為鄰居群。用協(xié)同過濾算法將鄰居群的用戶的已有興趣模型推薦給當(dāng)前用戶,即為用戶的潛在興趣模型。
得到用戶已有和潛在興趣模型后,將兩個(gè)興趣模型按照規(guī)則合并,再與候選的推薦學(xué)習(xí)資源集合計(jì)算相似度[7],給定相似度閾值a,檢查推薦結(jié)果。
設(shè)用戶u的EMu=(w1u1,w1u2,…,w1uj,…,w1uk),PMu=(w2u1,w2u2,…,w2uj,…,w2uk),HMu=(w3u1,w3u2,…,w3uj,…,w3uk),候選推薦內(nèi)容集d=(wd1,wd2,…,wdj,…,wdk)。w3的計(jì)算方法為:
W3=max{w1,w2},其中max{}表示w1,w2中的較大值。最后用余弦法計(jì)算d和HM的相似度,檢查推薦結(jié)果。
算法:HM的構(gòu)建算法和推薦結(jié)果的生成,如下:
在本文介紹的混合推薦系統(tǒng)中,是根據(jù)不同的搜索內(nèi)容集中的各個(gè)特征詞的不同權(quán)重來(lái)產(chǎn)生推薦結(jié)果的。權(quán)重矩陣可以用一個(gè)m×n的矩陣表示。m行代表m個(gè)用戶的搜索內(nèi)容集,n列代表n個(gè)特征詞,第i行第j列元素Wij表示第j個(gè)特征詞在第i個(gè)用戶的搜索內(nèi)容集中的權(quán)重。權(quán)重矩陣如表2所示。
表2 數(shù)據(jù)表示形式
將推薦結(jié)果推薦給用戶后有如表3結(jié)果:
表3 推薦結(jié)果
根據(jù)結(jié)果的這幾種可能,通常用準(zhǔn)確率(或查準(zhǔn)率,Precision)和覆蓋率(或召回率,Recall)來(lái)作為算法評(píng)價(jià)的指標(biāo)。準(zhǔn)確率的計(jì)算公式為:
表示推薦了并被訪問了的學(xué)習(xí)資源數(shù)量與推薦學(xué)習(xí)資源總數(shù)之比,而覆蓋率計(jì)算公式為:
表示推薦命中學(xué)習(xí)資源數(shù)量與測(cè)試集中用戶所訪問學(xué)習(xí)資源總數(shù)之比。
實(shí)際上查準(zhǔn)率和查全率是相互沖突的。如果增大推薦學(xué)習(xí)資源的數(shù)目,就會(huì)使得覆蓋率增大,但是同時(shí)又使得準(zhǔn)確率下降。因此,通常將兩者給一個(gè)相當(dāng)?shù)臋?quán)重合并成一個(gè)綜合測(cè)度F來(lái)評(píng)價(jià)推薦質(zhì)量。F值越大,推薦質(zhì)量越高。計(jì)算公式如下:
本文的數(shù)據(jù)取自Datacastle的用戶瀏覽數(shù)據(jù)集,隨機(jī)抽取1000名用戶,將推薦項(xiàng)目數(shù)從10到60進(jìn)行試驗(yàn)。發(fā)現(xiàn)用戶潛在興趣的過程中,要實(shí)現(xiàn)確定鄰居群的大小即興趣相似的用戶個(gè)數(shù)。為了便于評(píng)估性能,我們把鄰居群固定大小35人,相似度算法選用余弦計(jì)算法。推薦算法的最終結(jié)果是要生成N項(xiàng)用戶可能最有興趣的學(xué)習(xí)資源,以此供用戶進(jìn)行選擇,考察在不同的N值下,不同的算法(基于內(nèi)容推薦算法、協(xié)同過濾算法、本文介紹算法)的準(zhǔn)確率、覆蓋率以及F值。
由此,在不同推薦項(xiàng)目數(shù)(N)的情況下:
各個(gè)算法的準(zhǔn)確率如圖2所示。
圖2 準(zhǔn)確率
各個(gè)算法的覆蓋率如圖3所示。
圖3 覆蓋率
各個(gè)算法的F值如圖4所示。
圖4 F值
從上述的實(shí)驗(yàn)結(jié)果,我們可以得出以下結(jié)論:
(1)準(zhǔn)確率和覆蓋率是兩個(gè)互逆的參數(shù),隨著推薦項(xiàng)目數(shù)的增大,準(zhǔn)確率下降,覆蓋率上升;(2)F作為一個(gè)綜合的參數(shù)權(quán)值,隨著推薦項(xiàng)目數(shù)的增大有一個(gè)峰值,然后緩慢減少;(3)本文介紹的算法優(yōu)于協(xié)同過濾算法和基于內(nèi)容的推薦算法,同時(shí)還不存在冷啟動(dòng)的問題。
推薦系統(tǒng)經(jīng)歷了較長(zhǎng)時(shí)間的研究和發(fā)展已取得令人矚目的成果。個(gè)性化推薦系統(tǒng)的作用主要表現(xiàn)在三個(gè)方面:(1)將在線學(xué)習(xí)資源的瀏覽者轉(zhuǎn)變?yōu)橘?gòu)買者;(2)提高各種在線學(xué)習(xí)網(wǎng)站交叉融合的能力;(3)改善用戶體驗(yàn),提高用戶忠誠(chéng)度。
但是還需進(jìn)一步的努力。不可否認(rèn)的是,推薦系統(tǒng)還有許多難點(diǎn)沒有突破,例如提取精準(zhǔn)的用戶偏好和對(duì)象特征;推薦的多維度研究;推薦系統(tǒng)的安全性研究等問題,但是我們堅(jiān)信隨著社會(huì)的發(fā)展,科技的不斷進(jìn)步,對(duì)于推薦系統(tǒng)的研究也會(huì)越來(lái)越深入,從而更好地服務(wù)于人們的物質(zhì)文化生活。