鄭小坤+蔡杰+李書豪+楊盆+譙亞軍
摘要:隨著信息技術(shù)和Internet技術(shù)的蓬勃發(fā)展,網(wǎng)絡(luò)用戶接受信息的模式逐漸從信息匱乏到信息過(guò)載,對(duì)于網(wǎng)絡(luò)信息的日新月異,無(wú)論是信息消費(fèi)者還是信息生產(chǎn)者都遇到了很大的挑戰(zhàn)。為此,本文介紹了推薦系統(tǒng)的發(fā)展現(xiàn)狀,簡(jiǎn)單分析了熱門的推薦算法(協(xié)同過(guò)濾算法),結(jié)合網(wǎng)絡(luò)用戶對(duì)有價(jià)值信息獲取的需求,設(shè)計(jì)了網(wǎng)站推薦系統(tǒng),完成了機(jī)器學(xué)習(xí)算法框架Mahout在推薦系統(tǒng)上的實(shí)現(xiàn)。
關(guān)鍵詞:推薦系統(tǒng);行為日志;協(xié)同過(guò)濾
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)06-0231-02
任何一個(gè)網(wǎng)站,它提供例如新聞資訊、電影音樂、視頻瀏覽、游戲等服務(wù)的,只要有用戶在上面訪問,就會(huì)留下該用戶的使用記錄。無(wú)論這些數(shù)據(jù)如何冗余復(fù)雜,如何單一簡(jiǎn)陋,只要存在用戶ID和點(diǎn)擊量,就可以支撐一個(gè)網(wǎng)絡(luò)廣告的商業(yè)模式。而智能化發(fā)展對(duì)于當(dāng)今的互聯(lián)網(wǎng)來(lái)說(shuō)是一個(gè)重要的方向。基于用戶的興趣偏好,將訊息有針對(duì)性地提供給目標(biāo)用戶,能夠在用戶沒有明確目的的時(shí)候幫助他們發(fā)現(xiàn)感興趣的新內(nèi)容,體現(xiàn)服務(wù)的人性化。推薦系統(tǒng)作為大數(shù)據(jù)時(shí)代應(yīng)運(yùn)而生的產(chǎn)物,對(duì)互聯(lián)網(wǎng)發(fā)展來(lái)說(shuō),有著重要的意義。
1 推薦系統(tǒng)的發(fā)展現(xiàn)狀
隨著Web技術(shù)的越來(lái)越成熟和電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)的日益普遍,自20世紀(jì)90年代中期出現(xiàn)第一批關(guān)于協(xié)同過(guò)濾的文章以來(lái),推薦系統(tǒng)逐漸變得越來(lái)越重要,得到很多國(guó)內(nèi)外學(xué)者的關(guān)注與研究。1995年3月,卡耐基·梅隆大學(xué)的RobertArmstrong等人在美國(guó)人工智能協(xié)會(huì)上提出了個(gè)性化導(dǎo)航系統(tǒng)Web Weather;斯坦福大學(xué)的MarkoBalabanovic等人在同一會(huì)議上推出了個(gè)性化推薦系統(tǒng)LIRA,這在推薦系統(tǒng)的發(fā)展歷程上是光輝的一筆。
和搜索引擎不同,個(gè)性化推薦系統(tǒng)需要依賴用戶的行為數(shù)據(jù),因此一般都是作為一個(gè)應(yīng)用存在于不同網(wǎng)站之中。在互聯(lián)網(wǎng)的各類網(wǎng)站中都可以看到推薦系統(tǒng)的應(yīng)用,而個(gè)性化推薦系統(tǒng)在這些網(wǎng)站中的主要作用是通過(guò)分析大量用戶行為日志,給不同用戶提供不同的個(gè)性化頁(yè)面展示,來(lái)提高網(wǎng)站的點(diǎn)擊率和轉(zhuǎn)化率。許多大型的推薦系統(tǒng)隨著信息時(shí)代的來(lái)臨應(yīng)運(yùn)而生。姓名(出生年-),性別(民族,漢族可省略),籍貫(具體到省市),學(xué)歷,職位,職稱,研究方向。
2 協(xié)同過(guò)濾算法
協(xié)同過(guò)濾推薦(Collaborative Filtering recommendation)是在信息過(guò)濾和信息系統(tǒng)中正迅速成為一項(xiàng)十分受歡迎的技術(shù)。與傳統(tǒng)的基于內(nèi)容過(guò)濾直接分析內(nèi)容進(jìn)行推薦不同,協(xié)同過(guò)濾通過(guò)分析用戶興趣,在用戶集中挖掘出與指定用戶相似(興趣)用戶,綜合這些相似用戶對(duì)某一項(xiàng)目的評(píng)價(jià),形成系統(tǒng)對(duì)該指定用戶對(duì)此項(xiàng)目的喜好程度的預(yù)測(cè)。
2.1 基于用戶的協(xié)同過(guò)濾算法UserCF
基于用戶的協(xié)同過(guò)濾,通過(guò)不同用戶對(duì)物品的評(píng)分來(lái)評(píng)測(cè)用戶之間的相似性,基于用戶之間的相似性來(lái)做推薦。總的來(lái)說(shuō)就是:給目標(biāo)用戶推薦和他興趣相近的用戶喜歡的物品。
2.2 基于物品的協(xié)同過(guò)濾算法ItemCF
基于物品的協(xié)同過(guò)濾,通過(guò)用戶對(duì)不同item的評(píng)分來(lái)評(píng)測(cè)item之間的相似性,基于item之間的相似性做出推薦。簡(jiǎn)單來(lái)講就是:給用戶推薦和他之前喜歡的物品相似的物品。
3 網(wǎng)站推薦系統(tǒng)需求分析
3.1 構(gòu)建用戶興趣模型
首先要保證數(shù)據(jù)的質(zhì)量控制、數(shù)據(jù)的完整性與一致性、缺省值補(bǔ)缺、數(shù)據(jù)變換等。提取用戶群體的上網(wǎng)行為特征,根據(jù)數(shù)據(jù)集中用戶的行為日志,分析提取出UserID、網(wǎng)站點(diǎn)擊次數(shù)、瀏覽的網(wǎng)址url等屬性,建立用戶興趣模型,該模型的設(shè)定條件可包括用戶ID、urlID以及用戶偏好。興趣模型可用于計(jì)算用戶之間的相似度等。
3.2 基于用戶的推薦
根據(jù)用戶的上網(wǎng)行為處理出來(lái)的興趣愛好,尋找與之相鄰的用戶,找出興趣愛好相似的用戶,給目標(biāo)用戶推薦和他興趣相近的用戶喜歡的網(wǎng)站。
例如,用戶A喜歡瀏覽搜狐新聞資訊,當(dāng)用戶A登錄系統(tǒng)后,判斷同樣喜歡新聞?lì)悇e的用戶,若找到用戶B、C、D與用戶A興趣愛好相似,用戶B也同樣喜歡瀏覽搜狐新聞資訊和觀看BBS新聞報(bào)道,就把用戶B喜歡的搜狐新聞資訊推薦給用戶A。
給定一個(gè)評(píng)分?jǐn)?shù)據(jù)集和當(dāng)前用戶的ID作為輸入,找出與當(dāng)前用戶過(guò)去有相似偏好的其他用戶,這些用戶有時(shí)也稱為對(duì)等用戶或最近鄰用戶;然后,對(duì)當(dāng)前用戶沒有見過(guò)的每個(gè)產(chǎn)品p,利用其近鄰對(duì)p的評(píng)分計(jì)算預(yù)測(cè)值。
3.3 基于物品的推薦
用戶瀏覽的不同url具有一定的相似性,比如同為新聞?lì)悇e、游戲類別、音樂類別等等。通過(guò)尋找內(nèi)容相似的網(wǎng)站,給用戶推薦其之前喜歡的網(wǎng)站內(nèi)容相似的網(wǎng)站。
例如,用戶A喜歡在淘寶上購(gòu)物,或者喜歡瀏覽淘寶網(wǎng)站,淘寶網(wǎng)與京東網(wǎng)同為購(gòu)物網(wǎng)站,可以為用戶提供相似的服務(wù),所以也可以把京東網(wǎng)推薦給用戶A。
4 網(wǎng)站推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
通過(guò)對(duì)網(wǎng)站推薦系統(tǒng)的需求進(jìn)行分析,明確了該系統(tǒng)的功能需求。本章將完成基于用戶行為日志的網(wǎng)站推薦系統(tǒng)(簡(jiǎn)稱:WBL系統(tǒng))的設(shè)計(jì)與實(shí)現(xiàn)。
4.1 WBL系統(tǒng)總體層次圖
系統(tǒng)如圖1所示,通過(guò)分析用戶文本格式的行為日志,以及以ID關(guān)聯(lián)的相應(yīng)的用戶人口屬性信息表,可以提取出用戶的興趣特征和不同url的類別特征。利用Mahout中相應(yīng)的推薦算法框架實(shí)現(xiàn)系統(tǒng)推薦。由于數(shù)據(jù)存儲(chǔ)在遠(yuǎn)程服務(wù)器的數(shù)據(jù)庫(kù)中,所以系統(tǒng)運(yùn)行需要有外網(wǎng)。用戶登錄成功后,頁(yè)面可顯示用戶基本信息、其歷史瀏覽記錄以及相應(yīng)的推薦結(jié)果。
4.2 WBL系統(tǒng)實(shí)現(xiàn)架構(gòu)圖
對(duì)WBL系統(tǒng)架構(gòu)圖2的處理過(guò)程簡(jiǎn)要說(shuō)明如下:
(1)數(shù)據(jù)預(yù)處理。
(2)對(duì)未加工的原始數(shù)據(jù)進(jìn)行處理,剔除無(wú)效數(shù)據(jù)、缺省數(shù)據(jù)等,進(jìn)行數(shù)據(jù)清洗工作。讓數(shù)據(jù)具有一致性與完整性。
(3)推薦規(guī)則庫(kù)(MySQL)。存放不同urlID信息,用戶點(diǎn)擊url次數(shù)情況,存儲(chǔ)用戶在對(duì)Web進(jìn)行訪問時(shí)留下的網(wǎng)站鏈接結(jié)構(gòu),方便使用Mahout處理框架。
(4) Mahout。Mahout包含很多技術(shù)和算法:找出數(shù)據(jù)集中頻繁出現(xiàn)部分的頻繁模式挖掘、將相關(guān)的數(shù)據(jù)聚集在一起的聚類、利用行為數(shù)據(jù),找出相關(guān)性比較緊密的項(xiàng)目的頻繁子項(xiàng)挖掘等等。
(5)網(wǎng)站推薦庫(kù)(MySQL)。存儲(chǔ)Mahout計(jì)算出來(lái)的網(wǎng)站推薦結(jié)果。
5 結(jié)語(yǔ)
本文簡(jiǎn)單介紹了網(wǎng)站推薦系統(tǒng)的發(fā)展現(xiàn)狀推薦,并對(duì)網(wǎng)站推薦系統(tǒng)的功能性進(jìn)行了闡述,在此基礎(chǔ)上描述了網(wǎng)站推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。但網(wǎng)站推薦系統(tǒng)還需進(jìn)一步完善,其中,美化界面和優(yōu)化算法推薦可進(jìn)行進(jìn)一步的開發(fā)。
參考文獻(xiàn)
[1]IBM協(xié)同過(guò)濾推薦算法簡(jiǎn)介[EB/OL].
[2]推薦系統(tǒng)[M].北京:人民郵電出版社,2015.
[3]推薦系統(tǒng)實(shí)踐[M].北京:人民郵電出版社,2014.
[4]集體編程智慧[M].北京:中國(guó)工信出版集團(tuán),2015.
[5]使用Mahout實(shí)現(xiàn)協(xié)同過(guò)濾[EB/OL].
[6]Mahout算法API詳解[EB/OL].endprint