劉鑫 李世杰 廖逸文
摘 要 文章研究了常用的推薦系統模型及協同過濾推薦算法,綜合討論分析了協同過濾算法應用于資源推薦時存在的問題,提出了一種改進的協同過濾推薦算法,根據輸入的用戶屬性特征等信息,使用相似性計算公式獲得相似用戶群,建立最佳的鄰居集合,解決傳統算法中的冷啟動問題,同時利用k-means聚類降低用戶尋找最近鄰所消耗的時間,解決了資源過載而帶來的速度瓶頸問題。
關鍵詞 協同過濾算法;資源推薦;k-means聚類
中圖分類號 TP3 文獻標識碼 A 文章編號 1674-6708(2018)219-0155-02
近年來,Internet技術的飛速發展和個性化推薦系統開發技術的不斷成熟,學生可以在網絡上查閱的資源數量越來越多,范圍越來越廣泛,對于如此龐大的網絡資源,學生想要快速的找到自己真正需要的資源卻越發困難。利用個性化推薦算法,可以擺脫網絡資源過載問題,高效且精準把所需要的資源推送給學生,然而,針對學生提供的個性化學習資源推薦系統卻不常見。大多網絡資源個性化推薦系統僅僅是將大量的學習資源按照一定的排序方式簡單的羅列在一起,學生用戶需要時還需要自己進行關鍵字檢索,效率低且不利于在線學習模式的發展。
文章針對新用戶新項目在推薦系統初始時存在冷啟動問題,評分數據稀疏也導致了推薦精度下降的現象,提出了利用k-means聚類算法首先根據用戶屬性對用戶分類,再結合協同過濾的個性化推薦思想,設計了改進的協同過濾算法,并應用在我校的學習交流系統中的資源推薦模塊中,提高了個性化學習資源推薦的效率和精度。
1 個性化推薦系統及推薦算法
1.1 個性化推薦系統模型
常見的推薦系統由用戶、推薦資源信息庫和推薦模塊構成。其中“資源信息庫”模塊包含了系統中全部的用戶基本信息(如用戶年齡、性別、專業、愛好等)、用戶對資源的瀏覽下載等情況的記錄信息和對資源進行評分的數據。信息庫模塊作為推薦模塊的基礎為其提供輸入數據。“個性化推薦模塊”根據信息庫提供的數據信息,設計適合資源推薦的個性化推薦算法,首先基于信息庫提供的數據對用戶及資源進行分類,然后在同類用戶群生成資源推薦列表,并將其進行排序,取前 N 個信息對象推薦給新用戶。
1.2 協同過濾推薦算法
協同過濾推薦算法的主要思想是想要為某一用戶推薦學習資源,基于用戶喜歡具有相同興趣的用戶喜歡的東西,因此首先找到相似用戶群,然后通過用戶在系統內的瀏覽記錄或下載記錄等獲得用戶對項目的評分,建立用戶和資源評價模型,如果有新用戶進入系統,則首先為新用戶找到相似用戶群,再根據相似群用戶的評分排序為新用戶推薦前N個學習資源。算法的推薦過程可以劃分為3個階段:用戶-學習資源建模、生成最近鄰、學習資源推薦。
1)用戶—學習資源建模。根據用戶對學習資源的評價建立用戶-學習資源的評分矩陣如表1所示,行表示用戶從User1到用戶Usern,共n個用戶,列表示資源從Source1到Sourcem 共m個資源,其中 Rui代表第u個用戶對第i類學習資源的興趣度評分。

