王明誠++王菁++韓燕波
摘要:針對一般小型系統(tǒng),要完成個性化推薦,為了降低系統(tǒng)的復(fù)雜度,完全可以避免采用那些復(fù)雜的方法如基于人口統(tǒng)計學(xué)的推薦、基于內(nèi)容的推薦、協(xié)同過濾推薦等推薦策略。這些推薦策略中都會用到復(fù)雜的算法,對于一個初學(xué)者來說,想搞懂任何一種算法都不會太容易。針對所做的ICON項目來說,提出了一個簡單的推薦策略,就是針對某個關(guān)鍵點來來查找相似用戶或相似內(nèi)容,來簡單實現(xiàn)“協(xié)同過濾算法”。
關(guān)鍵詞:個性化推薦;icon;協(xié)同過濾算法;權(quán)值;關(guān)鍵點;
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2017)03-0250-03
1 概述
隨著信息時代的不斷發(fā)展,網(wǎng)絡(luò)給人們的生活帶來了翻天覆地的變化,人們可以足不出戶就能夠在網(wǎng)絡(luò)上購買到自己想要的任何商品。網(wǎng)絡(luò)的便利,使得人們的購物方式得到了改變,同時也滋生了很多購物平臺的產(chǎn)生。無論大型還是小型的電子商務(wù)平臺,都會存在著一些弊端,信息過載問題,就是商品的種類太過于豐富多樣性,以至于用戶不能很快地查找到自己喜歡的商品。所以平臺開發(fā)商們就會想盡辦法來避免這種情況,個性化推薦應(yīng)運而生,個性化推薦就是在正確的時間把正確的商品推薦給正確的用戶,來拉攏用戶,防止用戶的流失,從而提升自己平臺的競爭力。
1.1課題背景及研究的目的
當今時代是信息的時代,每天人們都會被不同的海量數(shù)據(jù)所圍繞,如何從這些繁雜的數(shù)據(jù)中找到自己想要的數(shù)據(jù),是我們每個人都迫切需要的。我們都希望每個平臺系統(tǒng)都能給我們展示出契合我么自己的數(shù)據(jù),這樣我們就不需要花費太多的精力在尋找數(shù)據(jù)上。
基于和老師同學(xué)們一起做的這個ICON項目(一個類似圖片交際購物系統(tǒng)),因為用戶的不斷增加,所上傳的圖片也越來越多,為了滿足用戶查找數(shù)據(jù)的方便,就打算給系統(tǒng)添加一個個性化推薦策略。由于自己對推薦這一塊比較陌生,閱讀了多篇關(guān)于推薦系統(tǒng)的論文及報告,大多都會涉及諸多復(fù)雜的算法,就想到針對我們這個系統(tǒng)來設(shè)計一個較為簡單的個性化推薦。
1.2 本文主要研究的內(nèi)容和組織架構(gòu)
1.2.1 本文主要工作
本文主要探討了一下個人設(shè)計的簡單個性化推薦策略及相關(guān)工作。介紹了該推薦策略的研究背景和目的,然后又詳細地介紹了該策略算法。最后就該研究成果在ICON項目中的應(yīng)用效果進行了展示,說明了我們算法的可行性。
1.2.2 本文的組織架構(gòu)
第一章是緒論部分,介紹了個性化推薦系統(tǒng)的背景,以及研究目的。簡單個性化推薦策略的由來。
第二章是算法簡述部分,大概地介紹了一下算法。
第三章是算法詳解部分,在本章節(jié)中詳細介紹了算法的構(gòu)成。
第四章是指標的權(quán)重計算部分,介紹了算法中一個比較重要的權(quán)重計算方法,并計算出了算法中各個特性的權(quán)重值。
第五章是結(jié)果分析部分,對推薦前后用戶滯留系統(tǒng)的時間和點擊look的數(shù)量進行觀察比較,得出分析結(jié)果。
2 算法簡述
1) 找出平臺關(guān)鍵點;
2) 統(tǒng)計關(guān)鍵點數(shù)據(jù);
3) 畫出涉及關(guān)鍵點的表格;
4) 整理分析,推薦圖片;
5) 通過圖片推薦給用戶商品。
3 算法詳解
3.1 找出平臺關(guān)鍵點
用戶發(fā)表一個look(即圖片),都會給這個look選擇一個性別、季節(jié)、品牌、風(fēng)格等,其中風(fēng)格包含有正裝、暗黑、韓國風(fēng)、運動、嘻哈等多達20多種的不同風(fēng)格,其中肯定會有一種是你發(fā)表的look風(fēng)格。性別和風(fēng)格是主要的,從這兩個特性中我們就能看出你平時穿衣打扮,因為發(fā)表的每一張look都是對自己平時的一個真實寫照。用戶發(fā)表的每一張look都是對應(yīng)自己所購買的衣服,從而我們就可以從look中對應(yīng)到相應(yīng)的商品中。
拋開性別這個普遍的共性來分析,我們可以根據(jù)用戶平時發(fā)表的look的風(fēng)格來觀察該用戶的穿衣習(xí)慣,從而得到用戶可能喜歡的商品類型,繼而向用戶推薦他們想要看到或者想要購買的衣服。
在icon的系統(tǒng)中,用戶看見自己喜歡的look時,可以對其進行點贊或者收藏。用戶也可以關(guān)注其他的用戶,成為他的粉絲,隨時關(guān)注他(她)發(fā)表的look,你們之間也可以相互交流探討穿衣打扮的技巧。
在認真觀察項目后,可以看出用戶發(fā)表look的風(fēng)格就是所謂的關(guān)鍵點。
3.2 統(tǒng)計關(guān)鍵點數(shù)據(jù)
用戶發(fā)表的look,關(guān)注的look,點贊的look,以及收藏的look我們都統(tǒng)一存到了數(shù)據(jù)庫中。平臺是用mybatis連接的數(shù)據(jù)庫,所以,數(shù)據(jù)我們可以寫sql語句直接獲取到,而不用去分析歷史數(shù)據(jù)或者網(wǎng)絡(luò)爬蟲去解析用戶瀏覽行為等。
這個算法,我要求只需要能獲取到用戶偏重的前三個就行,所以常用到的mysql中的limit關(guān)鍵字,limit接受一個或兩個數(shù)字參數(shù),參數(shù)必須是一個整數(shù)常量,如果給定兩個參數(shù),第一個參數(shù)指定第一個返回記錄行的偏移量,第二個參數(shù)指定返回記錄行的最大數(shù)目。在使用limit時,要先判斷查詢到的數(shù)據(jù)集的數(shù)目有多少,防止查詢的時候出錯。
舉個例子,通過tbl_look表和tbl_user_likes表來查找id為131的用戶點贊的look風(fēng)格的前三個的mysql語句:
SELECT tul.id,tul.uid,tul.lookid,tl.style,COUNT(tl.style) AS sc FROM tbl_user_likes tul ,tbl_looks tl WHERE tul.uid=131 and tl.id=tul.lookid GROUP BY tl.style ORDER BY sc DESC LIMIT 3
3.3 畫出涉及關(guān)鍵點的表格
為了更形象的觀察用戶的自己的風(fēng)格以及自己和其他人的風(fēng)格,我們將查詢的數(shù)據(jù)用表格的形式展示出來。這樣就可以一目了然的通過觀察表格得出合理的結(jié)論。
3.4 整理分析,推薦內(nèi)容
分析表1,因為用戶發(fā)表、點贊和收藏的數(shù)量差別可能比較大,所以我們就按照表格中展示的三項以及它們的權(quán)值來計算每個用戶表側(cè)重的風(fēng)格。
每個用戶的風(fēng)格評分計算如下:
[fur=i=03wiri]
[fur]表示u用戶r風(fēng)格的評分,其中[wi]表示每個i指標的權(quán)值,會在第四章詳細介紹權(quán)值算法;[ri]表示u用戶r風(fēng)格是否存在i指標的參數(shù),存在為1,不存在為0。
經(jīng)過計算,我們得出甲用戶和丁用戶都比較側(cè)重ABC折三種風(fēng)格,并且甲和丁也互相關(guān)注了,那么我們完全就可以認為甲和丁用戶風(fēng)格類似,可以看成是相似用戶。按照基于用戶的協(xié)同過濾算法來考慮的話,我們可以把E風(fēng)格的服飾推薦給丁用戶,而把G風(fēng)格的服飾推薦給甲用戶。
我們還可以得出,BC風(fēng)格總是在一起,EF風(fēng)格總是在一起,我們就可以這樣認為,喜歡B風(fēng)格服飾的人通常也會喜歡C風(fēng)格的服飾,喜歡E風(fēng)格服飾的人通常也會喜歡F風(fēng)格服飾的人,反過來也一樣。按照基于內(nèi)容的系統(tǒng)過濾算法考慮的話,我們就可以把B風(fēng)格的服飾推薦給乙用戶。
3.5 通過圖片推薦給用戶商品
整個系統(tǒng)的模式是這樣的,通過用戶的各項特征找到一個關(guān)鍵點,再由該關(guān)鍵點給用戶推薦look,最后由推薦的look來決定用戶可能喜歡的商品(服裝)。如圖1所示:
4 指標的權(quán)重計算
各項指標的權(quán)重根據(jù)定量統(tǒng)計法算法計算得出。
定量統(tǒng)計計算權(quán)重的步驟如下:
1) 按照沒有關(guān)聯(lián)、有點關(guān)聯(lián)、關(guān)聯(lián)和非常關(guān)聯(lián)四個等級繪制出統(tǒng)計表格。
2) 以67%(2/3)位界限,若選擇“關(guān)聯(lián)”和“非常關(guān)聯(lián)”的比例合計小于67%,就刪除該指標,不予考慮。
3) 分別把沒有關(guān)聯(lián)賦值為1,有點關(guān)聯(lián)賦值為2,關(guān)聯(lián)賦值為3,非常關(guān)聯(lián)賦值為4,選擇出沒有關(guān)聯(lián)之外以上數(shù)據(jù)都進入統(tǒng)計,那么三種選項的權(quán)重分別為[w′1]=2/(2+3+4)=0.22;[w′2]=3/(2+3+4)=0.33;[w′3]=4/(2+3+4)=0.45。
4)指標權(quán)重計算:
[wi=pii=13pi]
其中[pi]為指標i的統(tǒng)計權(quán)值和:
[pi=j=13w′iaij]
其中,[aij]表示i指標除沒有關(guān)聯(lián)外的其他關(guān)聯(lián)度的統(tǒng)計數(shù),[a11]就表示指標1有點關(guān)聯(lián)的統(tǒng)計人數(shù),[a32]就表示指標3關(guān)聯(lián)的統(tǒng)計人數(shù)。
我們對使用該系統(tǒng)的用戶進行了一次統(tǒng)計,隨機抽出統(tǒng)計過的100名用戶來計算權(quán)值。
首先畫出統(tǒng)計的表格如下:
分別代表用戶發(fā)表、點贊和收藏look的風(fēng)格權(quán)值。通過計算得到的數(shù)值可明顯看出,用戶發(fā)表和收藏的look風(fēng)格所占比重比較大,點贊風(fēng)格所占比重較小。所以,發(fā)表和收藏風(fēng)格的特性能較大反映出用戶的風(fēng)格類型,而點贊風(fēng)格的特性稍次于發(fā)表和收藏特性。
5 結(jié)果分析
項目中我們引入了cnzz流量統(tǒng)計、網(wǎng)絡(luò)分析數(shù)據(jù)專家,可以通過cnzz來獲取到用戶滯留平臺的時間和點擊各個look的數(shù)量。
為了驗證該個性化推薦策略的可行性,我們隨機抽取了四名用戶,利用cnzz獲取到在推薦系統(tǒng)應(yīng)用的前后,用戶滯留系統(tǒng)的時間(從進入系統(tǒng)到退出系統(tǒng)的滯留時間),以及用戶點擊look的數(shù)量,描繪成線形圖如下:
通過這兩個柱狀圖,可以明顯的觀察到推薦策略應(yīng)用前后的效果,證明了我們所做的工作的可行性。
參考文獻:
[1] 丁宏飛,黃戰(zhàn).個性化電子商務(wù)系統(tǒng)中用戶興趣模型的研究[D].廣州:暨南大學(xué),2008.
[2] 王國霞,劉賀平.個性化推薦系統(tǒng)綜述[J].計算機工程與應(yīng)用,2012(9).
[3] 劉瑋.電子商務(wù)系統(tǒng)中的信息推薦方法研究[J].情報科學(xué),2006(4).
[4] 米鵬,段建勇,付曉宇.面向社區(qū)用戶的推薦策略研究[D].北京:北方工業(yè)大學(xué),2016.
[5] 曾春,邢春曉,周立柱.個性化服務(wù)技術(shù)綜述[J].軟件學(xué)報,2002(5).
[6] 于波,陳庚午,王愛玲,等.一種結(jié)合項目屬性的混合推薦算法[J].計算機技術(shù)應(yīng)用,2017(5).
[7] 王夢恬,魏晶晶,廖祥文,等.融合評論標簽的個性化推薦算法[J].計算機科學(xué)與探索,2016(4).
[8] 張曌,夏國平,李雪峰.基于案例推理的電子商務(wù)個性化推薦系統(tǒng)[J].計算機工程,2007(5).