本發(fā)明涉及到一種基于USDR模型的云推薦方法
背景技術(shù):
:Web在科技的進(jìn)步和信息的更新交替中進(jìn)入了“2.0時(shí)代”,同時(shí)由于各種信息更新速度的加快,互聯(lián)網(wǎng)的數(shù)據(jù)資源也同步進(jìn)入了大數(shù)據(jù)云時(shí)代,在某種程度上,網(wǎng)絡(luò)垃圾和無效資源也越來越多,當(dāng)普通用戶想要尋找某種有用的資源時(shí),如何在海量數(shù)據(jù)中篩選出特定的資源變成一個(gè)急需解決的問題。在云環(huán)境中,對于云數(shù)據(jù)的統(tǒng)一建模一直是研究熱點(diǎn)。對于部署在云端的各類信息推薦系統(tǒng),其數(shù)據(jù)結(jié)構(gòu)是多源且異構(gòu)的,因此用戶對數(shù)據(jù)靈活性和安全性的要求更高。隨著數(shù)據(jù)信息技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)更新逐步加快,數(shù)據(jù)的更新也越來越快,因此,在云環(huán)境中,如何從海量信息中快速幫助用戶獲取偏好的信息數(shù)據(jù)一直是一個(gè)研究熱點(diǎn)。國內(nèi)外學(xué)者和研究機(jī)構(gòu)從不同的視角對Web數(shù)據(jù)和推薦方法進(jìn)行了研究。從RSS推薦技術(shù)方向出發(fā)的代表性工作主要有:上海大學(xué)的陳鋒等對信息服務(wù)資源進(jìn)行聚合需求分析,提出了一種基于RSS推送技術(shù)的信息服務(wù)內(nèi)容聚合服務(wù)方式;東京工業(yè)大學(xué)計(jì)算機(jī)科學(xué)系的HaoHan等在RSS推送的基礎(chǔ)上構(gòu)造網(wǎng)絡(luò)新聞文章內(nèi)容自動提取系統(tǒng),可以從新聞網(wǎng)頁中提取對用戶有價(jià)值的文章內(nèi)容。其次,協(xié)同過濾推送是目前主要使用的推送方式之一,協(xié)同過濾推送不僅可以實(shí)現(xiàn)信息的推送,而且可以根據(jù)用戶的興趣實(shí)現(xiàn)個(gè)性化推送。目前對協(xié)同過濾推送技術(shù)研究中具有代表性的有:大連理工大學(xué)系統(tǒng)工程研究所的郭艷紅等人提出了一種基于稀疏矩陣的個(gè)性化改進(jìn)策略,能夠避免用戶之間相似度不密切的關(guān)系,提高了矩陣在稀疏情況的預(yù)測準(zhǔn)確度。合肥工業(yè)大學(xué)管理學(xué)院的李聰、梁昌勇等人提出了基于領(lǐng)域最鄰近的協(xié)同過濾推薦算法,是數(shù)據(jù)的稀疏性得到了降低,提高了推薦準(zhǔn)確性。從數(shù)據(jù)傳輸方向出發(fā)的代表性工作主要是中國海洋大學(xué)應(yīng)用數(shù)學(xué)系的YangWang,馬杜賴卡瑪拉大學(xué)物理系的BharadwajVeeravalli設(shè)計(jì)了一種分階段獲取云端分享數(shù)據(jù)的算法,能夠有效的控制數(shù)據(jù)的傳輸成本。國內(nèi)電子科技大學(xué)計(jì)算機(jī)科學(xué)與工程系的許福龍,劉明等人進(jìn)一步提出了一種基于相對距離感知的動態(tài)數(shù)據(jù)傳輸策略,采用傳感器節(jié)點(diǎn)到匯聚點(diǎn)的相對距離來計(jì)算節(jié)點(diǎn)傳輸概率的大小,并以此作為消息傳輸時(shí)選擇下一跳的依據(jù)。但以上方法都只是通過單一修改推送方式或推薦算法而實(shí)現(xiàn)內(nèi)容的推薦,并側(cè)重于對傳統(tǒng)推送方式的技術(shù)改良,但并不能有效解決面向多源異構(gòu)數(shù)據(jù)的云環(huán)境下用戶的個(gè)性化推薦問題。一種理想的云推薦方法應(yīng)該考慮推送多源異構(gòu)數(shù)據(jù)時(shí)遇到的效率低,實(shí)時(shí)性差等問題,并能從用戶基礎(chǔ)屬性和偏好屬性出發(fā),來推送數(shù)據(jù),以滿足用戶個(gè)性化需求。技術(shù)實(shí)現(xiàn)要素:為了克服現(xiàn)有推送方式的無法解決面向多源異構(gòu)數(shù)據(jù)的云環(huán)境下用戶的個(gè)性化推薦問題的不足,本發(fā)明針對云環(huán)境下多源異構(gòu)數(shù)據(jù)的特征,綜合移動互聯(lián)網(wǎng)安全性和隱私性等特點(diǎn),本發(fā)明提供一種有效解決解決面向多源異構(gòu)數(shù)據(jù)的云環(huán)境下用戶的個(gè)性化推薦問題的基于USDR模型的云推薦方法,采用面向多源異構(gòu)數(shù)據(jù)的USDR(UserSystemDataRelationship)模型,通過將用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)分類來快速得到用戶和系統(tǒng)的不同推薦度,以實(shí)現(xiàn)云環(huán)境下數(shù)據(jù)的高效推薦。本發(fā)明所采用的技術(shù)方案是:一種基于USDR模型的云推薦方法,包括如下步驟:第一步:USDR數(shù)據(jù)模型建模,過程如下:用戶數(shù)據(jù)分為用戶基礎(chǔ)數(shù)據(jù)、時(shí)間數(shù)據(jù)、地點(diǎn)數(shù)據(jù)、用戶偏好數(shù)據(jù)和歷史數(shù)據(jù);系統(tǒng)數(shù)據(jù)分為服務(wù)類型數(shù)據(jù)、服務(wù)介紹以及這些服務(wù)的范圍;這些系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)多樣,類型復(fù)雜,并且有些數(shù)據(jù)是動態(tài)變化的。USDR模型能夠有效的處理這些云數(shù)據(jù)。1.1用戶數(shù)據(jù)模型建模用戶數(shù)據(jù)基本劃分為六類:用戶基本數(shù)據(jù)(BasicData)、時(shí)間數(shù)據(jù)(TimeData)、地點(diǎn)數(shù)據(jù)(LocationData)、環(huán)境數(shù)據(jù)(EnvironmentData)、用戶偏好數(shù)據(jù)(PerferenceData)和歷史數(shù)據(jù)(HistoryData);1.2系統(tǒng)數(shù)據(jù)模型建模系統(tǒng)數(shù)據(jù)模型主要元素包括:基礎(chǔ)數(shù)據(jù)(SerBasicData)、功能數(shù)據(jù)(SerFunctionData)和其他數(shù)據(jù)(SerOtherData);第二步:基于USDR模型的云推薦方法,過程如下:2.1基于用戶的云推薦方法傳統(tǒng)的推薦算法有皮爾遜相關(guān)系數(shù)法、向量余弦法、斯皮爾曼相關(guān)系數(shù)法等等,在不同的領(lǐng)域中,需要選取不同的相似度計(jì)算方法。由于云數(shù)據(jù)的特殊性,本發(fā)明提出了一種基于USDR模型的云推薦算法,根據(jù)用戶、系統(tǒng)的相似值來計(jì)算推薦的系統(tǒng)數(shù)據(jù)。主要目的在于計(jì)算兩個(gè)用戶的相似度,本算法中主要使用用戶行為相似度來計(jì)算用戶的類似喜好。本算法又兩部分組成:一部分由用戶基礎(chǔ)屬性來決定用戶的相似程度,通過計(jì)算,基本屬性的差異越小,則相似程度越高;第二部分是偏好、位置和服務(wù)記錄數(shù)據(jù)等,通過查看用戶的地理位置和歷史感興趣的系統(tǒng)的數(shù)值,該數(shù)值越大,則用戶之間的相似程度越高,最后計(jì)算總相似度。2.1.1計(jì)算基礎(chǔ)屬性相似度基礎(chǔ)屬性一般都是數(shù)值類型。對于數(shù)值型屬性,只需要計(jì)算絕對值只差|D|=|Attr1-Attr2|。對于名稱型的基礎(chǔ)數(shù)據(jù),一般取值類型比較單一,就可以采用二進(jìn)制編碼的方式來表示。最終將用戶全部名稱型數(shù)據(jù)編碼串聯(lián)起來,行成一個(gè)二進(jìn)制串。不同的數(shù)值型屬性的絕對值最大與最小的差距為[α1,αn],然后把這個(gè)區(qū)間劃分為n-1個(gè)相等的區(qū)間{[α1,α2],[α2,α3],...[αn-1,αn]},對每個(gè)區(qū)間給予相應(yīng)的數(shù)值{0,1,2,3...n},當(dāng)用戶的數(shù)值型屬性絕對值落在某個(gè)區(qū)間時(shí),即可得出屬性間的距離Dbnum。對于名稱型屬性,通過確定編碼位數(shù)n,然后將每個(gè)取值通過格雷編碼,然后依次鏈接起來,最后通過計(jì)算海明距離,得到名稱型屬性距離DH。定義用戶A和B,每個(gè)基礎(chǔ)屬性的權(quán)重值為wi,則所有屬性權(quán)重值滿足對于數(shù)值型的屬性距離Dbnum,根據(jù)上面的解釋,定義不同的取值區(qū)間:若α∈[α1,α2],則dbnum=0;若α∈[α2,α3],則dbnum=1;.......若α∈[αn-1,αn],則dbnum=n-1;數(shù)值屬性的距離計(jì)算為:對于名稱型的屬性距離Dbnum,則對不同的取值進(jìn)行編碼。將用戶的全部名稱屬性編碼串聯(lián)起來,形成二進(jìn)制串At;采用At的海明距離來計(jì)算用戶名稱屬性的距離。DH=wDhm(DbNumA,DbNamB)(3)最終得到2個(gè)用戶A與B的基礎(chǔ)屬性距離通過差值DA-B可得出,DA-B越小,相似度則越大,DA-B越大,則相似度越小。2.1.2計(jì)算用戶偏好相似度若給定用戶u和v,N(u)表示用戶u的偏好相似度集合,N(v)表示用戶v的偏好相似度集合,余弦公式相似度計(jì)算公式為:用余弦公式計(jì)算用戶間兩兩的相似度之后,算法通過綜合分析基礎(chǔ)數(shù)據(jù)相似度和用戶偏好數(shù)據(jù)相似度,再進(jìn)行推薦,推薦度公式如6所示。公式中,DA-B為基礎(chǔ)數(shù)據(jù)的差值,N(i)表示對項(xiàng)目i有偏好的用戶組,Re(u,l)表示存在與用戶A偏好類似的用戶組。wab描述用戶A與用戶B的相似度,ybi表示用戶B對項(xiàng)目i的偏好程度。2.2基于系統(tǒng)的云推薦方法,過程如下:2.2.1計(jì)算系統(tǒng)之間的相似程度根據(jù)余弦公式可得系統(tǒng)的相似度:從余弦公式中可以看出,Num(i)表示偏好系統(tǒng)i的用戶數(shù)量,Num(j)表示偏好系統(tǒng)j的用戶數(shù)量,與的比值表示在偏好系統(tǒng)i的用戶中同時(shí)也偏好系統(tǒng)j的比例。但是當(dāng)系統(tǒng)j是一個(gè)所有人都偏好的系統(tǒng)時(shí),任何其他系統(tǒng)通過公式(7)得出的結(jié)果都會很大,所以本發(fā)明中將公式(7)進(jìn)行修改,如公式(8)所示:公式(8)在分母中加入了相當(dāng)于降低了系統(tǒng)j的權(quán)重。首先設(shè)定權(quán)重值w區(qū)間范圍為[w1,wn],將[w1,wn]分割為n個(gè)小區(qū)間{[w1,w2],[w2,w3],...,[wn-1,wn]},每個(gè)區(qū)間賦值{0,1,2....,n},然后對所有系統(tǒng)兩兩比較,如果用戶的偏好落在區(qū)間范圍內(nèi),那么認(rèn)為這些系統(tǒng)屬于同一個(gè)領(lǐng)域,相似度很大,值得推薦。2.2.2根據(jù)相似度生成系統(tǒng)推薦列表首先分別將每位用戶對每個(gè)系統(tǒng)的偏好情況用矩陣表示,得到每位用戶的偏好矩陣,然后將所有用戶的偏好矩陣相加,得到相似度矩陣S,S[i][j]表示同時(shí)對系統(tǒng)i和系統(tǒng)j都偏好的用戶數(shù)量。得到相似度矩陣之后,通過公式7計(jì)算用戶a對系統(tǒng)i的推薦度:公式9中N(u)表示當(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)推薦給用戶。第三步:采用基于USDR模型的云推薦算法得出用戶推薦度列表:通過分別計(jì)算用戶和系統(tǒng)數(shù)據(jù)的推薦度會導(dǎo)致結(jié)果比較粗糙,為了使得云推薦算法更加精確,將用戶數(shù)據(jù)推薦度加入到系統(tǒng)數(shù)據(jù)推薦度中,得出綜合推薦度列表,將使推薦度的結(jié)果更加準(zhǔn)確和方便,更加方便于下一步的云推送。使用基于USDR模型的云推薦算法得出用戶推薦度列表的具體流程如下:3.1查看用戶歷史記錄數(shù)據(jù)表,若用戶的歷史數(shù)據(jù)為空,則說明為新注冊用戶,那么就執(zhí)行步驟3.2,否則執(zhí)行步驟3.5;3.2查看用戶基礎(chǔ)數(shù)據(jù)中的關(guān)聯(lián)用戶列表,若有關(guān)聯(lián)用戶,則執(zhí)行步驟3.3,若無,則執(zhí)行步驟3.4;3.3將該用戶與每位關(guān)聯(lián)用戶分別用公式DA-B進(jìn)行計(jì)算,得出相似度,查看相似度在設(shè)定的權(quán)重值內(nèi)的用戶,執(zhí)行步驟3.4;3.4使用公式(6)計(jì)算所有在權(quán)重值范圍內(nèi)的關(guān)聯(lián)用戶的偏好推薦度Recommenduser,加入用戶推薦列表中,執(zhí)行步驟3.5;3.5使用公式(9)計(jì)算的歷史數(shù)據(jù)表中每個(gè)系統(tǒng)的推薦度Recommendsystem,將這些系統(tǒng)放入推薦列表,執(zhí)行步驟3.6;3.6將步驟3.4和步驟3.5中的Recommenduser和Recommendsystem分別平方,再求和開根號得出綜合推薦度:3.7根據(jù)綜合推薦度,加入到綜合推薦度列表。本發(fā)明的優(yōu)點(diǎn)是:針對傳統(tǒng)推送方式下用戶被推薦內(nèi)容經(jīng)常較為相似、用戶滿意度低等問題。面向云環(huán)境中的數(shù)據(jù)呈現(xiàn)多源異構(gòu)的特點(diǎn),設(shè)計(jì)了基于USDR模型的云推薦方法,分別從用戶和系統(tǒng)兩邊來建模以滿足多系統(tǒng)面向不同用戶的個(gè)性化云推薦功能。通過將用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)分類來快速得到用戶和系統(tǒng)的不同推薦度,以實(shí)現(xiàn)云環(huán)境下數(shù)據(jù)的高效推薦,從而在海量信息中快速幫助用戶獲取偏好的信息,既能滿足用戶的功能性需求,同時(shí)也滿足了用戶的個(gè)性化需求。附圖說明圖1是用戶數(shù)據(jù)模型圖。圖2是成績查詢服務(wù)系統(tǒng)模型圖。圖3是多媒體服務(wù)數(shù)據(jù)模型圖。圖4是基于USDR模型運(yùn)行過程示意圖。圖5是基于USDR模型的云推薦算法運(yùn)行流程圖。具體實(shí)施方式下面結(jié)合附圖對本發(fā)明做進(jìn)一步說明。實(shí)施例1參照圖1~圖5,一種基于USDR模型的云推薦方法,包括以下步驟:第一步:USDR數(shù)據(jù)模型建模,過程如下:在云環(huán)境中,云數(shù)據(jù)數(shù)量龐大,種類繁多,根據(jù)系統(tǒng)服務(wù)種類,可以劃分為數(shù)據(jù)查詢服務(wù)、工資數(shù)據(jù)服務(wù)、排隊(duì)服務(wù)、交通數(shù)據(jù)服務(wù)、購物信息服務(wù)、股票期貨服務(wù)、多媒體數(shù)據(jù)推送服務(wù)等多種服務(wù)類型。比如有三種股票軟件都通過云平臺為客戶提供金融數(shù)據(jù)推送服務(wù),但是其中一款股票軟件是收費(fèi)軟件,數(shù)據(jù)推送響應(yīng)時(shí)間更快、推送的服務(wù)更多,但價(jià)格也是同類股票軟件中最高的。除了相同類型的服務(wù)中出現(xiàn)的情況,用戶數(shù)據(jù)信息之間也存在不同,用戶將會根據(jù)自己的基礎(chǔ)信息選擇不同的服務(wù)。比如交通數(shù)據(jù)服務(wù)服務(wù)中,有些用戶可能上班時(shí)間比較自由,那么他們可以選擇上下班高峰期過后的道路數(shù)據(jù)推送服務(wù),而有些用戶需要準(zhǔn)時(shí)到達(dá)單位,那么推送給他們當(dāng)時(shí)的路況數(shù)據(jù),可以使他們選擇在上下班高峰期避開一些擁堵路段;同樣,購物信息服務(wù)中,經(jīng)濟(jì)條件好的用戶可能比較偏好奢侈品,而經(jīng)濟(jì)條件一般的用戶則偏好于普通實(shí)用的商品,所以在推送數(shù)據(jù)是就會一定的差異性,需要建立用戶和系統(tǒng)的關(guān)系數(shù)據(jù)模型。當(dāng)用戶請求獲取一種類型的服務(wù)時(shí),基于USDR模型的云推薦方法應(yīng)該自動根據(jù)現(xiàn)有云環(huán)境中相同類型的系統(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ù)(如成績查詢服務(wù)、金融股票服務(wù)等)、服務(wù)介紹以及這些服務(wù)的范圍(價(jià)格、位置)。這些系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)多樣,類型復(fù)雜,并且有些數(shù)據(jù)是動態(tài)變化的。USDR模型能夠有效的處理這些云數(shù)據(jù)。1.1用戶數(shù)據(jù)模型建模用戶數(shù)據(jù)基本可以劃分為六類,如表1所示:用戶基本數(shù)據(jù)(BasicData):包括用戶姓名、性別、身份證、電話、出身日期、職業(yè)、畢業(yè)學(xué)校、愛好、出生地等。時(shí)間數(shù)據(jù)(TimeData):記錄用戶的使用系統(tǒng)的時(shí)間,同時(shí)也記錄用戶所在的時(shí)區(qū)。地點(diǎn)數(shù)據(jù)(LocationData):用于記錄用戶所在的位置,包括城市,工作日經(jīng)常出沒地點(diǎn)。環(huán)境數(shù)據(jù)(EnvironmentData):記錄當(dāng)日天氣情況,溫度等。用戶偏好數(shù)據(jù)(PerferenceData):記錄用戶的偏好情況,如運(yùn)動,電影,理財(cái),旅游,讀書等。歷史數(shù)據(jù)(HistoryData):記錄用戶曾經(jīng)使用的系統(tǒng),常用的理財(cái),消費(fèi)記錄等。表1通過UML工具可以很清晰的看出用戶各類數(shù)據(jù)之間的關(guān)系,并且通過設(shè)置主鍵顯示出各條屬性的重要程度,具體如圖1所示。系統(tǒng)數(shù)據(jù)服務(wù)有成績查詢服務(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)行云推送,在對系統(tǒng)數(shù)據(jù)進(jìn)行建模之后也跟利于數(shù)據(jù)的個(gè)性化推薦云推送,本例選擇具有代表性的成績查詢服務(wù)系統(tǒng)和多媒體數(shù)據(jù)服務(wù)系統(tǒng)進(jìn)行系統(tǒng)數(shù)據(jù)模型建模。1.2系統(tǒng)數(shù)據(jù)模型建模(1)成績查詢服務(wù)系統(tǒng)成績查詢服務(wù)系統(tǒng)主要為在校學(xué)生提供每個(gè)學(xué)期結(jié)束之后的成績查詢服務(wù),首先最高層應(yīng)該為用戶的類型,為本科生、碩士研究生還是博士研究生,確定了學(xué)生類型之后需要到各個(gè)學(xué)院中查詢數(shù)據(jù),由于很多學(xué)院中的必修課是相同的,所以為了避免重復(fù)的查詢接下來模型中將分為必修課和選修課以及實(shí)踐活動。最終得到個(gè)門功課的成績。最后學(xué)生得到了該門課的成績之后,還需要對老師進(jìn)行評價(jià),如圖2所示。系統(tǒng)數(shù)據(jù)模型再結(jié)合用戶數(shù)據(jù)模型可以看出,在用戶數(shù)據(jù)模型中的用戶偏好,畢業(yè)院校就可以更加精確的給用戶推送推薦數(shù)據(jù),同時(shí)這種分層的結(jié)構(gòu)能使云推送更加高效。(2)多媒體數(shù)據(jù)服務(wù)系統(tǒng)多媒體數(shù)據(jù)服務(wù)相對于成績查詢服務(wù)將會復(fù)雜很多,多媒體數(shù)據(jù)服務(wù)各種系統(tǒng)中,可以將數(shù)據(jù)的類型分為文字?jǐn)?shù)據(jù)、音頻數(shù)據(jù)、視頻數(shù)據(jù)、圖文數(shù)據(jù)等。根據(jù)多媒體服務(wù)的不同類型和用戶的偏好將分為新聞,體育,娛樂,游戲,電影等,接下來再繼續(xù)對具體需要推送的數(shù)據(jù)進(jìn)行分類,詳情見圖3。系統(tǒng)數(shù)據(jù)模型主要元素包括基本數(shù)據(jù),其他數(shù)據(jù)如表2所示:基礎(chǔ)數(shù)據(jù)(SerBasicData):主要是對系統(tǒng)服務(wù)的基本描述,包括服務(wù)提供商,服務(wù)類型,服務(wù)ID,服務(wù)名稱,服務(wù)簡介等數(shù)據(jù)。功能數(shù)據(jù)(SerFunctionData):主要對服務(wù)中的功能性參數(shù)進(jìn)行描述,即服務(wù)輸入輸出參數(shù),服務(wù)的接口參數(shù),最終服務(wù)執(zhí)行結(jié)果等。其他數(shù)據(jù)(SerOtherData):主要有些系統(tǒng)需要定位數(shù)據(jù),天氣數(shù)據(jù)等其他因素。表2第二步:基于USDR模型的云推薦算法,過程如下:2.1基于用戶的云推薦算法傳統(tǒng)的推薦算法有皮爾遜相關(guān)系數(shù)法、向量余弦法、斯皮爾曼相關(guān)系數(shù)法等等,在不同的領(lǐng)域中,需要選取不同的相似度計(jì)算方法。由于云數(shù)據(jù)的特殊性,本發(fā)明提出了一種基于USDR模型的云推薦算法,根據(jù)用戶、系統(tǒng)的相似值來計(jì)算推薦的系統(tǒng)數(shù)據(jù)。主要目的在于計(jì)算兩個(gè)用戶的相似度,本算法中主要使用用戶行為相似度來計(jì)算用戶的類似喜好。本算法又兩部分組成:一部分由用戶基礎(chǔ)屬性來決定用戶的相似程度,通過計(jì)算,基本屬性的差異越小,則相似程度越高;第二部分是偏好、位置和服務(wù)記錄數(shù)據(jù)等,通過查看用戶的地理位置和歷史感興趣的系統(tǒng)的數(shù)值,該數(shù)值越大,則用戶之間的相似程度越高,最后計(jì)算總相似度。(1)基礎(chǔ)屬性相似度基礎(chǔ)屬性一般都是數(shù)值類型,如性別,年齡,畢業(yè)院校等。對于數(shù)值型屬性,只需要計(jì)算絕對值只差|D|=|Attr1-Attr2|。對于名稱型的基礎(chǔ)數(shù)據(jù),一般取值類型比較單一,就可以采用二進(jìn)制編碼的方式來表示,比如性別:男,女,分別對應(yīng)00,01。其他復(fù)雜點(diǎn)的以此類推。最終將用戶全部名稱型數(shù)據(jù)編碼串聯(lián)起來,行成一個(gè)二進(jìn)制串。不同的數(shù)值型屬性的絕對值最大與最小的差距為[α1,αn],然后把這個(gè)區(qū)間劃分為n-1個(gè)相等的區(qū)間{[α1,α2],[α2,α3],...[αn-1,αn]},對每個(gè)區(qū)間給予相應(yīng)的數(shù)值{0,1,2,3...n},當(dāng)用戶的數(shù)值型屬性絕對值落在某個(gè)區(qū)間時(shí),即可得出屬性間的距離Dbnum。對于名稱型屬性,通過確定編碼位數(shù)n,,然后將每個(gè)取值通過格雷編碼,然后依次鏈接起來,最后通過計(jì)算海明距離,得到名稱型屬性距離DH。定義用戶A和B,每個(gè)基礎(chǔ)屬性的權(quán)重值為wi,則所有屬性權(quán)重值滿足對于數(shù)值型的屬性距離Dbnum,根據(jù)上面的解釋,定義不同的取值區(qū)間:若α∈[α1,α2],則dbnum=0;若α∈[α2,α3],則dbnum=1;.......若α∈[αn-1,αn],則dbnum=n-1;數(shù)值屬性的距離計(jì)算為:對于名稱型的屬性距離Dbnum,則對不同的取值進(jìn)行編碼。將用戶的全部名稱屬性編碼串聯(lián)起來,形成二進(jìn)制串At;采用At的海明距離來計(jì)算用戶名稱屬性的距離。DH=wDhm(DbNumA,DbNamB)(3)3)最終得到2個(gè)用戶A與B的基礎(chǔ)屬性距離通過差值DA-B可以看出,DA-B越小,相似度則越大,DA-B越大,則相似度越小。(2)用戶偏好相似度若給定用戶u和v,N(u)表示用戶u的偏好相似度集合,N(v)表示用戶v的偏好相似度集合(如時(shí)間,位置,系統(tǒng)使用情況等),運(yùn)用余弦公式相似度計(jì)算公式:表3用戶偏好表用戶A成績查詢系統(tǒng)金融服務(wù)系統(tǒng)酒店預(yù)訂系統(tǒng)用戶B成績查詢系統(tǒng)工資系統(tǒng)用戶C交通查詢系統(tǒng)金融服務(wù)系統(tǒng)多媒體系統(tǒng)從表3的用戶偏好為代表:用戶A對{成績,金融,酒店}方面的系統(tǒng)感興趣,用戶B對{成績、工資}方面的系統(tǒng)感興趣,所以可以計(jì)算出用戶A和用戶B的偏好相似度,如下所示:用余弦公式計(jì)算用戶間兩兩的相似度之后,算法通過綜合分析基礎(chǔ)數(shù)據(jù)相似度和用戶偏好數(shù)據(jù)相似度后,再進(jìn)行推薦,推薦度公式如6所示。公式中,DA-B為基礎(chǔ)數(shù)據(jù)的差值,N(i)表示對項(xiàng)目i有偏好的用戶組,Re(u,l)表示存在與用戶A偏好類似的用戶組。wab描述用戶A與用戶B的相似度,ybi表示用戶B對項(xiàng)目i的偏好程度。2.2基于系統(tǒng)的云推薦方法基于系統(tǒng)的云推薦算法,主要通過以下兩步完成:首先計(jì)算系統(tǒng)之間的相似程度,然后根據(jù)相似度生成系統(tǒng)推薦列表。根據(jù)余弦公式可得系統(tǒng)的相似度:從余弦公式中可以看出,Num(i)表示偏好系統(tǒng)i的用戶數(shù)量,Num(j)表示偏好系統(tǒng)j的用戶數(shù)量,與的比值表示在偏好系統(tǒng)i的用戶中同時(shí)也偏好系統(tǒng)j的比例。但是當(dāng)系統(tǒng)j是一個(gè)所有人都偏好的系統(tǒng)時(shí),如工資系統(tǒng),任何其他系統(tǒng)通過公式(7)得出的結(jié)果都會很大,所以本發(fā)明中將公式(7)進(jìn)行修改,如公式(8)所示:公式(8)在分母中加入了相當(dāng)于降低了系統(tǒng)j的權(quán)重。首先設(shè)定權(quán)重值w區(qū)間范圍為[w1,wn],將[w1,wn]分割為n個(gè)小區(qū)間{[w1,w2],[w2,w3],...,[wn-1,wn]},每個(gè)區(qū)間賦值{0,1,2....,n},然后對所有系統(tǒng)兩兩比較,如果用戶的偏好落在區(qū)間范圍內(nèi),那么認(rèn)為這些系統(tǒng)屬于同一個(gè)領(lǐng)域,相似度很大,值得推薦。分三步介紹采用基于系統(tǒng)的云推薦算法的簡單例子。假設(shè)有a,b,c,d,e5個(gè)系統(tǒng),同時(shí)存在A,B,C,D,E5位用戶,對每位用戶偏好的項(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í)對系統(tǒng)i和系統(tǒng)j都偏好的用戶數(shù)量。得到相似度矩陣之后,通過公式(7)計(jì)算用戶a對系統(tǒng)i的推薦度:公式9中N(u)表示當(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)推薦給用戶。第三步:基于USDR模型的云推薦算法得出用戶推薦度列表,過程如下:為了達(dá)到更好的用戶體驗(yàn),為用戶提供個(gè)性化的推薦服務(wù),基于USDR模型運(yùn)行過程如圖4所示,首先根據(jù)用戶注冊數(shù)據(jù)為用戶建模,其次為云環(huán)境中的每個(gè)相關(guān)系統(tǒng)進(jìn)行建模,當(dāng)模型構(gòu)建完成之后,分析用戶注冊數(shù)據(jù)中的基礎(chǔ)屬性數(shù)據(jù),計(jì)算出基礎(chǔ)屬性相似度,再算出用戶偏好屬性相似度,最后同理算出基于系統(tǒng)的云推送推薦算法,最終為用戶推送推薦數(shù)據(jù)。通過分別計(jì)算用戶和系統(tǒng)數(shù)據(jù)的推薦度會導(dǎo)致結(jié)果比較粗糙,為了使得云推薦算法更加精確,將用戶數(shù)據(jù)推薦度加入到系統(tǒng)數(shù)據(jù)推薦度中,得出綜合推薦度列表,將使推薦度的結(jié)果更加準(zhǔn)確和方便,更加方便于下一步的云推送。如何使用基于USDR模型的云推薦算法得出用戶推薦度列表的具體流程如圖5所示:1)查看用戶歷史記錄數(shù)據(jù)表,若用戶的歷史數(shù)據(jù)為空,則說明為新注冊用戶,那么就執(zhí)行步驟2),否則執(zhí)行步驟5)。2)查看用戶基礎(chǔ)數(shù)據(jù)中的關(guān)聯(lián)用戶列表,若有關(guān)聯(lián)用戶,則執(zhí)行步驟3,若無,則執(zhí)行步驟4)。3)將該用戶與每位關(guān)聯(lián)用戶分別用公式DA-B進(jìn)行計(jì)算,得出相似度,查看相似度在設(shè)定的權(quán)重值內(nèi)的用戶,執(zhí)行步驟4)。4)使用公式(6)計(jì)算所有在權(quán)重值范圍內(nèi)的關(guān)聯(lián)用戶的偏好推薦度Recommenduser,加入用戶推薦列表中,執(zhí)行步驟5)。5)使用公式(9)計(jì)算的歷史數(shù)據(jù)表中每個(gè)系統(tǒng)的推薦度Recommendsystem,將這些系統(tǒng)放入推薦列表,執(zhí)行步驟6)。6)將步驟4)和步驟5)中的Recommenduser和Recommendsystem分別平方,再求和開根號得出綜合推薦度:7)根據(jù)綜合推薦度,加入到綜合推薦度列表。當(dāng)前第1頁1 2 3