李瑋 何富樂 駱嘉偉 殷櫻
摘 要:計算機(jī)的普及和網(wǎng)絡(luò)的發(fā)展改變了現(xiàn)有的教學(xué)模式,教育資源的數(shù)字化、網(wǎng)絡(luò)化成為了一個必然趨勢。在這個“信息過載”的時代,推薦機(jī)制根據(jù)用戶特征興趣解決所需信息和搜索之間的矛盾。然而傳統(tǒng)推薦算法計算效率低下,存在可擴(kuò)展性低、算法運(yùn)用場景不明確等問題。Hadoop利用分布式的環(huán)境,將計算任務(wù)通過資源調(diào)度分配到集群環(huán)境中,多臺機(jī)器并行運(yùn)算,減少了計算時間。所以本文在推薦算法理論和實(shí)現(xiàn)機(jī)制的基礎(chǔ)上闡述了基于項(xiàng)目的ItemCF的實(shí)現(xiàn)方法和實(shí)現(xiàn)過程,有效增加推薦算法的實(shí)用性,為個性化推薦和教學(xué)資源的管理提供了便利。
關(guān)鍵詞:Hadoop;推薦機(jī)制;ItemCF;個性化推薦
中圖分類號:TP3 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-8454(2016)05-0033-05
互聯(lián)網(wǎng)在改變?nèi)祟惿a(chǎn)生活的同時,也為學(xué)習(xí)和教育帶來了一場深刻變革,這場變革就是在信息技術(shù)支撐下的教育信息化[1]。網(wǎng)絡(luò)中教育資源管理平臺是將多種形式的教學(xué)資源有層次地組織起來,對教學(xué)資源進(jìn)行采集、管理、檢索和利用的學(xué)習(xí)輔助系統(tǒng),它打破了傳統(tǒng)教育方式在時空上的限制,使學(xué)習(xí)者能夠更加靈活、自主地學(xué)習(xí)[2]。然而,隨著教育資源在數(shù)量和規(guī)模上的不斷擴(kuò)大,網(wǎng)絡(luò)上的資源也呈現(xiàn)“爆炸式增長”,面對大量的教學(xué)資源,用戶很難從中發(fā)現(xiàn)適合自己的有用信息,資源利用率低。因此針對用戶的個性化推薦服務(wù)成為網(wǎng)絡(luò)遠(yuǎn)程教育中亟待研究和解決的問題[3]。
推薦機(jī)制的存在就是為了消費(fèi)者解決所需信息與搜索之間的矛盾。在推薦過程中,系統(tǒng)能夠自動地追蹤用戶的歷史行為并據(jù)此為每位用戶的興趣建模,從而給用戶推送能夠滿足他們興趣和需求的信息[2]。本文將個性化推薦技術(shù)應(yīng)用在資源分配網(wǎng)中,對用戶和資源進(jìn)行建模,利用推薦算法為用戶推薦最適合的學(xué)習(xí)資源。本文設(shè)計的原型系統(tǒng)也可以廣泛應(yīng)用于遠(yuǎn)程教育資源中,這樣學(xué)習(xí)者就不再是被動的網(wǎng)頁瀏覽者,而是信息的主動參與者[1]。
文中通過編寫mapreduce程序,構(gòu)建用戶物品矩陣,構(gòu)建物品相似度矩陣,獲得相似度。運(yùn)用hadoop[4]搭建分布式環(huán)境,以實(shí)現(xiàn)算法分布式運(yùn)算的效果。設(shè)計出基于Hadoop推薦算法的比較模型,對不同場景下的所得結(jié)果誤差進(jìn)行繪圖分析,得出不同相似度計算方法之間優(yōu)劣的結(jié)論。同時又通過定時器以及其他方式,提前將推薦的結(jié)果計算好,存儲數(shù)據(jù)庫中。對推薦時直接獲取計算好的結(jié)果進(jìn)行展示,以實(shí)現(xiàn)實(shí)時推薦[5]的功能。
一、基于項(xiàng)目的推薦算法(ItemCF)
目前的推薦算法中有很多分類方法,最主要的有兩種:基于用戶的推薦算法和基于項(xiàng)目的推薦算法。本文采用的是基于項(xiàng)目的推薦算法。
基于項(xiàng)目的推薦算法是著重點(diǎn)在于項(xiàng)目的相似度計算。雖然該算法與基于用戶的推薦算法都是基于社會化的環(huán)境,但是在比較大型的網(wǎng)站上的時候,由于用戶數(shù)量往往大于相應(yīng)資源的數(shù)量,以及項(xiàng)目的數(shù)據(jù)量是相對穩(wěn)定的,在這情況下該算法不僅相似度計算量小,而且計算結(jié)果不需要頻繁更新,用戶獲得相應(yīng)的更快的數(shù)據(jù)資源。
1.基于歐式距離的相似度計算方法(EUCLIDEAN)
基于歐氏距離的相似性(歐氏距離)[6]是最簡單和最容易的相似度計算方法
在公式(1.5)中O表示的是實(shí)際觀測頻次,E指的是期望頻次。對數(shù)似然相似度算法原理是統(tǒng)計數(shù)據(jù)中有多少是重疊的,有多少是不重疊,以及都沒有的個數(shù)。主要用于處理無打分情況的偏好數(shù)據(jù),比Tanimoto系數(shù)的計算方法更為智能。
6.基于斯皮爾曼相關(guān)相似度計算方法(COOCCURRENCE)
斯皮爾曼相關(guān)性可以理解為是排列后(Rank)用戶喜好值之間的Pearson相關(guān)度。假設(shè)對于每個用戶,我們找到他最不喜歡的物品,重寫他的評分值為“1”;然后找到下一個最不喜歡的物品,重寫評分值為“2”,依此類推。然后我們對這些轉(zhuǎn)換后的值求Pearson相關(guān)系數(shù),這就是Spearman相關(guān)系數(shù)[10]。
斯皮爾曼相關(guān)度的計算舍棄了一些重要信息,即真實(shí)的評分值。但它保留了用戶喜好值的本質(zhì)特性——排序(ordering),是建立在排序的基礎(chǔ)上計算的。
二、原型系統(tǒng)的設(shè)計
基于Hadoop的推薦算法的實(shí)現(xiàn)和比較的主要目標(biāo)是設(shè)計一個能夠比較不同算法之間的誤差,從而選取較好的推薦算法,在此場景下給用戶比較準(zhǔn)確的推薦,不僅僅實(shí)現(xiàn)資源的推薦,在此基礎(chǔ)上還實(shí)現(xiàn)線下計算,線上推薦的,用戶評分,收集用戶新評分的功能。