,,,
(浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,杭州 310023)
Web在科技的進(jìn)步和信息的更新交替中進(jìn)入了“2.0時(shí)代”,同時(shí)由于各種信息更新速度的加快,互聯(lián)網(wǎng)的數(shù)據(jù)資源也同步進(jìn)入了大數(shù)據(jù)云時(shí)代,在某種程度上,網(wǎng)絡(luò)垃圾和無(wú)效資源也越來(lái)越多,當(dāng)普通用戶想要尋找某種有用的資源時(shí),如何在海量數(shù)據(jù)中篩選出特定的資源變成一個(gè)急需解決的問(wèn)題。
搜索引擎作為人們獲取信息的渠道和關(guān)鍵,始終是各大互聯(lián)網(wǎng)公司的一個(gè)爭(zhēng)奪的熱點(diǎn)。當(dāng)人們坐下來(lái),打開電腦,面對(duì)龐大的互聯(lián)網(wǎng)世界時(shí),第一件事情往往就是打開搜索引擎,輸入關(guān)鍵字,從而以最快的速度找到自己想要的信息。但是同樣存在明顯的缺陷,即對(duì)用戶的文化水平有一定程度的門檻,有一部分人不知道如何聯(lián)想到并精確的概括自己的目標(biāo)信息,從而錯(cuò)過(guò)很多實(shí)時(shí)信息;還有一些用戶并沒(méi)有絕對(duì)明確的目標(biāo),只是想瀏覽一些自己感興趣的話題,并不想要通過(guò)某些關(guān)鍵字使得信息狹隘化,因?yàn)橛行╆P(guān)鍵字之間的共同信息領(lǐng)域很??;還有一些用戶對(duì)感興趣的話題并不能用幾個(gè)關(guān)鍵字去概括,因而無(wú)法定位到自己想要的數(shù)據(jù)資料。然而對(duì)數(shù)據(jù)信息的制造者而言,由于現(xiàn)在互聯(lián)網(wǎng)的競(jìng)爭(zhēng)非常激烈,希望自己的信息被關(guān)注被采納、用戶量節(jié)節(jié)攀升也不是一件容易的事情。在這種情況背景下,數(shù)據(jù)推薦應(yīng)需而生。對(duì)于用戶而言,數(shù)據(jù)推薦系統(tǒng)可通過(guò)云計(jì)算,在使用界面里主動(dòng)跳出或許對(duì)用戶有價(jià)值的信息,從而使用戶達(dá)到自己的目的,得到更好地使用體驗(yàn);而對(duì)于制造者,數(shù)據(jù)推薦可以在一定程度上合理地把信息推銷給潛在用戶,從而增加自己的點(diǎn)擊量,這對(duì)于雙方而言是一個(gè)共贏的局面。
現(xiàn)如今,數(shù)據(jù)推薦引擎適用范圍非常廣泛,尤其值得關(guān)注的就是近幾年發(fā)展迅猛的電子商務(wù)平臺(tái),以淘寶為例:當(dāng)使用者搜索過(guò)某類商品以后,它就會(huì)儲(chǔ)存這個(gè)點(diǎn)擊數(shù)據(jù)同時(shí)進(jìn)行某種用戶偏好的計(jì)算統(tǒng)計(jì),結(jié)合商家的綜合排位和對(duì)淘寶平臺(tái)的廣告買位,在使用者平臺(tái)上進(jìn)行個(gè)人化的反饋,使用者就會(huì)很容易的注意到自己感興趣的信息,同時(shí)商家獲取更多的點(diǎn)擊量和利潤(rùn),淘寶自身也獲得巨額利潤(rùn),這是一個(gè)“三贏”的結(jié)果。再如分享交互類的社交平臺(tái),以新浪微博為例,建立推薦的機(jī)制,向用戶推薦好友的搜索熱點(diǎn)和關(guān)注人分享的內(nèi)容,使得每一個(gè)使用者的界面都是獨(dú)特的個(gè)人化的,而且這都是使用者一手操辦,所以這些信息對(duì)于使用者而言是感興趣的有價(jià)值的。同時(shí)被關(guān)注者也可以利用這種關(guān)注量和影響力獲得經(jīng)濟(jì)利益,平臺(tái)作為秩序的維持者和信息資料的擁有者也可以獲得巨大的利益。就目前而言,信息推薦系統(tǒng)在各大領(lǐng)域都產(chǎn)生了良好的效果和不可或缺的作用,用戶也逐漸習(xí)慣和信賴信息推薦系統(tǒng),可以說(shuō)這是一個(gè)成功的機(jī)制。
國(guó)內(nèi)外學(xué)者和研究機(jī)構(gòu)從不同的視角對(duì)多源異構(gòu)數(shù)據(jù)和推薦方法進(jìn)行了研究。
從RSS推薦技術(shù)方向出發(fā)的代表性工作主要有:Hao Han等人[1]在RSS推送的基礎(chǔ)上構(gòu)造網(wǎng)絡(luò)新聞文章內(nèi)容自動(dòng)提取系統(tǒng),可以從新聞網(wǎng)頁(yè)中提取對(duì)用戶有價(jià)值的文章內(nèi)容;陳鋒等人[6]對(duì)信息服務(wù)資源進(jìn)行聚合需求分析,提出了一種基于RSS推送技術(shù)的信息服務(wù)內(nèi)容聚合服務(wù)方式。
其次,協(xié)同過(guò)濾推送是目前主要使用的推送方式之一,協(xié)同過(guò)濾推送不僅可以實(shí)現(xiàn)信息的推送,而且可以根據(jù)用戶的興趣實(shí)現(xiàn)個(gè)性化推送。目前對(duì)協(xié)同過(guò)濾推送技術(shù)研究中具有代表性的有:郭艷紅等人[7]提出了一種基于稀疏矩陣的個(gè)性化改進(jìn)策略,能夠避免用戶之間相似度不密切的關(guān)系,提高了矩陣在稀疏情況的預(yù)測(cè)準(zhǔn)確度。李聰、梁昌勇等人[8]提出了基于領(lǐng)域最鄰近的協(xié)同過(guò)濾推薦算法,使數(shù)據(jù)的稀疏性得到了降低,提高了推薦準(zhǔn)確性。
從數(shù)據(jù)傳輸方向出發(fā)的代表性工作主要是Menglan Hu等人[2]設(shè)計(jì)了一種分階段獲取云端分享數(shù)據(jù)的算法,能夠有效地控制數(shù)據(jù)的傳輸成本。國(guó)內(nèi)的許富龍、劉明等人[9]進(jìn)一步提出了一種基于相對(duì)距離感知的動(dòng)態(tài)數(shù)據(jù)傳輸策略,采用傳感器節(jié)點(diǎn)到匯聚點(diǎn)的相對(duì)距離來(lái)計(jì)算節(jié)點(diǎn)傳輸概率的大小,并以此作為消息傳輸時(shí)選擇下一跳的依據(jù)。
在利用推送技術(shù)實(shí)現(xiàn)系統(tǒng)的研究中,中國(guó)科學(xué)院軟件研究所的劉鑫、陳偉[10]提出了一種基于AJAX和Server Push的web樹組件,為用戶提供了類似于在windows資源管理器中對(duì)目錄樹操作的基本功能和用戶體驗(yàn)。
但以上方法均只是通過(guò)修改推送方式而實(shí)現(xiàn)對(duì)單一數(shù)據(jù)源進(jìn)行推薦,并沒(méi)有過(guò)多考慮多源異構(gòu)數(shù)據(jù)的個(gè)性化推薦問(wèn)題,也沒(méi)能實(shí)現(xiàn)云推薦。本文提出的USDR模型面向多源異構(gòu)數(shù)據(jù),通過(guò)將用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)分類來(lái)快速得到用戶和系統(tǒng)的不同推薦度,以實(shí)現(xiàn)數(shù)據(jù)的高效推薦。
在數(shù)據(jù)物流云推送平臺(tái)中,各類云數(shù)據(jù)數(shù)量龐大,種類繁多,根據(jù)系統(tǒng)服務(wù)種類大致可以分為成績(jī)查詢服務(wù)、工資數(shù)據(jù)服務(wù)、排隊(duì)服務(wù)、交通數(shù)據(jù)服務(wù)、購(gòu)物信息服務(wù)、股票期貨服務(wù)、多媒體數(shù)據(jù)推送服務(wù)等。
由于是基于云推送的數(shù)據(jù)物流服務(wù)平臺(tái),平臺(tái)中許多系統(tǒng)會(huì)提供類似的服務(wù),比如3種股票軟件都通過(guò)本平臺(tái)為客戶提供金融數(shù)據(jù)推送,但是其中一款股票軟件是收費(fèi)軟件,數(shù)據(jù)推送響應(yīng)時(shí)間更快、推送的服務(wù)更多,但價(jià)格也是同類股票軟件中最高的。除了相同類型的服務(wù)中出現(xiàn)的情況,用戶數(shù)據(jù)信息之間也存在不同,用戶將會(huì)根據(jù)自己的基礎(chǔ)信息選擇不同的服務(wù)。比如交通數(shù)據(jù)服務(wù)中,有些用戶可能上班時(shí)間比較自由,那么他們可以選擇上下班高峰期過(guò)后的道路數(shù)據(jù)推送服務(wù),而有些用戶需要準(zhǔn)時(shí)到達(dá)單位,那么推送給他們當(dāng)時(shí)的路況數(shù)據(jù),可以使他們選擇在上下班高峰期避開一些擁堵路段;同樣,購(gòu)物信息服務(wù)中,經(jīng)濟(jì)條件好的用戶可能比較偏好奢侈品,而經(jīng)濟(jì)條件一般的用戶則偏好于普通實(shí)用的商品,所以在推送數(shù)據(jù)時(shí)就會(huì)有一定的差異性,需要建立用戶和系統(tǒng)的關(guān)系數(shù)據(jù)模型。
當(dāng)用戶請(qǐng)求獲取一種類型的服務(wù)時(shí),數(shù)據(jù)物流服務(wù)平臺(tái)應(yīng)該自動(dòng)根據(jù)現(xiàn)平臺(tái)中相同類型的系統(tǒng)和用戶自身的數(shù)據(jù),推送給用戶最合適的服務(wù),這樣就既能滿足用戶的功能性需求,同時(shí)也滿足了用戶的個(gè)性化需求。
用戶數(shù)據(jù)主要可以分為用戶基礎(chǔ)數(shù)據(jù)、時(shí)間數(shù)據(jù)、地點(diǎn)數(shù)據(jù)、用戶偏好數(shù)據(jù)、歷史數(shù)據(jù)等。
系統(tǒng)數(shù)據(jù)主要可以分為服務(wù)類型數(shù)據(jù)(如成績(jī)查詢服務(wù)、金融股票服務(wù)等)、服務(wù)介紹以及這些服務(wù)的范圍(價(jià)格、位置)。這些系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)多樣,類型復(fù)雜,并且有些數(shù)據(jù)是動(dòng)態(tài)變化的。為了能夠有效的處理這些云數(shù)據(jù),本文提出了USDR模型。
根據(jù)上文中的分析可以看出,用戶數(shù)據(jù)基本可以劃分為五類:
用戶基本數(shù)據(jù)(BasicData):包括用戶姓名、性別、身份證、電話、出身日期、職業(yè)、畢業(yè)學(xué)校、愛(ài)好、出生地等。
時(shí)間數(shù)據(jù)(TimeData):記錄用戶使用系統(tǒng)的日期和時(shí)間,同時(shí)也記錄用戶所在的時(shí)區(qū)。
地點(diǎn)數(shù)據(jù)(LocationData):用于記錄用戶所在的位置,包括城市,住所和工作地。
環(huán)境數(shù)據(jù)(EnvironmentData):記錄當(dāng)日天氣情況,溫度等。
用戶偏好數(shù)據(jù)(PerferenceData):記錄用戶的偏好情況,如運(yùn)動(dòng)、電影、理財(cái)、旅游、讀書等。
歷史數(shù)據(jù)(HistoryData):記錄用戶曾經(jīng)使用的系統(tǒng)服務(wù),常用的理財(cái),消費(fèi)記錄以及日志數(shù)據(jù)等。
通過(guò)UML工具可以很清晰的看出用戶各類數(shù)據(jù)之間的關(guān)系,并且通過(guò)設(shè)置主鍵顯示出各條屬性的重要程度,具體如圖1所示。
圖1 用戶數(shù)據(jù)模型
系統(tǒng)數(shù)據(jù)服務(wù)有成績(jī)查詢服務(wù)、工資數(shù)據(jù)服務(wù)、銀行排隊(duì)服務(wù)、交通數(shù)據(jù)服務(wù)、酒店預(yù)訂服務(wù)、股票期貨服務(wù)、多媒體數(shù)據(jù)推送服務(wù)。這些系統(tǒng)都屬于不同的領(lǐng)域,這些系統(tǒng)的數(shù)據(jù)類型復(fù)雜程度高,數(shù)量大,若不進(jìn)行建模將很難進(jìn)行云推送,在對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行建模之后也更利于數(shù)據(jù)的個(gè)性化推薦,本章選擇具有代表性的成績(jī)查詢服務(wù)系統(tǒng)和多媒體數(shù)據(jù)服務(wù)系統(tǒng)進(jìn)行系統(tǒng)數(shù)據(jù)模型建模。
2.2.1 成績(jī)查詢服務(wù)系統(tǒng)
成績(jī)查詢服務(wù)系統(tǒng)主要為在校學(xué)生提供每個(gè)學(xué)期結(jié)束之后的成績(jī)查詢服務(wù),首先最高層應(yīng)該為用戶的類型,為本科生、碩士研究生還是博士研究生,確定了學(xué)生類型之后需要到各個(gè)學(xué)院中查詢數(shù)據(jù),由于很多學(xué)院中的必修課是相同的,所以為了避免重復(fù)的查詢接下來(lái)模型中將分為必修課和選修課以及實(shí)踐活動(dòng)。最終得到各門功課的成績(jī)。最后學(xué)生得到了該門課的成績(jī)之后,還需要對(duì)老師進(jìn)行評(píng)價(jià)。
系統(tǒng)數(shù)據(jù)模型再結(jié)合用戶數(shù)據(jù)模型可以看出,在用戶數(shù)據(jù)模型中的用戶偏好,畢業(yè)院校就可以更加精確地給用戶推送推薦數(shù)據(jù),同時(shí)這種分層的結(jié)構(gòu)能使云推送更加高效。
2.2.2 多媒體數(shù)據(jù)服務(wù)系統(tǒng)
多媒體數(shù)據(jù)服務(wù)相對(duì)于成績(jī)查詢服務(wù)將會(huì)復(fù)雜很多,多媒體數(shù)據(jù)服務(wù)各種系統(tǒng)中,可以將數(shù)據(jù)的類型分為文字?jǐn)?shù)據(jù)、音頻數(shù)據(jù)、視頻數(shù)據(jù)、圖文數(shù)據(jù)等。根據(jù)多媒體服務(wù)的不同類型和用戶的偏好將分為新聞,體育,娛樂(lè),游戲,電影等,然后再對(duì)具體需要推送的數(shù)據(jù)進(jìn)行分類。
系統(tǒng)數(shù)據(jù)模型主要元素包括基本數(shù)據(jù)、功能數(shù)據(jù)和其他數(shù)據(jù):
基礎(chǔ)數(shù)據(jù)(SerBasicData):主要是對(duì)系統(tǒng)服務(wù)的基本描述,包括服務(wù)提供商,服務(wù)類型,服務(wù)ID,服務(wù)名稱,服務(wù)簡(jiǎn)介等數(shù)據(jù)。
功能數(shù)據(jù)(SerFunctionData):主要對(duì)服務(wù)中的功能性參數(shù)進(jìn)行描述,即服務(wù)輸入輸出參數(shù),服務(wù)的接口參數(shù),最終服務(wù)執(zhí)行結(jié)果等。
其他數(shù)據(jù):主要有些系統(tǒng)需要定位數(shù)據(jù),天氣數(shù)據(jù)等其他因素。
傳統(tǒng)的推薦算法有皮爾遜相關(guān)系數(shù)法、向量余弦法、斯皮爾曼相關(guān)系數(shù)法等等,在不同的領(lǐng)域中,需要選取不同的相似度計(jì)算方法。由于云數(shù)據(jù)的特殊性,本文重新設(shè)計(jì)了基于USDR的個(gè)性化云推送推薦算法,根據(jù)用戶、系統(tǒng)的相似值來(lái)計(jì)算推薦的系統(tǒng)數(shù)據(jù)。本章的模型中存在用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)兩種數(shù)據(jù)類型,針對(duì)該模型設(shè)計(jì)了基于用戶的云推薦算法和基于系統(tǒng)的云推薦算法。
基于用戶的云推薦算法主要目的在于計(jì)算兩個(gè)用戶的相似度,本算法中主要使用用戶行為相似度來(lái)計(jì)算用戶的類似喜好。本算法由兩部分組成:一部分采用用戶基礎(chǔ)屬性來(lái)決定用戶的相似程度,通過(guò)計(jì)算得出的基本屬性差異越小,則相似程度越高;第二部分是偏好、位置和服務(wù)記錄數(shù)據(jù)等,通過(guò)查看用戶的地理位置和歷史感興趣的系統(tǒng)的數(shù)值,該數(shù)值越大,則用戶之間的相似程度越高,最后計(jì)算總相似度。
3.1.1 基礎(chǔ)屬性相似度
基礎(chǔ)屬性一般都是數(shù)值類型,如性別,年齡,畢業(yè)院校等。對(duì)于數(shù)值型屬性,只需要計(jì)算絕對(duì)值之差|D|=|Attr1-Attr2|。對(duì)于名稱型的基礎(chǔ)數(shù)據(jù),一般取值類型比較單一,就可以采用二進(jìn)制編碼的方式來(lái)表示,比如性別:男、女,分別對(duì)應(yīng)00、01。其他以此類推。最終將用戶全部名稱型數(shù)據(jù)編碼串聯(lián)起來(lái),行成一個(gè)二進(jìn)制串。
不同的數(shù)值型屬性的絕對(duì)值最大與最小的差距為[α1,αn],然后把這個(gè)區(qū)間劃分為n-1個(gè)相等的區(qū)間{[α1,α2],[α2,α3],...,[αn-1,αn]},對(duì)每個(gè)區(qū)間給予相應(yīng)的數(shù)值{0,1,2,3...n},當(dāng)用戶的數(shù)值型屬性絕對(duì)值落在某個(gè)區(qū)間時(shí),即可得出屬性間的距離Dbnum。對(duì)于名稱型屬性,通過(guò)確定編碼位數(shù)n,然后將每個(gè)取值通過(guò)格雷編碼,然后依次鏈接起來(lái),最后通過(guò)計(jì)算海明距離,得到名稱型屬性距離DH。定義用戶A和B,每個(gè)基礎(chǔ)屬性的權(quán)重值為wi,則所有屬性權(quán)重值滿足:
(1)
對(duì)于數(shù)值型的屬性距離Dbnum,根據(jù)上面的解釋,定義不同的取值區(qū)間:
若α∈[α1,α2],則dbnum=0;
若α∈[α2,α3],則dbnum=1;
.......
若α∈[αn-1,αn],則dbnum=n-1;
數(shù)值屬性的距離計(jì)算為:
(2)
對(duì)于名稱型的屬性距離Dbnum,則對(duì)不同的取值進(jìn)行編碼。將用戶的全部名稱屬性編碼串聯(lián)起來(lái),形成二進(jìn)制串At;采用At的海明距離來(lái)計(jì)算用戶名稱屬性的距離。
DH=wDhm(DbnumA,DbnumB)
(3)
最終得到2個(gè)用戶A與B的基礎(chǔ)屬性距離:
(4)
通過(guò)差值DA-B可以看出,DA-B越小,相似度則越大,DA-B越大,則相似度越小。
3.1.2 用戶偏好相似度
若給定用戶A和B,N(A)表示用戶A的偏好相似度集合,N(B)表示用戶B的偏好相似度集合(如時(shí)間,位置,系統(tǒng)使用情況等),運(yùn)用余弦公式相似度計(jì)算公式:
(5)
表1 用戶偏好表
從表1的用戶偏好可以得出:用戶A對(duì){成績(jī),金融,酒店}方面的系統(tǒng)感興趣,用戶B對(duì){成績(jī),工資}方面的系統(tǒng)感興趣,所以可以計(jì)算出用戶A和用戶B的偏好相似度,如下所示:
用余弦公式計(jì)算用戶間兩兩的相似度之后,算法通過(guò)綜合分析基礎(chǔ)數(shù)據(jù)相似度和用戶偏好數(shù)據(jù)相似度后,再進(jìn)行推薦,推薦度公式如6所示:
(6)
公式中,DA-B為基礎(chǔ)數(shù)據(jù)的差值,N(i)表示對(duì)項(xiàng)目i有偏好的用戶組,Re(u,k)表示存在與用戶A偏好類似的用戶組。Wab描述用戶A與用戶B的相似度,ybi表示用戶B對(duì)項(xiàng)目i的偏好程度。
基于系統(tǒng)的云推薦算法和基于用戶偏好的推薦算法有些類似,主要通過(guò)以下兩步完成:首先計(jì)算系統(tǒng)之間的相似程度,然后根據(jù)相似度生成系統(tǒng)推薦列表。
根據(jù)余弦公式可得系統(tǒng)的相似度:
(7)
(8)
假設(shè)有a,b,c,d,e5個(gè)系統(tǒng),同時(shí)存在A,B,C,D,E5位用戶,對(duì)每位用戶偏好的項(xiàng)目用矩陣表示:
用戶A:偏好a,b,c系統(tǒng),用矩陣表示為:
用戶B:偏好a,b,d系統(tǒng),用矩陣表示為:
用戶C:偏好a,d系統(tǒng),用矩陣表示為:
用戶D:偏好b,c,e系統(tǒng),用矩陣表示為:
用戶E:偏好a,e系統(tǒng),用矩陣表示為:
將A,B,C,D,E矩陣全部相加之后可得矩陣S,S[i][j]則表示同時(shí)對(duì)系統(tǒng)i和系統(tǒng)j都偏好的用戶數(shù)量。
得到相似度矩陣之后,通過(guò)公式(7)計(jì)算用戶a對(duì)系統(tǒng)i的推薦度:
Recommdsys(a,i)=∑i∈N(u)∩S(i,k)wij
(9)
公式(9)中表示當(dāng)前用戶的偏好集合,S(i,k)表示與系統(tǒng)i比較相似的K個(gè)系統(tǒng)的集合,wij是系統(tǒng)i與系統(tǒng)j的相似度。將該推薦度從大到小排列,采用TOP-N的方式取前N個(gè)系統(tǒng)推薦給用戶。
為了達(dá)到更好的用戶體驗(yàn),為用戶提供個(gè)性化的推薦服務(wù),基于USDR模型運(yùn)行過(guò)程如圖2所示,首先根據(jù)用戶注冊(cè)數(shù)據(jù)為用戶建模,其次為平臺(tái)中每個(gè)系統(tǒng)進(jìn)行建模,當(dāng)模型構(gòu)建完成之后,分析用戶注冊(cè)數(shù)據(jù)中的基礎(chǔ)屬性數(shù)據(jù),計(jì)算出基礎(chǔ)屬性相似度,再算出用戶偏好屬性相似度,最后同理算出基于系統(tǒng)的云推送推薦算法,最終為用戶推送推薦數(shù)據(jù)。
通過(guò)分別計(jì)算用戶和系統(tǒng)數(shù)據(jù)的推薦度會(huì)導(dǎo)致結(jié)果比較粗糙,為了使得云推薦算法更加精確,將用戶數(shù)據(jù)推薦度加入到系統(tǒng)數(shù)據(jù)推薦度中,得出綜合推薦度列表,將使推薦度的結(jié)果更加準(zhǔn)確和方便,更加方便于下一步的云推送。如何使用基于USDR模型的云推薦算法得出用戶推薦度列表的具體流程如圖3所示。
圖2 基于USDR模型運(yùn)行過(guò)程
圖3 基于USDR模型的云推薦算法運(yùn)行流程
1)查看用戶歷史記錄數(shù)據(jù)表,若用戶的歷史數(shù)據(jù)為空,則說(shuō)明為新注冊(cè)用戶,那么就執(zhí)行步驟2),否則執(zhí)行步驟5);
2)查看用戶基礎(chǔ)數(shù)據(jù)中的好友表,若有好友,則執(zhí)行步驟3),若無(wú),則執(zhí)行步驟4);
3)使該用戶分別與每位好友分別用公式DA-B進(jìn)行計(jì)算,得出相似度,查看相似度在設(shè)定的權(quán)重值內(nèi)的用戶與該用戶關(guān)系最密切的好友,執(zhí)行步驟4);
4)使用公式(4)計(jì)算所有在權(quán)重值范圍內(nèi)的好友的偏好推薦度Recommenduser,加入用戶推薦列表中,執(zhí)行步驟5);
5)使用公式(7)計(jì)算的歷史數(shù)據(jù)表中每個(gè)系統(tǒng)的推薦度RecommendSystem,將這些系統(tǒng)放入推薦列表,執(zhí)行步驟6);
6)將步驟4)和步驟5)中的Recommenduser和RecommendSystem分別平方,再求和開根號(hào)得出綜合推薦度:
Recommendgeneral=
(10)
7)根據(jù)綜合推薦度,加入到綜合推薦度列表。
本文使用云推薦方法在安卓和iOS中進(jìn)行了測(cè)試,云數(shù)據(jù)來(lái)源于成績(jī)系統(tǒng),工資系統(tǒng)和微影視系統(tǒng),采集到數(shù)據(jù)后將數(shù)據(jù)的主要權(quán)重值分為:用戶權(quán)限,用戶登錄時(shí)間,用戶發(fā)布/訂閱的模式(一對(duì)多/一對(duì)一),用戶登錄數(shù)量,傳輸數(shù)據(jù)量。權(quán)重w是經(jīng)過(guò)綜合考慮而確定的。目前數(shù)據(jù)物流云推送平臺(tái)中存在的系統(tǒng)如圖4所示。
圖4 用戶登錄平臺(tái)選擇偏好的系統(tǒng)
用戶在手機(jī)端進(jìn)行注冊(cè),主要需要將用戶基礎(chǔ)數(shù)據(jù)和偏好信息填寫完畢,方便接下來(lái)的云推薦系統(tǒng)給用戶推薦個(gè)性化內(nèi)容。當(dāng)用戶基礎(chǔ)數(shù)據(jù)、偏好數(shù)據(jù)和系統(tǒng)數(shù)據(jù)都進(jìn)行綁定之后,得到如圖5所示的界面,此時(shí)平臺(tái)已經(jīng)根據(jù)云推薦算法將推薦數(shù)據(jù)放入推薦列表中,等待下一步的云推送。
圖5 用戶功能頁(yè)面
為衡量本文提出的USDR云推薦算法的能力,從算法效率、系統(tǒng)數(shù)量、平均傳輸率,通信率,靜置時(shí)流量等方面來(lái)對(duì)算法有效性進(jìn)行評(píng)估。
首先測(cè)試單機(jī)中的普通推薦算法和云推送平臺(tái)中的推薦算法進(jìn)行比較,單機(jī)使用Windows8 64位操作系統(tǒng),8GB內(nèi)存,10臺(tái)虛擬機(jī)同樣使用Windows8 64位操作系統(tǒng),8GB內(nèi)存,分別計(jì)算虛擬數(shù)據(jù)量為10~100萬(wàn)的數(shù)據(jù)量。
圖6 單機(jī)與云平臺(tái)中推薦算法效率對(duì)比
為了得到當(dāng)在數(shù)據(jù)量相同時(shí)運(yùn)算速度與虛擬機(jī)數(shù)據(jù)的關(guān)系,實(shí)驗(yàn)中使用50萬(wàn)的數(shù)據(jù)量,分別測(cè)試虛擬機(jī)數(shù)量為5~10臺(tái)時(shí)云推薦算法運(yùn)行的效率。
圖7 虛擬機(jī)數(shù)量不同對(duì)推薦算法的影響
平均傳輸率是指數(shù)據(jù)傳輸平均的“倍速”數(shù)。單倍數(shù)傳輸時(shí),即可記為1倍速,普通推送的平均傳輸率為10倍速,在數(shù)據(jù)量相同時(shí),結(jié)果如表2所示。
表2 平均傳輸率數(shù)據(jù)表 %
通信率是指單位時(shí)間內(nèi)用戶與云推送平臺(tái)的通信次數(shù),測(cè)試用戶是否愿意使用該平臺(tái)進(jìn)行數(shù)據(jù)推送,并同時(shí)測(cè)試了在通信次數(shù)高的時(shí)候會(huì)不會(huì)產(chǎn)生其他問(wèn)題(結(jié)果如圖8所示),普通的推薦算法通信率基本不變是由于在推送任務(wù)隊(duì)列消息的整個(gè)過(guò)程中一直都會(huì)向服務(wù)器發(fā)送請(qǐng)求,而本文提出的云推薦方法處于信息收集階段,隨著系統(tǒng)的運(yùn)行,任務(wù)數(shù)量增多,優(yōu)勢(shì)就逐漸顯示出來(lái),在任務(wù)數(shù)越多時(shí),花費(fèi)的通信量反而變少。
圖8 通信率變化圖
靜置時(shí)流量是指在手機(jī)靜置時(shí)由于推送而產(chǎn)生的額外流量,測(cè)試云推送平臺(tái)是否會(huì)因?yàn)橥ㄐ怕实母纳贫a(chǎn)生大量流量,分別使用云推送平臺(tái)和傳統(tǒng)推送平臺(tái)進(jìn)行測(cè)試(如表3所示),實(shí)驗(yàn)結(jié)果表明云推送平臺(tái)在移動(dòng)設(shè)備靜置時(shí)間較長(zhǎng)情況下流量消耗少于傳統(tǒng)推送平臺(tái)。
表3 靜置時(shí)流量對(duì)比
本文針對(duì)傳統(tǒng)的推送方式在推送多源異構(gòu)數(shù)據(jù)時(shí)遇到的效率低,實(shí)時(shí)性差等問(wèn)題,設(shè)計(jì)了面向多源異構(gòu)數(shù)據(jù)的云推送平臺(tái)來(lái)滿足云推送環(huán)境,并通過(guò)USDR模型解決了多源異構(gòu)數(shù)據(jù)推送問(wèn)題,滿足了用戶需求。
然而,該平臺(tái)能否滿足所有的用戶需求,能否供海量用戶使用還需要進(jìn)行驗(yàn)證,云推送平臺(tái)本身的性能提升以及各種演化方式將是本文下一步的研究?jī)?nèi)容。相信隨著這些關(guān)鍵問(wèn)題的攻破,面向多源異構(gòu)數(shù)據(jù)的云推送平臺(tái)將為用戶帶來(lái)更好的推送體驗(yàn)。