3)學習資源推薦。根據生成的最近鄰居,能夠獲得鄰居用戶對學習資源i的評分信息,從而在不知道目標用戶對學習資源i評分的前提下,就可以通過最近鄰居預測出目標用戶對該資源的興趣程度,按興趣程度由高到低排序,將排在前面的N項學習資源推薦給目標用戶。
1.3 協同過濾推薦算法存在的問題
協同過濾推薦算法當有新用戶或新的學習資源出現時,因為沒有用戶的任何評分數據,導致推薦系統無法獲取用戶—學習資源評分矩陣,出現冷啟動問題。
隨著用戶訪問的網絡資源的數量的增加、類型更加多樣化、用戶與資源的關系更加復雜,使得運用協同過濾算法尋找目標用戶的鄰居時效率越來越低,因此會嚴重影響推薦效率,產生速度瓶頸問題。
2 改進的協同過濾算法
對算法存在的冷啟動問題,文章設計系統登錄用戶時,根據注冊用戶輸入的基本屬性信息,包括用戶的年齡、專業及愛好取向等建立用戶基本信息表,使用K-means聚類算法進而形成用戶的鄰居集合,即使沒有用戶對資源的評分信息,系統也可以通過計算用戶之間相似性,為新用戶推薦需要的學習資源。為解決速度瓶頸問題,在計算相似度前,使用K-means聚類算法將用戶聚類,再計算目標用戶所屬類別,進而在查找最近鄰居時,只需要和該類別內部的用戶進行相似度計算,大大降低了運算量,提高了算法效率。算法的執行過程如下:
1)輸入用戶屬性特征描述,系統收集到的用戶的屬性信息包括性別、年齡、愛好、學歷、專業,并為其設計二進制編碼。
2)預處理用戶屬性特征信息,得到用戶興趣愛好向量。
3)使用K-means聚類算法根據用戶提供的初始化信息進行聚類,首先隨機選取用戶的職業或受教育程度來設計K個聚類質心,計算每個用戶與該職業或受教育程度聚類質心的距離,將用戶劃分到最近的簇內,循環直到所有用戶都聚類完成。
4)為新用戶歸類到所屬的簇,將簇內的用戶作為目標用戶查找鄰居的用戶群,使用相似度計算公式,找到最近鄰。
5)最后根據最近鄰生成學習資源推薦的序列,將前N項學習資源推薦給目標用戶。
3 改進的協同過濾算法在在線學習交流系統中的應用
采用改進后的協同過濾推薦算法,可以通過對學習者年齡、專業、性別以及興趣愛好的分析,根據用戶特征向量,結合K-means聚類算法生成相似用戶群,很容易解決傳統算法遇到的冷啟動問題。同時,引入K-means聚類算法將查找最近鄰的范圍縮小到聚類生成的簇中,從而大大的減少了計算最近鄰所消耗的時間,提高推薦效率。改進后的算法在在線學習交流系統中執行個性化資源推薦的流程見圖1,用戶登錄在線交流系統界面,在校師生可以根據自己的賬號登錄系統,首次登錄的未注冊的師生可以進行系統內資源瀏覽學習,如果想要其他操作需要完成注冊。系統內部自動收集注冊師生的基本信息,包括年齡、專業、愛好等,為每個注冊的師生建立學習者信息庫,使用K-means 算法計算用戶間相似性,再通過改進的協同過濾算法預測新用戶可能喜好的學習資源集合,并對該集合內部的學習資源按喜好程度排序,將前N個資源作為最終推薦集合推薦給用戶。
4 結論
文章在個性化推薦算法的基礎上,為了在我校設計開發的在線交流系統實現學習資源的個性化推薦功能,針對協同過濾算法存在的不足,利用K-means聚類算法首先對用戶和學習資源進行分類,然后在進行相似性計算,在數據量逐漸增大的形勢下,實現資源的個性化推薦。通過驗證,推薦效率與推薦質量都有所提升。
參考文獻
[1]馮永,陳顯勇.基于評分信息量的協同過濾算法研究[J].計算機工程與應用,2013,49(20):198-201.
[2]韋素云,業寧,等.基于項目聚類的全局最近鄰的協同 過濾算法[J].計算機科學,2012,39(12):149-152.
[3]王龍.教育資源推薦服務中若干關鍵技術的研究[D].長春:吉林大學,2013.
[4]孫歆,王永固,等.基于協同過濾技術的在線學習資源個性化推薦系統研究[J].中國遠程教育,2012,32(8):78-82.
[5]趙寧,王學軍.推薦系統中協同過濾技術的研究[J].河北省科學院學報,2013,30(2):62-65.