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