本發(fā)明涉及數(shù)據(jù)挖掘與推薦系統(tǒng)領(lǐng)域,特別是涉及一種基于用戶行為的社交網(wǎng)絡(luò)中朋友關(guān)系挖掘方法。
背景技術(shù):
國內(nèi)社交網(wǎng)絡(luò)興起于2005年前后,模仿Friendster、Facebook等美國社交平臺應(yīng)用,校內(nèi)網(wǎng)(后來的人人網(wǎng))、51.com、豆瓣網(wǎng)、若鄰網(wǎng)、天際網(wǎng)等一批社交網(wǎng)站在這一時(shí)期先后上線服務(wù)。尤其是在2008年開心網(wǎng)推出的“朋友買賣”、“搶車位”、“偷菜”等社交網(wǎng)絡(luò)游戲,讓開心網(wǎng)在白領(lǐng)群體中迅速躥紅,直追當(dāng)時(shí)的社交平臺“老大”人人網(wǎng)。社交平臺經(jīng)過十多年的發(fā)展,如今國內(nèi)主流平臺——微信與微博,他們集社交、購物、理財(cái)于一身,功能愈加全面化。
六度空間理論指出:我們和任何一個陌生人之間所間隔的人不會超過六個,即我們最多通過五個中間人去認(rèn)識一個陌生人。近年來社交工具越來越多地滲入到人們的日常生活中來,滴滴打車、美團(tuán)外賣均可通過社交平臺找到小伙伴進(jìn)行拼單,六度空間理論無時(shí)無刻地發(fā)生在我們身邊。而推薦系統(tǒng)的作用就在于盡快幫助用戶們在社交平臺上找到他們最熱衷的信息或朋友。
專利201410025336.3將社交網(wǎng)絡(luò)映射到一個無向網(wǎng)絡(luò),存在弊端:因?yàn)橥蠖鄶?shù)人轉(zhuǎn)發(fā)名人的消息,但名人根本不認(rèn)識這些人,所以他們兩兩之間只有單向連邊,從而導(dǎo)致推薦結(jié)果無法保持較高的準(zhǔn)確率與召回率水平。專利201310689161.1需要用到關(guān)聯(lián)好友數(shù)據(jù),以及用戶的所屬公司、所屬行業(yè)或?qū)W校等個人隱私數(shù)據(jù),所以該專利技術(shù)只適用于在具有大數(shù)據(jù)處理能力的公司進(jìn)行朋友關(guān)系的挖掘,對于那些需要了解用戶的朋友關(guān)系的普通公司而言,他們很難獲取用戶之間的朋友關(guān)系網(wǎng)絡(luò)。鑒于以上缺陷,本發(fā)明提取二分圖的靜態(tài)指標(biāo)、與時(shí)序有向轉(zhuǎn)移網(wǎng)絡(luò)的動態(tài)指標(biāo)共同作為用戶間行為的特征,利用機(jī)器學(xué)習(xí)算法挖掘用戶之間的朋友關(guān)系,彌補(bǔ)了缺失用戶關(guān)系網(wǎng)絡(luò)的不利影響,具有較好的推薦結(jié)果。
技術(shù)實(shí)現(xiàn)要素:
為了克服傳統(tǒng)朋友關(guān)系預(yù)測模型在準(zhǔn)確率與召回率上無法保持兩者均處在較高的水平的不足,本發(fā)明提出一種兼顧準(zhǔn)確率與召回率、預(yù)測效果良好的基于用戶行為的社交網(wǎng)絡(luò)中朋友關(guān)系挖掘方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案如下:
一種基于用戶行為的社交網(wǎng)絡(luò)中朋友關(guān)系挖掘方法,包括以下步驟:
S1:通過用戶已有行為的記錄數(shù)據(jù),分別建立出兩類二分圖與有向轉(zhuǎn)移網(wǎng)絡(luò),即用戶—餐館地區(qū),用戶—口味標(biāo)簽;
S2:根據(jù)用戶—餐館地區(qū)與用戶—口味標(biāo)簽的二分圖,從網(wǎng)絡(luò)的節(jié)點(diǎn)角度,提取出每對用戶的節(jié)點(diǎn)相似度特征,節(jié)點(diǎn)相似度特征用于表征兩個用戶之間的行為偏好差異;根據(jù)用戶—餐館地區(qū)與用戶—口味標(biāo)簽的有向轉(zhuǎn)移網(wǎng)絡(luò),從網(wǎng)絡(luò)的連邊角度,提取出每對用戶的有向連邊屬性特征,有向連邊屬性特征用于表征兩個用戶之間的相互影響;
S3:由原始數(shù)據(jù)已知用戶之間的朋友關(guān)系,采用機(jī)器學(xué)習(xí)分類器模型xgboost,將所有樣本數(shù)據(jù)通過10折交叉驗(yàn)證,訓(xùn)練并構(gòu)建用戶關(guān)系預(yù)測器模型;
S4:取交叉驗(yàn)證的10次驗(yàn)證結(jié)果的平均值作為用戶關(guān)系預(yù)測器模型的最終評價(jià)成績。
進(jìn)一步,所述步驟S1中,用到的餐館地區(qū)不是原數(shù)據(jù)集里的餐館所在城市或州信息,因?yàn)檫@兩個地理特征過于寬泛,無法量化反映用戶選擇餐館時(shí)的地區(qū)移動模式。所以本發(fā)明利用自適應(yīng)DBSCAN密度聚類算法,各城市的所有餐館根據(jù)地理經(jīng)緯度信息,分別聚類到各自密度可達(dá)的地區(qū)聚類簇,從而歸納出各個餐館所屬的地區(qū)特征。
再進(jìn)一步,所述步驟S1中,建立二分圖方法,構(gòu)建用戶—餐館地區(qū)二分圖、以及用戶—口味標(biāo)簽二分圖,建立用戶—餐館二分圖的過程如下:定義二分圖G(X,E1,Y),其中X=[x1,x2,…xm]表示各個用戶,Y=[y1,y2,…yn]表示各個餐館聚類簇,若用戶xi去過餐館聚類簇yj,則用有權(quán)連邊eij表示該用戶去了幾次該餐館聚類簇;同理,用戶—口味標(biāo)簽二分圖G(X,E2,T)。
所述步驟S1中,建立有向轉(zhuǎn)移網(wǎng)絡(luò)方法,構(gòu)建用戶之間關(guān)于餐館地區(qū)、以及口味標(biāo)簽的有向轉(zhuǎn)移網(wǎng)絡(luò),建立用戶—餐館地區(qū)有向轉(zhuǎn)移網(wǎng)絡(luò)的過程如下:定義兩個用戶之間的有向轉(zhuǎn)移網(wǎng)絡(luò)其中xi,xj分別表示用戶xi,xj,{Yi},{Yj}分別表示用戶xi,xj去過的餐館聚類簇集合,根據(jù)原數(shù)據(jù)集已知各用戶的用餐餐館與相應(yīng)用餐的時(shí)間,若用戶xi,xj去過相同的餐館聚類簇yi*=y(tǒng)j*,且用戶xi去的時(shí)間先于用戶xj,則用有向連邊表示用戶xi指向用戶xj。有向連邊的權(quán)重,根據(jù)用戶xi,xj去該餐館yi*=y(tǒng)j*的最小次數(shù)而定。若將各兩兩用戶的有向網(wǎng)絡(luò)合并可得整個社交社區(qū)的用戶行為圖譜;同理,構(gòu)建用戶之間的口味標(biāo)簽時(shí)序有向轉(zhuǎn)移網(wǎng)絡(luò)
所述步驟S2中,根據(jù)已建立的兩類網(wǎng)絡(luò)拓?fù)潢P(guān)系,分別提取關(guān)于節(jié)點(diǎn)或連邊的用戶之間社交行為的特征,包括以下步驟:
S2-1:根據(jù)二分圖,求得兩兩用戶之間的行為偏好相似度,例如在圖2所示的用戶—餐館地區(qū)二分圖G(X,E1,Y)中,可構(gòu)建鏈接矩陣D∈R4×n,dij表示用戶xi去餐館聚類簇yj的次數(shù),則用戶xi去餐館聚類簇yj的概率為
根據(jù)不相關(guān)熵的定義,餐館聚類簇yj的熵為
Ej值越大,表示餐館聚類簇yj越受用戶青睞。
用戶xi,xj選擇餐館在地理上的相似度特征cluster_similarij定義為
同理,可得用戶—口味標(biāo)簽二分圖G(X,E2,T)的兩兩用戶之間選擇餐館,在共同口味上的相似度特征taste_similarij;
S2-2:根據(jù)有向轉(zhuǎn)移網(wǎng)絡(luò),求得兩兩用戶之間的行為影響,例如在用戶—餐館地區(qū)有向轉(zhuǎn)移網(wǎng)絡(luò)中,用戶xj對用戶xi關(guān)于選擇餐館的影響定義為
其中aij表示在歷史記錄中,用戶xj選擇餐館行為對用戶xi行為的影響,
βj表示用戶xj去歷史記錄之外的同一座城市餐館的概率,Ni表示用戶xi行為記錄最多城市Ci的餐館總數(shù),Ii,Oi分別是網(wǎng)絡(luò)中用戶xi的入度鄰居與出度鄰居,即選擇就餐地理位置時(shí),用戶xi的影響用戶集與被影響用戶集;同理,可得用戶—口味標(biāo)簽有向轉(zhuǎn)移網(wǎng)絡(luò)中的關(guān)于選擇口味的影響。
所述步驟S3中,采用機(jī)器學(xué)習(xí)分類器模型xgboost,由于在實(shí)際用戶關(guān)系網(wǎng)絡(luò)中兩兩朋友之間的1值連邊數(shù)量非常少,占所有連邊數(shù)量(1值連邊與0值連邊的總數(shù))的小于3%,故對訓(xùn)練數(shù)據(jù)中的非朋友數(shù)據(jù)數(shù)量降采樣至大致與朋友數(shù)據(jù)數(shù)量相當(dāng)。訓(xùn)練分類器模型時(shí),所有樣本數(shù)據(jù)通過10折交叉驗(yàn)證增強(qiáng)分類模型的泛化能力。
本發(fā)明提取了靜態(tài)二分圖的節(jié)點(diǎn)相似度特征,與動態(tài)有向轉(zhuǎn)移網(wǎng)絡(luò)的有向連邊屬性特征,靜態(tài)指標(biāo)用于反映用戶行為的偏好,動態(tài)指標(biāo)用于映射用戶之間的影響,兩者相輔相成地表征了社交網(wǎng)絡(luò)中用戶的社交模式,根據(jù)這些模式采用機(jī)器學(xué)習(xí)分類器模型算法,挖掘社交網(wǎng)絡(luò)中的用戶關(guān)系(即用戶關(guān)系網(wǎng)絡(luò)中未知的連邊狀態(tài))。最終的預(yù)測結(jié)果較高,能有效滿足實(shí)際使用的要求。
本發(fā)明的適用對象是類似美團(tuán)外賣、滴滴打車或餓了么這類具有完整用戶行為數(shù)據(jù),但沒有用戶身份等隱私數(shù)據(jù)的O2O商家。本發(fā)明以研究yelp餐飲社交平臺的用戶朋友關(guān)系為例,原始數(shù)據(jù)記錄了各用戶的歷史行為。行為數(shù)據(jù)包括用戶的用餐餐館、用餐時(shí)間、用餐地區(qū)以及餐館口味等信息。同時(shí)原始數(shù)據(jù)已知用戶之間的朋友關(guān)系,若兩個用戶是朋友關(guān)系,則標(biāo)簽數(shù)據(jù)設(shè)為1,反之則為0,由此形成一張社交平臺用戶關(guān)系網(wǎng)絡(luò),這可以用于進(jìn)行算法驗(yàn)證。
本發(fā)明的有益效果為:兼顧準(zhǔn)確率與召回率、預(yù)測效果良好。
附圖說明
圖1為本發(fā)明實(shí)施例的基于用戶行為的社交網(wǎng)絡(luò)中朋友關(guān)系挖掘的流程圖;
圖2為本發(fā)明實(shí)施例的用戶—餐館地區(qū)二分圖;
圖3為本發(fā)明實(shí)施例的用戶—餐館地區(qū)有向轉(zhuǎn)移網(wǎng)絡(luò)。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明做進(jìn)一步說明。
參照圖1~圖3,一種基于用戶行為的社交網(wǎng)絡(luò)中朋友關(guān)系挖掘方法,本發(fā)明使用yelp官方公開的數(shù)據(jù)進(jìn)行用戶朋友推薦系統(tǒng)的建模分析,原始數(shù)據(jù)記錄了各個用戶的歷史行為信息,以本專利研究yelp用戶為例,其行為數(shù)據(jù)包括用戶的用餐餐館、用餐時(shí)間、用餐地點(diǎn)(城市、州、經(jīng)緯度)以及餐館口味等信息。在用戶數(shù)據(jù)中已知用戶之間的朋友關(guān)系,若兩個用戶是朋友關(guān)系,則標(biāo)簽數(shù)據(jù)設(shè)為1,反之則為0,此用戶之間的朋友關(guān)系數(shù)據(jù)只作為訓(xùn)練與測試推薦系統(tǒng)模型的標(biāo)簽數(shù)據(jù),不用于提取特征。
本發(fā)明分為以下四個步驟:
S1:通過用戶已有行為的記錄數(shù)據(jù),分別建立出兩類二分圖與時(shí)序有向轉(zhuǎn)移網(wǎng)絡(luò),即用戶—餐館地區(qū),用戶—口味標(biāo)簽;
S2:根據(jù)用戶—餐館地區(qū)與用戶—口味標(biāo)簽的二分圖,從網(wǎng)絡(luò)的節(jié)點(diǎn)角度,提取出每對用戶的節(jié)點(diǎn)相似度特征,節(jié)點(diǎn)相似度特征用于表征兩個用戶之間的行為偏好差異;根據(jù)用戶—餐館地區(qū)與用戶—口味標(biāo)簽的時(shí)序有向轉(zhuǎn)移網(wǎng)絡(luò),從網(wǎng)絡(luò)的連邊角度,提取出每對用戶的有向連邊屬性特征,有向連邊屬性特征用于表征兩個用戶之間的相互影響;
S3:由原始數(shù)據(jù)已知用戶之間的朋友關(guān)系,采用機(jī)器學(xué)習(xí)分類器模型xgboost,將所有樣本數(shù)據(jù)通過10折交叉驗(yàn)證,訓(xùn)練并構(gòu)建用戶關(guān)系預(yù)測器模型;
S4:取交叉驗(yàn)證的10次驗(yàn)證結(jié)果的平均值作為用戶關(guān)系預(yù)測器模型的最終評價(jià)成績。
所述步驟S1中用到的餐館地區(qū)不是原數(shù)據(jù)集里的餐館所在城市或州信息,因?yàn)檫@兩個地理特征過于寬泛,無法量化反映用戶選擇餐館時(shí)的地區(qū)移動模式。所以本發(fā)明利用自適應(yīng)DBSCAN密度聚類算法,各城市的所有餐館根據(jù)地理經(jīng)緯度信息,分別聚類到各自密度可達(dá)的地區(qū)聚類簇,從而歸納出各個餐館所屬的地區(qū)特征。
所述步驟S1中,建立二分圖方法,例如建立用戶—餐館地區(qū)二分圖,過程如下:定義二分圖G(X,E1,Y),其中X=[x1,x2,…xm]表示各個用戶,Y=[y1,y2,…yn]表示各個餐館聚類簇,若用戶xi去過餐館聚類簇yj,則用有權(quán)連邊eij表示該用戶去了幾次該餐館聚類簇。圖2所示為4個yelp用戶關(guān)于n個餐館聚類簇的選擇情況;同理,可構(gòu)建用戶—口味標(biāo)簽二分圖G(X,E2,T),其中X=[x1,x2,…xm]表示各個用戶,T=[t1,t2,…tp]表示各個口味標(biāo)簽,若用戶xi吃過口味tj,則用有權(quán)連邊e′ij表示該用戶吃過幾次該口味。
所述步驟S1中,建立有向轉(zhuǎn)移網(wǎng)絡(luò)方法,例如建立用戶—餐館地區(qū)有向轉(zhuǎn)移網(wǎng)絡(luò)如圖3所示,過程如下:定義兩個用戶之間的有向轉(zhuǎn)移網(wǎng)絡(luò)其中xi,xj分別表示用戶xi,xj,{Yi},{Yj}分別表示用戶xi,xj去過的餐館聚類簇集合,根據(jù)原數(shù)據(jù)集已知各用戶的用餐餐館與相應(yīng)用餐的時(shí)間,若用戶xi,xj去過相同的餐館聚類簇yi*=y(tǒng)j*,且用戶xi去的時(shí)間先于用戶xj,則用有向連邊表示用戶xi指向用戶xj。有向連邊的權(quán)重,根據(jù)用戶xi,xj去該餐館yi*=y(tǒng)j*的最小次數(shù)而定。若將各兩兩用戶的有向網(wǎng)絡(luò)合并可得整個社交社區(qū)的用戶行為圖譜;同理,可構(gòu)建用戶之間的口味標(biāo)簽時(shí)序有向轉(zhuǎn)移網(wǎng)絡(luò)其中xi,xj分別表示用戶xi,xj,{Ti},{Tj}分別表示用戶xi,xj吃過的口味標(biāo)簽集合,根據(jù)原數(shù)據(jù)集已知各用戶的用餐餐館口味標(biāo)簽與相應(yīng)用餐的時(shí)間,若用戶xi,xj吃過相同的口味ti*=tj*,且用戶xi去吃該口味的時(shí)間先于用戶xj,則用有向連邊表示用戶xi指向用戶xj。有向連邊的權(quán)重,根據(jù)用戶xi,xj吃過該口味ti*=tj*的最小次數(shù)而定。
所述步驟S2,根據(jù)已建立的兩類網(wǎng)絡(luò)拓?fù)潢P(guān)系,分別提取關(guān)于節(jié)點(diǎn)或連邊的用戶之間社交行為的特征,包括以下步驟:
S2-1:根據(jù)二分圖,求得兩兩用戶之間的行為偏好相似度,例如在圖2所示的用戶—餐館地區(qū)二分圖G(X,E1,Y)中,可構(gòu)建鏈接矩陣D∈R4×n,dij表示用戶xi去餐館聚類簇yj的次數(shù),則用戶xi去餐館聚類簇yj的概率為
根據(jù)不相關(guān)熵的定義,餐館聚類簇yj的熵為
Ej值越大,表示餐館聚類簇yj越受用戶青睞。
用戶xi,xj選擇餐館在地理上的相似度特征cluster_similarij定義為
同理,在用戶—口味標(biāo)簽二分圖G(X,E2,T)中,可構(gòu)建鏈接矩陣D′∈R4×p,d′ij表示用戶xi吃過口味tj的次數(shù),則用戶xi去吃口味tj的概率為
根據(jù)不相關(guān)熵的定義,口味tj的熵為
Ej′值越大,表示口味tj越受用戶歡迎。
則用戶xi,xj選擇餐館在口味上的相似度特征taste_similarij定義為
S2-2:根據(jù)有向轉(zhuǎn)移網(wǎng)絡(luò),求得兩兩用戶之間的行為影響,例如在用戶—餐館地區(qū)有向轉(zhuǎn)移網(wǎng)絡(luò)中,借鑒PageRank網(wǎng)頁排名算法的思想,用戶xj對用戶xi關(guān)于選擇餐館的影響定義為
其中aij表示在歷史記錄中,用戶xj選擇餐館行為對用戶xi的影響,
βj表示用戶xj打算去歷史記錄之外的同一座城市餐館的概率,Ni表示用戶xi行為記錄最多城市Ci的餐館總數(shù),Ii,Oi分別是網(wǎng)絡(luò)中用戶xi的入度鄰居與出度鄰居,即選擇就餐地理位置時(shí),用戶xi的影響用戶集與被影響用戶集。
同理,在用戶—口味標(biāo)簽有向轉(zhuǎn)移網(wǎng)絡(luò)中,用戶xj對用戶xi關(guān)于選擇就餐口味的影響定義為
其中a′ij表示在歷史記錄中,用戶xj選擇就餐口味對用戶xi的影響,
βj′表示用戶xj打算去吃歷史記錄之外的其他就餐口味的概率,Nt表示數(shù)據(jù)集中所有口味標(biāo)簽的總數(shù),Ii′,Oi′分別是網(wǎng)絡(luò)中用戶xi的入度鄰居與出度鄰居,即選擇就餐口味時(shí),用戶xi的影響用戶集與被影響用戶集。
在所述步驟S3與S4過程中,由于在用戶關(guān)系網(wǎng)絡(luò)中兩兩朋友之間的1值連邊數(shù)量非常少,占所有連邊數(shù)量(1值連邊與0值連邊)的小于3%,故對訓(xùn)練數(shù)據(jù)中的非朋友數(shù)據(jù)數(shù)量欠采樣至大致與朋友數(shù)據(jù)數(shù)量相當(dāng)。隨后訓(xùn)練分類器模型時(shí),采用機(jī)器學(xué)習(xí)分類模型——xgboost分類器,通過10折交叉驗(yàn)證增強(qiáng)分類模型的泛化能力。10折交叉驗(yàn)證,就是將全體樣本分割成10個子樣本,一個單獨(dú)的子樣本被保留作為驗(yàn)證模型的數(shù)據(jù),其他9個樣本用來訓(xùn)練分類器模型。交叉驗(yàn)證重復(fù)10次,每個子樣本驗(yàn)證一次,平均10次的驗(yàn)證結(jié)果作為該分類器模型的最終評價(jià)成績。
如上所述為本發(fā)明在yelp餐飲平臺的用戶朋友關(guān)系挖掘方法的實(shí)施例介紹,本發(fā)明提取靜態(tài)二分圖的節(jié)點(diǎn)相似度特征與動態(tài)有向轉(zhuǎn)移網(wǎng)絡(luò)的有向連邊屬性特征,采用機(jī)器學(xué)習(xí)分類器模型,最終的預(yù)測結(jié)果較高,達(dá)到了實(shí)際使用的要求。對發(fā)明而言僅僅是說明性的,而非限制性的。本專業(yè)技術(shù)人員理解,在發(fā)明權(quán)利要求所限定的精神和范圍內(nèi)可對其進(jìn)行許多改變,修改,甚至等效,但都將落入本發(fā)明的保護(hù)范圍內(nèi)。