好友及應用個性化推薦方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種好友及應用個性化推薦方法及系統(tǒng),包括步驟:步驟A:計算推薦得分S;步驟B:根據推薦得分顯示推薦內容;步驟C:根據用戶對推薦內容的反饋信息調整推薦權值向量;步驟D:根據調整后的用戶推薦權值向量更新推薦內容。本發(fā)明適用場景更加廣泛、推薦結果更加準確、計算速度更快,并且具有閑時計算以及黑名單機制等優(yōu)點,能夠有效提高信息推薦的準確率,并且節(jié)省了計算開銷,具有良好的推薦效果。
【專利說明】好友及應用個性化推薦方法及系統(tǒng)
【技術領域】
[0001] 本發(fā)明涉及網絡通信【技術領域】,具體地說,是社交網絡中的一種基于Hadoop的好 友和應用推薦方法及系統(tǒng)。
【背景技術】
[0002] 諸如人人網、臉書、朋友網等社交網絡已成為當下不可缺少的社交方式?;钴S用戶 數量對于社交網站來說非常重要,而幫助用戶建立和擴大穩(wěn)定的關系網絡是維持和增加活 躍用戶數量的最有效方法。這就需要為用戶推薦潛在好友和能與好友產生互動的應用。
[0003] 而現有的好友及應用推薦方法大多比較單一。目前的好友推薦方法可分為幾類: 1、根據非好友用戶間共同好友數量。2、根據個人資料相似度(畢業(yè)學校、工作地點、共同興 趣等)。3、要求用戶自己設定好友分組,并設定好友分組等級。這樣些推薦方法存在以下弊 端:1)應用場景有限。如基于非好友用戶間共同好友數量的推薦方法,若一個新注冊用戶 未添加任何好友,此推薦方法將不會有任何推薦結果。2)未考慮用戶間的互動信息?;?是社交網絡的基本屬性,不考慮用戶間的互動,就無法得到準確合理的推薦結果。3)容易造 成用戶信息泄露。如基于個人資料相似度的好友推薦方法,用戶根據推薦的排名,很容易可 推測出排名靠前的用戶的個人信息,造成用戶信息泄露。
[0004] 對于應用推薦,目前的推薦方法主要基于用戶歷史行為進行推薦,如根據用戶已 添加的應用的標簽,推薦相似應用。這種根據用戶歷史行為的應用推薦方法存在如下弊端: 1)在用戶未添加任何應用時,此方法失去作用,不會有任何推薦結果。2)會產生較多的與 用戶已添加應用功能重復的推薦結果。3)未考慮好友的應用使用情況,無法得到準確合理 的推薦結果。
[0005] 經檢索,發(fā)現如下相關專利文獻。
[0006] 相關檢索結果1 :
[0007] 申請(專利)號:201210125050. 3,名稱:一種在SNS網絡中好友推薦的系統(tǒng)和方 法
[0008] 摘要:本發(fā)明屬于計算機網絡【技術領域】,具體涉及一種在SNS網絡中好友推薦的 系統(tǒng)與方法。該系統(tǒng)包括客戶端和服務器端。該方法由用戶提前設定用戶的好友分組,并 且自定好友分組的等級,服務器端根據某一好友分組的等級和某一好友分組內的相同好友 個數的百分比,獲得所有用戶的好友推薦值,并根據好友推薦值的大小,將推薦值最高的用 戶作為臨時好友推薦給用戶。該方法是用客戶端和服務器端的協作,以及用戶的參與,使得 好友推薦系統(tǒng)的好友推薦能夠降低好友門檻,方便用戶添加好友,并且可以較準確的推薦 用戶所需要或所認識的好友,提高好友推薦的準確度和有效性。
[0009] 技術要點比較:
[0010] 1.好友推薦考慮緯度:此方法本質上還是從共同好友數量一個緯度進行好友推 薦,這樣做有幾個弊端:1、太片面,看重共同好友數量,對于好友與用戶的緊密程度不做區(qū) 分,與"和共同好友緊密度較高的用戶之間比共同好友多的用戶之間更容易成為好友"這一 事實不符。2、對于新注冊,填寫過個人資料但是未添加過好友的用戶,該方法無法使用。而 本發(fā)明從多個緯度進行綜合評分,考慮更加全面,更加符合事實情況,也能應對新注冊用戶 沒有好友的情況。并且可以根據用戶反饋動態(tài)調整,更加智能。
[0011] 2.黑名單和滾動顯示機制:上述方法未使用黑名單機制,這就導致排名靠前但是 用戶不想添加的推薦好友長期占據推薦板塊,使推薦機制失去意義。而本發(fā)明引入黑名單 機制,用戶可以手動將不想添加的好友加入黑名單,以后不會再次顯示。而且,本方法還將 排名靠前的推薦好友分組滾動顯示,在好友推薦顯示模塊大小相同的情況下,可以顯示更 多的推薦好友,提高用戶接受推薦的概率。
[0012] 3.是否需要用戶主動介入:上述方法需要用戶主動設置分組并設定分組等級,對 于不習慣為好友分組或者分組不準確的用戶,此方法效果很差甚至不能使用。而本發(fā)明基 于數據挖掘和分析,不要求用戶主觀為好友推薦方法提供過多輔助,更加人性化。
[0013] 相關檢索結果2:
[0014] 申請(專利)號:201310336664. 0,名稱:一種基于用戶簽到相似度的好友推薦系 統(tǒng)
[0015] 摘要:本發(fā)明公開了一種基于用戶簽到相似度的好友推薦系統(tǒng),該系統(tǒng)包括興趣 推薦模塊、相似度計算模塊和主題提取模塊。首先經主題提取模塊從LBSN數據庫中取得以 往用戶的簽到記錄,并采用主題提取算法獲得提取用戶簽到記錄中潛在的主題;然后利用 主題提取模塊提取的潛在主題,調用相似度計算模塊的計算方法分別計算候選用戶集中每 個用戶在每個主題下與請求用戶的相似度;然后每個用戶將每個主題下的相似度求和得到 最終的相似度。最后由興趣推薦模塊根據請求用戶的請求參數設置確定最終的推薦好友, 并返回給請求用戶。
[0016] 技術要點比較:
[0017] 1.好友推薦考慮緯度:該專利文獻使用單一緯度進行好友推薦,考慮方面過于單 一,且使用的是用戶的簽到信息,這就會有以下問題:(1)、方法適合情況有限:只有少數社 交網站提供簽到功能。(2)、造成用戶信息泄露:簽到信息中通常包含用戶位置信息,這樣 用戶推薦好友模塊顯示靠前的用戶和此用戶的簽到位置信息相似度可能很高,造成信息泄 露。使用本發(fā)明,不僅適合大多數社交網站,而且從多個緯度進行綜合考慮,返回綜合結果, 不會對單一維度的信息造成泄露,安全性較高。
[0018] 2.黑名單機制:見相關檢索結果2中的第2條。
[0019] 相關檢索結果3:
[0020] 申請(專利)號:201310566824. 0,名稱:應用推薦方法和系統(tǒng)
[0021] 摘要:本發(fā)明公開了一種應用推薦方法和系統(tǒng),所述方法包括:針對當前應用的 每個標簽,根據預先存儲的標簽之間的相似值,確定出與該標簽之間的相似值大于第一閾 值的標簽作為相似標簽;針對確定出的每個相似標簽,將計算出的該相似標簽與當前應用 的各標簽之間的相似值之和,作為該相似標簽的相似值;并針對每個相似標簽,查找出具有 該相似標簽的其它應用作為待推薦應用;針對每個待推薦應用,計算該待推薦應用的各標 簽中含有的相似標簽的相似值之和作為該待推薦應用的相似值;選取相似值大于第二閾值 的待推薦應用進行推薦。本發(fā)明的技術方案中,改善了評分數據的稀疏性,有助于提高推薦 的精確度;建立待推薦應用與當前應用的聯系,提高了推薦的精確度。
[0022] 技術要點比較:
[0023] 1.推薦緯度:此方法使用應用標簽這個單一緯度進行推薦,考慮過于片面,且可 能造成推薦過多相似應用的情況。而本發(fā)明使用應用熱度和好友使用情況兩個緯度進行推 薦,且接受用戶的反饋和黑名單機制,不會出現單個方面的應用推薦過多。
[0024] 2.適用場景:此方法的適用場景有限,當用戶尚未添加任何應用的時候,此方法 就失去了作用。而本方法可以從熱門應用和好友應用角度進行推薦,適用于大多數場景。
[0025] 3.黑名單機制:此方法還是會造成用戶不想添加的排名靠前的應用始終占據應 用推薦顯示模塊,而排名靠后的用戶更可能添加的應用無法顯示,導致應用推薦失去意義。 而本發(fā)明引入黑名單機制,用戶可以手動將不想添加的應用加入黑名單,以后不會再次顯 示。而且,本方法還將排名靠前的推薦應用分組滾動顯示,在好友推薦顯示模塊大小相同的 情況下,可以顯示更多的推薦應用,提高用戶接受推薦的概率。
[0026] 4.更符合社交特性:當下社交網絡中的好多應用(尤其是游戲)可以在好友之間 產生互動,所以好友喜歡使用的應用更可能被用戶接受。本發(fā)明正好符合這一社交特性,所 以更適合進行應用推薦。而此發(fā)明只是基于當個用戶的信息進行推薦,不符合社交特性。
【發(fā)明內容】
[0027] 針對現有技術中的缺陷,本發(fā)明的目的是提供一種基于Hadoop的好友及應用個 性化推薦方法及系統(tǒng)。本發(fā)明要解決的技術問題體現在以下幾點:
[0028] 1)引入評分機制,對于好友和應用推薦從多個緯度進行評分,最后得到一個綜合 評分,根據綜合評分由高到低進行排序對用戶進行推薦,避免的單一緯度好友和應用推薦 方法對推薦效果的影響,也就是說,本發(fā)明建立并利用了傳統(tǒng)推薦方法中沒有用到的信息 以及信息之間的映射關聯,從而使得信息篩選推薦效果更為精確。
[0029] 2)引入動態(tài)顯示機制,對于推薦排名靠前的前幾名用戶動態(tài)循環(huán)顯示,合理利用 顯示界面的空間,提高了用戶采納的可能性。
[0030] 3)引入動態(tài)調整機制:對要評分的緯度定義權值,為每個用戶維護一個權值序 列,起始權值都為1,根據用戶對推薦的接受情況和對推薦的取消顯示情況對權值進行動態(tài) 調整,然后根據新的權值重新進行計算綜合評分,從而達到個性化推薦的效果,提高推薦準 確率。
[0031] 4)使用Hadoop中的MapReduce計算框架:為了提高推薦算法的準確性,提高推薦 系統(tǒng)的推薦效果,以上推薦方法對比傳統(tǒng)的推薦算法復雜度高,而采用MapReduce程序來 進行分布式計算,可以提高計算效率,降低對單點的負載壓力,在不影響服務器整體性能的 前提下,提高推薦準確性。
[0032] 5)應用推薦引入社交特性:用戶的好友普通喜歡的應用此用戶喜歡的可能性很 大。所以在進行應用推薦的時候,考慮用戶好友的應用使用情況,給用戶的好友們普通使用 的應用以更高的推薦分,更加符合社交網絡的特性,也即是本發(fā)明充分利用了傳統(tǒng)推薦方 法中沒有用到的好友之間互動所建立的信息之間的關聯信息。
[0033] 根據本發(fā)明提供的一種好友及應用個性化推薦方法,包括如下步驟:
[0034] 步驟A :計算推薦得分S ;
[0035] 步驟B :根據推薦得分顯示推薦內容;
[0036] 步驟C :根據用戶對推薦內容的反饋信息調整推薦權值向量(推薦權值向量包括 用戶推薦權值向量、應用推薦權值向量);
[0037] 步驟D :根據調整后的用戶推薦權值向量更新推薦內容。
[0038] 優(yōu)選地,所述步驟A包括如下步驟:
[0039] 步驟A1 :計算潛在好友推薦得分;
[0040] 步驟A1包括如下步驟:
[0041] 步驟Al. 1 :為每個用戶維護一個潛在好友組,并將有如下一個或多個特征的非好 友用戶加入到該用戶的潛在好友組中:
[0042] 特征1)--與該用戶畢業(yè)學校相同或工作公司名稱相同;
[0043] 特征2)-與該用戶有共同好友;
[0044] 特征3)-與該用戶有過互動;
[0045] 步驟A1. 2 :為每個用戶維護一張評分表,該評分表中每一行包含對一個在其潛在 好友組中的非好友用戶的評分信息,所述評分信息包括校友相關度評分、同事相關度評分、 共同好友評分、潛在好友互動評分;步驟A1. 3 :對用戶潛在好友組中的所有非好友用戶進 行步驟A1. 4到步驟A1. 8中的計算;
[0046] 步驟A1. 4 :計算校友相關度評分:對于某個用戶A,若其潛在好友組中的某個非好 友用戶B的評分表中包含用戶A的校友相關度評分T1,則直接將校友相關度評分T1設為用 戶A對用戶B的校友相關度評分;若沒有,則執(zhí)行以下操作:
[0047] 步驟Al. 4. 1 :初始化評分值為0,設置校友關系基礎分、同學關系基礎分、年級差 基礎分;
[0048] 步驟A1. 4. 2 :若用戶A、用戶B是校友,每構成一次校友關系則評分值加上一個校 友關系基礎分;
[0049] 步驟A1. 4. 3:對于大學校友,若用戶A、用戶B同一個學院,則評分值加上同學關系 基礎分;
[0050] 步驟A1. 4. 4 :對于非大學校友,若用戶A、用戶B同年同班,每成立一次,則評分值 加上一個同學關系基礎分;
[0051] 步驟A1. 4. 5 :根據如下公式得到最終評分值:
[0052] 最終評分值=當前評分值-Σ |用戶A、用戶B在同一學校的入學年份差I*年級 差基礎分;
[0053] 若最終評分值小于0,則將最終評分值設為0 ;
[0054] 步驟A1. 5 :計算同事相關度評分:設置同事關系基礎分;對于用戶A,若其潛在好 友中的某用戶B的評分表中包含用戶A的同事相關度評分T2,則直接將同事相關度評分T2 設為用戶A對用戶B的同事相關度評分;若沒有,則進行判斷:若用戶A、用戶B就職于同一 家公司且在統(tǒng)一城市,則同事相關度評分設為同事關系基礎分,否則設為〇 ;
[0055] 步驟A1. 6 :計算好友緊密度評分:為用戶A維護一張好友互動數表,好友互動數表 中包含用戶A最近一段時間與其每個好友的互動數;對于用戶A,若其好友列表中的某用戶 B的好友互動表中包含與用戶A的互動數T3,則直接將互動數T3設為用戶A的好友互動數 表中與用戶B的互動數,若沒有,則統(tǒng)計互動數;
[0056] 其中,根據如下公式得到好友緊密度評分:
[0057] 用戶B對于用戶A的好友緊密度評分=用戶B與用戶A的互動數/用戶A與好友 互動總數;
[0058] 步驟A1. 7 :計算共同好友評分:對于用戶A潛在好友組中的用戶B,按下式計算其 與用戶A的共同好友評分共同好友評分(B|A):
[0059] 共同好友評分(Β|Α) =Σ用戶B與用戶A共同好友對于用戶A的好友緊密度評分
[0060] 步驟A1. 8 :計算潛在好友互動評分:設置互動基礎分和一段時間間隔;對于用戶 A,若其潛在好友中的某用戶B的評分表中包含用戶A的潛在好友互動評分T4,則直接將潛 在好友互動評分T4設為用戶A對用戶B的潛在好友互動評分;若沒有,則統(tǒng)計用戶A、用戶 B在所給時間間隔內的互動數;其中,根據如下公式計算潛在好友互動評分:
[0061] 潛在好友互動評分=潛在好友互動數*互動基礎分;
[0062] 步驟A1. 9:計算潛在好友推薦總分:為每個用戶維護一個用戶推薦四維權值向 量,該四維權值向量的每個維度初始值都為1,具體為:將用戶A潛在好友組中的某用戶B 的校友相關度評分、同事相關度評分、共同好友評分和潛在好友互動評分組成一個四維向 量作為用戶推薦四維權值向量,并將該四維向量與用戶A的用戶推薦權值向量做點積運 算,運算結果作為該用戶B對于用戶A的潛在好友推薦總分,將潛在好友推薦總分作為步驟 A中的所述推薦得分S。
[0063] 優(yōu)選地,所述步驟A包括如下步驟:
[0064] 步驟A2 :計算應用推薦得分;
[0065] 其中,步驟A2包括以下步驟:
[0066] 步驟A2. 1 :為每個用戶維護一個未添加應用組,將用戶的未添加應用添加到未添 加應用組中;
[0067] 步驟A2. 2 :為每個用戶維護一張應用推薦評分表,每一行包含一個未添加應用組 中的未添加應用的評分信息,所述評分信息,包含應用相對熱度評分和應用好友相關評分; 并對未添加應用組中的所有未添加應用進行步驟A2. 3到步驟A2. 4中的計算;
[0068] 步驟A2. 3 :計算應用相對熱度評分:對于某個用戶A,服務器端統(tǒng)計每個應用使用 人數,然后根據使用人數計算每個用戶未添加應用組中的每個應用的相對熱度,添加到應 用推薦評分表中;對于用戶A的未添加應用組中的某個應用B,其相對熱度按下式計算:
[0069] 5相對熱度=5應用的使用人數/ 用戶未添加應用組中應用庇]使用人數
[0070] 步驟A2. 4 :計算應用好友相關評分:對于用戶A的未添加應用組中的某個應用B, 查找用戶A的好友中所有添加過應用B的好友,將添加過應用B的好友對用戶A的好友緊 密度評分相加,作為應用好友相關評分添加到用戶A的應用推薦評分表中;
[0071] 步驟A2. 5:計算應用推薦總分:為每個用戶維護一個應用推薦二維權值向量,該 二維權值向量的每個維度初始值都為1,具體為:將用戶A應用推薦評分表中的某應用的應 用相對熱度評分和應用好友相關評分組成二維向量作為應用推薦二維權值向量,并將該二 維向量與用戶A的應用推薦權值向量做點積運算,運算結果作為此應用對于用戶A的應用 推薦總分,將應用推薦總分作為步驟A中的所述推薦得分S。
[0072] 優(yōu)選地,所述步驟B包括如下任一個或任多個步驟:
[0073] 步驟B1 :好友推薦顯示:根據潛在好友推薦總分對用戶A潛在好友組的中的非好 友用戶進行降序排序,然后根據排名由前到后對用戶A進行好友推薦;推薦時,將前九位非 好友用戶分為三組,每三位為一組,每次顯示一組,每10秒換一組,滾動顯示;
[0074] 步驟B2 :應用推薦顯示:根據應用推薦總分對用戶未添加應用組中的應用進行降 序排序,然后根據排名由前到后對用戶A進行應用推薦;推薦時,將前九位應用分為三組, 每三個為一組,每次顯示一組,每10秒換一組,滾動顯示。
[0075] 優(yōu)選地,所述步驟C包括如下任一個或任多個步驟:
[0076] 步驟C1 :調整用戶推薦權值向量:設定用戶推薦權值向量遞增值和遞減值,并創(chuàng) 建一個用戶推薦黑名單;用戶推薦權值向量初始值都為1,若用戶A接受一個步驟B中推薦 的用戶C,則將該用戶C從用戶A的潛在好友組和好友推薦評分表中刪除,并檢查用戶A好 友推薦評分表中此用戶C的各項評分(校友相關度評分、同事相關度評分、共同好友評分、 潛在好友互動評分),查找用戶C評分中最高的一項評分,將用戶推薦權值向量中與該項評 分相應的緯度加上一個遞增值:若用戶A取消了一個步驟B中推薦的用戶D,則將該用戶D 加入到用戶推薦黑名單中,將用戶推薦黑名單中的用戶D從潛在好友組中刪除,并檢查用 戶A好友推薦評分表中此用戶D的評分(校友相關度評分、同事相關度評分、共同好友評 分、潛在好友互動評分),查找用戶D的各項評分中最高的一項,將用戶推薦權值向量中相 應的緯度減去一個遞減值;
[0077] 步驟C2 :調整應用推薦權值向量:設定應用推薦權值向量遞增值和遞減值,并創(chuàng) 建一個應用推薦黑名單;應用推薦權值向量初始值都為1,若用戶A接受一個步驟B中推薦 的應用C,則將該應用C從未添加應用組和應用推薦評分表中刪除,并檢查用戶A應用推薦 評分表中此應用C的評分(應用相對熱度評分、應用好友相關評分),查找應用C各項評分 中最高的一項評分,將應用推薦權值向量中與該項評分相應的緯度加上一個遞增值:若用 戶A取消了一個步驟B中推薦的應用D,則將該應用D加入到應用推薦黑名單中,將應用推 薦黑名單中的應用D從未添加應用組中刪除,并檢查用戶A應用推薦評分表中此應用D的 評分(應用相對熱度評分、應用好友相關評分),查找應用D評分中最高的一項評分,將應用 推薦權值向量中與該項評分相應的緯度減去一個遞減值。
[0078] 優(yōu)選地,所述步驟D包括如下步驟:
[0079] 步驟D1 :若用戶A對畢業(yè)學校和工作公司信息進行了修改,則按步驟Dl. 1到D1. 3 進行更新潛在好友組;
[0080] 步驟Dl. 1 :刪除信息:以用戶A刪除的信息建立索引,查找用戶信息中包含用戶A 刪除前信息的用戶E,將用戶A從這些用戶E的潛在好友組中刪除,并從用戶A的潛在好友 組中刪除這些用戶E ;
[0081] 步驟D1. 2 :添加信息:以用戶A添加的信息建立索引,查找用戶信息中包含用戶A 添加信息的用戶F,若用戶A不是這些用戶F的好友,將用戶A添加到這些用戶F的潛在好 友組中,并將這些用戶F添加到A用戶的潛在好友組中;
[0082] 步驟D1. 3 :更改信息:視為將信息先刪除,后添加;分別執(zhí)行步驟Dl. 1和D1. 2 ;
[0083] 步驟D2 :若用戶A添加或刪除了好友,則按步驟D2. 1到D2. 2更新潛在好友組。
[0084] 步驟D2. 1 :刪除好友:若用戶A刪除了好友用戶B,則將用戶A的潛在好友組中,與 用戶A只有用戶B -個共同好友的用戶刪除,并將用戶B的潛在好友組中,與用戶B只有用 戶A -個共同好友的用戶刪除;然后更新用戶A和用戶B所有好友的潛在好友組;
[0085] 步驟D2. 2 :添加好友:若用戶A添加了好友用戶B,則互相將對方的好友列表中不 是自己好友也不在自己潛在好友組中的用戶添加到自己的潛在好友組中,并更新用戶A和 用戶B所有好友的潛在好友組;
[0086] 優(yōu)選地,所述步驟D包括如下步驟:
[0087] 步驟D3 :若用戶A添加了應用,則將此應用從用戶A的未添加應用組中刪除;若用 戶刪除了應用,則將此應用添加到用戶的未添加應用組中;
[0088] 步驟D4 :更新推薦信息:按照步驟D4. 1到D4. 3對好友和應用推薦內容進行更新;
[0089] 步驟D4. 1 :設定一個負載閾值、一個或多個時間點,一個時間間隔和最大等待次 數;當執(zhí)行所述好友及應用個性化推薦方法的系統(tǒng)的系統(tǒng)時間到達時間點時,檢查所述系 統(tǒng)負載是否在設定的負載閾值以下,若否,則等待一個時間間隔后再次檢查,直到負載到達 負載閾值以下時進行更新,或者等待次數大于最大等待次數,則取消本次更新;若是,則執(zhí) 行步驟D4. 2 ;
[0090] 步驟D4. 2 :將更新過的記錄所有用戶的潛在好友組和未添加應用組的文件,從系 統(tǒng)數據庫中導入到在系統(tǒng)服務器集群中搭建的Hadoop集群的文件系統(tǒng)HDFS中,然后執(zhí)行 編寫好的MapReduce程序來對步驟A進行分布式計算,并將計算結果導回到系統(tǒng)數據庫中。
[0091] 根據本發(fā)明提供的一種好友及應用個性化推薦系統(tǒng),所述好友及應用個性化推薦 系統(tǒng)用于執(zhí)行上述的好友及應用個性化推薦方法。
[0092] 優(yōu)選地,在更新推薦內容時,設定一個負載閾值、一個或多個時間點,一個時間間 隔和最大等待次數;當所述系統(tǒng)的系統(tǒng)時間到達時間點時,檢查所述系統(tǒng)的系統(tǒng)負載是否 在設定的負載閾值以下:
[0093] 若否,則等待一個時間間隔后再次檢查,直到負載到達負載閾值以下時進行更新, 或者等待次數大于最大等待次數,則取消本次更新;
[0094] 若是,則將更新過的記錄所有用戶的潛在好友組和未添加應用組的文件,從所述 系統(tǒng)的系統(tǒng)數據庫中導入到在所述系統(tǒng)的系統(tǒng)服務器集群中搭建的Hadoop集群的文件系 統(tǒng)HDFS中,然后執(zhí)行編寫好的MapReduce程序來對步驟A進行分布式計算,并將計算結果 導回到系統(tǒng)數據庫中。
[0095] 與現有技術相比,本發(fā)明具有如下的有益效果:
[0096] 由于采用了上述技術方案,本發(fā)明的有益效果是:
[0097] 1)適用場景更加廣泛:在用戶未添加過好友或未填寫個人資料時,本發(fā)明仍可給 出較好的推薦結果。
[0098] 2)推薦結果更加準確:從多個緯度進行評分,尤其是加入好友互動信息緯度,可 計算出更加準確的推薦結果。并且引入動態(tài)調整機制,可以根據用戶反饋信息進行個性化 推薦。
[0099] 3)計算速度更快:采用MapReduce計算框架,可在多臺服務器上進行分布式計算, 充分利用服務器集群的計算能力,雖然算法復雜度有所增加,但是可以很快得到計算結果。 并且因為采用分布式計算,計算量分配到多臺服務器進行,減輕了單臺服務器進行計算的 計算壓力。
[0100] 4)閑時計算:只在服務器集群負載低于設定閾值時進行計算,不會給服務器集群 造成負載壓力,保證服務器集群的可用性。
[0101] 5)黑名單機制:對于用戶不想添加的好友,不會重復進行計算和顯示,節(jié)省了計 算開銷,并提高了推薦效果。
【專利附圖】
【附圖說明】
[0102] 通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、 目的和優(yōu)點將會變得更明顯:
[0103] 圖1為好友推薦方法流程圖。
[0104] 圖2為應用推薦方法流程圖。
[0105] 圖3為潛在好友組和未添加用戶組更新流程圖。
[0106] 圖4為好友及應用推薦更新流程圖。
【具體實施方式】
[0107] 下面結合具體實施例對本發(fā)明進行詳細說明。以下實施例將有助于本領域的技術 人員進一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應當指出的是,對本領域的普通技術 人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進。這些都屬于本發(fā)明 的保護范圍。
[0108] 本方法包括如下步驟:
[0109] 步驟1 :計算潛在好友推薦得分
[0110] 步驟2 :計算應用推薦得分
[0111] 步驟3 :顯示推薦好友和應用
[0112] 步驟4 :根據用戶反饋調整推薦。
[0113] 步驟5 :推薦信息更新。其中,步驟1包括如下步驟:
[0114] 步驟1. 1 :為每個用戶維護一個潛在好友組,并將有如下一個或多個特征的非好 友用戶加入到某用戶的潛在好友組中:1)與該用戶畢業(yè)學校相同或工作公司名稱相同。2) 與該用戶有共同好友。3)與該用戶有過互動。
[0115] 步驟1.2 :為每個用戶維護一張評分表,表中每一行包含對一個在其潛在好友組 中的非好友用戶的評分信息,具體來說是1. 4到1. 8中各項評分的信息,包括校友相關度評 分、同事相關度評分、共同好友評分和潛在好友互動評分。
[0116] 步驟1. 3 :對用戶潛在好友組中的所有非好友用戶進行步驟1. 4到1. 8中的計算。
[0117] 步驟1. 4 :計算校友相關度評分:對于某個用戶A,若其潛在好友組中的某非好友 用戶B的評分表中包含用戶A的校友相關度評分T1,則直接將校友相關度評分T1設為用戶 A對用戶B的校友相關度評分。若沒有,則執(zhí)行以下操作:
[0118] 步驟1.4. 1 :初始化評分值為0,根據網站實際情況設置校友關系基礎分、同學關 系基礎分、年級差基礎分。
[0119] 步驟1.4. 2 :若用戶A、用戶B是校友,每構成一次校友關系則評分值加上一個校友 關系基礎分;
[0120] 步驟1. 4. 3 :對于大學校友,若用戶A、用戶B同一個學院,則評分值加上同學關系 基礎分;
[0121] 步驟1.4. 4:對于非大學校友,若用戶A、用戶B同年同班,每成立一次,則評分值加 同學關系基礎分;
[0122] 步驟1.4. 5:最終評分值=當前評分值-Σ |用戶A、用戶B在同一學校的入學年 份差I*年級差基礎分。若最終評分值小于〇,則將最終評分值設為〇。
[0123] 步驟1.5 :計算同事相關度評分:由管理員設置同事關系基礎分。對于用戶A,若其 潛在好友中的某用戶B的評分表中包含用戶A的同事相關度評分T2,則直接將同事相關度 評分T2設為用戶A對用戶B的同事相關度評分。若沒有,則進行判斷:若用戶A、B就職于 同一家公司且在統(tǒng)一城市,則同事相關度評分設為同事關系基礎分,否則設為0.
[0124] 步驟1. 6 :計算好友緊密度評分:為用戶維護一張好友互動數表,表中包含用戶A 最近一段時間(時間長度由管理員設定)與其每個好友的互動數。對于用戶A,若其好友列 表中的某用戶B的好友互動表中包含與用戶A的互動數T3,則直接將互動數T3設為用戶A 的好友互動數表中與用戶B的互動數,若沒有,則統(tǒng)計互動數。若時間跨度改變,則所有用 戶重新統(tǒng)計互動數。用戶B對于用戶A的緊密度=用戶B與用戶A的互動數/用戶A與好 友互動總數。
[0125] 步驟1. 7 :計算共同好友評分:對于用戶A潛在好友組中的用戶B,按下式計算其 與用戶A的共同好友評分:
[0126] 共同好友評分(Β|Α) =Σ用戶B與用戶A共同好友對于用戶A的好友緊密度評分
[0127] 步驟1. 8 :計算潛在好友互動評分:由管理員設置互動基礎分和一段時間間隔。對 于用戶A,若其潛在好友中的某用戶B的評分表中包含用戶A的潛在好友互動評分T4,則直 接將潛在好友互動評分T4設為用戶A對用戶B的潛在好友互動評分。若沒有,則統(tǒng)計用戶 A、用戶B在所給時間間隔內的互動數。潛在好友互動評分=潛在好友互動數*互動基礎分。
[0128] 步驟1. 9 :計算潛在好友推薦總分:為每個用戶維護一個用戶推薦四維權值向量, 每個維度初始值都為1,調整方式見步驟4。將用戶A潛在好友組中的某用戶B的校友相關 度評分、同事相關度評分、共同好友評分和潛在好友互動評分組成一個四維向量,并將其與 用戶A的用戶推薦權值向量做點積運算,運算結果作為該用戶B對于用戶A的潛在好友推 薦總分。
[0129] 步驟2包括以下步驟:
[0130] 步驟2. 1 :為每個用戶維護一個未添加應用組,將用戶的未添加應用(包含游戲) 添加到未添加應用組中。
[0131] 步驟2.2 :為每個用戶維護一張應用推薦評分表,每一行包含一個未添加應用組 中的未添加應用的評分信息。具體來說,是步驟2. 3至2. 4中的評分,包含應用相對熱度和 應用好友相關評分。
[0132] 步驟2. 3 :計算應用相對熱度評分:服務器端統(tǒng)計每個應用使用人數,然后計算每 個用戶未添加應用組中的每個應用的相對熱度,添加到應用推薦評分表中。對于用戶A的 未添加應用組中的某個應用B,其相對熱度按下式計算:
[0133] 5相對熱度=5應用的使用人數/ 用戶未添加應用組中應用嵌I使用人數 i
[0134] 步驟2. 4 :計算應用好友相關評分:對于用戶A的未添加應用組中的某個應用B, 查找A的好友中所有添加過應用B的好友,將添加過的好友對用戶A的好友緊密度相加(好 友緊密度見步驟1. 6),作為應用好友相關評分添加到應用推薦評分表中。
[0135] 步驟2. 5 :計算應用推薦總分:為每個用戶維護一個應用推薦二維權值向量,每個 維度初始值都為1,調整方式見步驟4。將用戶A應用推薦評分表中的某應用的應用相對熱 度評分和應用好友相關評分組成二維向量,并將其與用戶A的應用推薦權值向量做點積運 算,運算結果作為此應用對于用戶A的應用推薦總分。
[0136] 步驟3包括以下步驟:
[0137] 步驟3. 1 :好友推薦顯示:根據潛在好友推薦總分對用戶潛在好友組的中的用戶 進行降序排序,然后根據排名由前到后對用戶進行好友推薦。推薦時,將前九位分為三組, 每三個為一組,每次顯示一組,每10秒換一組,滾動顯示。
[0138] 步驟3. 2 :應用推薦顯示:根據應用推薦總分對用戶未添加應用組中的應用進行 降序排序,然后根據排名由前到后對用戶進行應用推薦;推薦時,將前九位分為三組,每三 個為一組,每次顯示一組,每10秒換一組,滾動顯示。
[0139] 步驟4包括以下步驟:
[0140] 步驟4. 1 :調整用戶推薦權值向量:由管理員設定用戶推薦權值向量遞增值和遞 減值,并創(chuàng)建一個用戶推薦黑名單。用戶推薦權值向量初始值都為1,若用戶A接受一個推 薦系統(tǒng)中推薦的用戶,則將該用戶從用戶A的潛在好友組和好友推薦評分表中刪除,并檢 查用戶A好友推薦表中此用戶的評分,查找用戶評分中最高的一項,將用戶推薦權值向量 中相應的緯度加上一個遞增值:若用戶A取消了一個推薦系統(tǒng)中推薦的用戶的顯示,則將 該用戶加入到用戶推薦黑名單中,將黑名單中的用戶從潛在好友組中刪除,并檢查用戶A 好友推薦表中此用戶的評分,查找用戶評分中最高的一項,將用戶推薦權值向量中相應的 緯度減去一個遞減值。
[0141] 步驟4. 2 :調整應用推薦權值向量:由管理員設定應用推薦權值向量遞增值和遞 減值,并創(chuàng)建一個應用推薦黑名單。應用推薦權值向量初始值都為1,若用戶A接受一個推 薦系統(tǒng)中推薦的應用,則將該應用從未添加應用組和應用推薦評分表中刪除,并檢查用戶A 應用推薦表中此應用的評分,查找應用評分中最高的一項,將應用推薦權值向量中相應的 緯度加上一個遞增值:若用戶A取消了一個推薦系統(tǒng)中推薦的應用的顯示,則將該應用加 入到應用推薦黑名單中,將黑名單中的應用從未添加應用組中刪除,并檢查用戶A應用推 薦評分表中此應用的評分,查找應用評分中最高的一項,將應用推薦權值向量中相應的緯 度減去一個遞減值。
[0142] 步驟5包括以下步驟:
[0143] 步驟5. 1 :若用戶A對學校和工作單位信息進行了修改,則按步驟5. 1. 1到5. 1.3 進行更新潛在好友組。
[0144] 步驟5. 1. 1 :刪除信息:以刪除的信息建立索弓丨,查找用戶信息中包含用戶A刪除 前信息的用戶,將用戶A從他們的潛在好友組中刪除,并從用戶A的潛在好友組中刪除這些 用戶。
[0145] 步驟5. 1. 2 :添加信息:以添加的信息建立索引,查找用戶信息中包含用戶A添加 信息的用戶,若用戶A不是他的好友,將用戶A添加到他的潛在好友組中,并將這些用戶添 加到A用戶的潛在好友組中。
[0146] 步驟5. 1.3 :更改信息:視為將信息先刪除,后添加。分別執(zhí)行步驟5. 1. 1和 5. 1. 2〇
[0147] 步驟5. 2 :若用戶A添加或刪除了好友,則按步驟5. 2. 1到5. 2. 2更新潛在好友組。
[0148] 步驟5. 2. 1 :刪除好友:若用戶A刪除了好友用戶B,則將用戶A的潛在好友組中, 與用戶A只有用戶B -個共同好友的用戶刪除,并將用戶B的潛在好友組中,與用戶B只有 用戶A -個共同好友的用戶刪除。然后更新用戶A和用戶B所有好友的潛在好友組。
[0149] 步驟5. 2. 2 :添加好友:若用戶A添加了好友用戶B,則互相將對方的好友列表中 不是自己好友也不在自己潛在好友列表中的用戶添加到自己的潛在好友列表中,并更新用 戶A和用戶B所有好友的潛在好友組。,
[0150] 步驟5. 3 :若用戶A添加了應用,則將此應用從用戶A的未添加應用組中刪除。若 用戶刪除了應用,則將此應用添加到用戶的未添加應用組中。
[0151] 步驟5. 4 :更新推薦信息:按照步驟5. 4. 1到5. 4. 3對好友和應用推薦內容進行更 新;
[0152] 步驟5.4. 1 :由管理員設定一個負載閾值、一個或多個時間點,一個時間間隔和最 大等待次數。當系統(tǒng)時間到達時間點時,檢查系統(tǒng)負載是否在設定的閾值以下,若否,則等 待一個時間間隔后再次檢查,直到負載到達閾值以下時進行計算,或者等待次數大于最大 等待次數,則取消本次更新;若是,則執(zhí)行步驟5. 4. 2。本步驟可以保證,只在系統(tǒng)服務器相 對空閑的時候進行推薦更新的計算,而在服務器忙時進行等待,保證了系統(tǒng)對外服務的可 用性。
[0153] 步驟5. 4. 2 :將更新過的記錄所有用戶的潛在好友組和未添加應用組的文件及其 他相關數據文件,從系統(tǒng)數據庫中導入到在系統(tǒng)服務器集群中搭建的Hadoop集群的文件 系統(tǒng)HDFS中,然后執(zhí)行編寫好的MapReduce程序安裝步驟1和步驟2所述的方法進行分布 式計算,并將計算結果導回到系統(tǒng)數據庫中。MapReduce為大數據領域的一種分布式計算框 架,特點是可以將一個大的計算任務拆分多個子任務,并分配到多臺計算機中同時進行計 算,再將子任務的計算結果綜合起來,得到原計算任務的結果。因為多臺服務器同時進行子 任務的計算,所以可以縮短計算時間,并且因為計算量分布到多臺服務器上,所以不會給單 臺服務器造成很大的計算壓力。
[0154] 步驟5. 4. 3 :按照步驟3所述方法對更新后的推薦內容進行顯示。
[0155] 實施舉例1 :圖1為本發(fā)明的好友推薦方法流程圖。當第一次運行好友推薦方法 時,需要為每個用戶按步驟1. 1生成一個潛在好友組,以后運行時不需要再生成。對于用戶 潛在好友組中的每個用戶,分別按照步驟1. 4、1. 5、1. 7、1. 8計算其與此用戶的校友相關度 評分、同事相關度評分、共同好友評分和潛在好友互動評分。將計算得到的評分寫入到步驟 1. 2所描述的此用戶的好友推薦評分表中。然后按照步驟1. 9計算好友推薦總分,按照推薦 總分對潛在好友組里的用戶進行由高到低排序。取排名前幾名的用戶按照步驟1. 10進行 好友推薦顯示。當用戶添加一個推薦用戶為好友或者取消一個推薦用戶在好友推薦模塊的 顯示時,根據步驟4. 1調整好友推薦權值向量。
[0156] 實施舉例2 :圖2為應用推薦方法流程圖。當第一次運行應用推薦方法時,需要為 每個用戶按照步驟2. 1生成一個未添加應用組,以后運行時不需要再此生成。對于未添加 應用組中的中的每個應用,按照步驟2. 3和2. 4分別計算其相對熱度評分和好友相關評分。 然后按照步驟2. 2的描述將計算后的得分寫入到應用推薦評分表中。然后按照步驟2. 5計 算應用推薦總分,并按照推薦總分對未添加應用組中的應用進行用高到低排序。取排名前 幾名的應用按照步驟2. 6進行應用推薦顯示。當用戶添加一個推薦應用或取消了一個推薦 應用在應用推薦模塊的顯示時,根據步驟4. 2調整應用推薦權值向量。
[0157] 實施舉例3 :圖3為潛在好友組和未添加用戶組更新流程圖,當用戶修改了學?;?工作單位信息時,則按步驟5. 1更新相關用戶的潛在好友組。當用戶添加或刪除好友的時 候,則按步驟5. 2更新相關用戶的潛在好友組。若用戶添加或刪除了應用,則根據步驟5. 3 更新用戶的未添加應用組。
[0158] 實施舉例4:圖4為好友及應用推薦更新流程圖。更新前,由管理員設定一個負 載閾值、一個或多個更新時間點,一個時間間隔和最大等待次數。當到達更新時間點時,檢 查系統(tǒng)負載是否在閾值以下,若不是,則判斷等待次數是否超過設定的最大等待次數,若沒 有,則等待設定的一段時間,再次檢查系統(tǒng)負載;若超過最大等待次數,則程序退出。若負載 在設定閾值以下,則重新計算未添加應用組中的應用推薦總分,更新應用推薦顯示。然后判 斷潛在好友組是否有更新,若有,則重新計算潛在好友組中用戶的好友推薦總分,并更新好 友推薦顯示;若沒有,程序直接結束。
[0159] 以上對本發(fā)明的具體實施例進行了描述。需要理解的是,本發(fā)明并不局限于上述 特定實施方式,本領域技術人員可以在權利要求的范圍內做出各種變形或修改,這并不影 響本發(fā)明的實質內容。
【權利要求】
1. 一種好友及應用個性化推薦方法,其特征在于,包括如下步驟: 步驟A :計算推薦得分S; 步驟B :根據推薦得分顯示推薦內容; 步驟C :根據用戶對推薦內容的反饋信息調整推薦權值向量; 步驟D :根據調整后的用戶推薦權值向量更新推薦內容。
2. 根據權利要求1所述的好友及應用個性化推薦方法,其特征在于,所述步驟A包括如 下步驟: 步驟A1 :計算潛在好友推薦得分; 步驟A1包括如下步驟: 步驟Al. 1 :為每個用戶維護一個潛在好友組,并將有如下一個或多個特征的非好友用 戶加入到該用戶的潛在好友組中: 特征1)一與該用戶畢業(yè)學校相同或工作公司名稱相同; 特征2)-與該用戶有共同好友; 特征3)-與該用戶有過互動; 步驟A1. 2 :為每個用戶維護一張評分表,該評分表中每一行包含對一個在其潛在好友 組中的非好友用戶的評分信息,所述評分信息包括校友相關度評分、同事相關度評分、共同 好友評分、潛在好友互動評分; 步驟A1. 3 :對用戶潛在好友組中的所有非好友用戶進行步驟A1. 4到步驟A1. 8中的計 算; 步驟A1. 4 :計算校友相關度評分:對于某個用戶A,若其潛在好友組中的某個非好友用 戶B的評分表中包含用戶A的校友相關度評分T1,則直接將校友相關度評分T1設為用戶A 對用戶B的校友相關度評分;若沒有,則執(zhí)行以下操作: 步驟Al. 4. 1 :初始化評分值為0,設置校友關系基礎分、同學關系基礎分、年級差基礎 分; 步驟A1. 4. 2 :若用戶A、用戶B是校友,每構成一次校友關系則評分值加上一個校友關 系基礎分; 步驟A1. 4. 3 :對于大學校友,若用戶A、用戶B同一個學院,則評分值加上同學關系基礎 分; 步驟A1. 4. 4 :對于非大學校友,若用戶A、用戶B同年同班,每成立一次,則評分值加上 一個同學關系基礎分; 步驟A1. 4. 5 :根據如下公式得到最終評分值: 最終評分值=當前評分值-Σ |用戶A、用戶B在同一學校的入學年份差I*年級差基 礎分; 若最終評分值小于〇,則將最終評分值設為〇 ; 步驟A1. 5 :計算同事相關度評分:設置同事關系基礎分;對于用戶A,若其潛在好友中 的某用戶B的評分表中包含用戶A的同事相關度評分T2,則直接將同事相關度評分T2設為 用戶A對用戶B的同事相關度評分;若沒有,則進行判斷:若用戶A、用戶B就職于同一家公 司且在統(tǒng)一城市,則同事相關度評分設為同事關系基礎分,否則設為0 ; 步驟A1. 6 :計算好友緊密度評分:為用戶A維護一張好友互動數表,好友互動數表中包 含用戶A最近一段時間與其每個好友的互動數;對于用戶A,若其好友列表中的某用戶B的 好友互動表中包含與用戶A的互動數T3,則直接將互動數T3設為用戶A的好友互動數表中 與用戶B的互動數,若沒有,則統(tǒng)計互動數; 其中,根據如下公式得到好友緊密度評分: 用戶B對于用戶A的好友緊密度評分=用戶B與用戶A的互動數/用戶A與好友互動 總數; 步驟A1. 7 :計算共同好友評分:對于用戶A潛在好友組中的用戶B,按下式計算其與用 戶A的共同好友評分共同好友評分(B|A): 共同好友評分(Β|Α) =Σ用戶B與用戶A共同好友對于用戶A的好友緊密度評分 步驟A1. 8 :計算潛在好友互動評分:設置互動基礎分和一段時間間隔;對于用戶A,若 其潛在好友中的某用戶B的評分表中包含用戶A的潛在好友互動評分T4,則直接將潛在好 友互動評分T4設為用戶A對用戶B的潛在好友互動評分;若沒有,則統(tǒng)計用戶A、用戶B在 所給時間間隔內的互動數;其中,根據如下公式計算潛在好友互動評分: 潛在好友互動評分=潛在好友互動數*互動基礎分; 步驟A1. 9 :計算潛在好友推薦總分:為每個用戶維護一個用戶推薦四維權值向量,該 四維權值向量的每個維度初始值都為1,具體為:將用戶A潛在好友組中的某用戶B的校友 相關度評分、同事相關度評分、共同好友評分和潛在好友互動評分組成一個四維向量作為 用戶推薦四維權值向量,并將該四維向量與用戶A的用戶推薦權值向量做點積運算,運算 結果作為該用戶B對于用戶A的潛在好友推薦總分,將潛在好友推薦總分作為步驟A中的 所述推薦得分S。
3.根據權利要求1所述的好友及應用個性化推薦方法,其特征在于,所述步驟A包括如 下步驟: 步驟A2:計算應用推薦得分; 其中,步驟A2包括以下步驟: 步驟A2. 1 :為每個用戶維護一個未添加應用組,將用戶的未添加應用添加到未添加應 用組中; 步驟A2. 2 :為每個用戶維護一張應用推薦評分表,每一行包含一個未添加應用組中的 未添加應用的評分信息,所述評分信息,包含應用相對熱度評分和應用好友相關評分;并對 未添加應用組中的所有未添加應用進行步驟A2. 3到步驟A2. 4中的計算; 步驟A2. 3 :計算應用相對熱度評分:對于某個用戶A,服務器端統(tǒng)計每個應用使用人 數,然后根據使用人數計算每個用戶未添加應用組中的每個應用的相對熱度,添加到應用 推薦評分表中;對于用戶A的未添加應用組中的某個應用B,其相對熱度按下式計算: 5相對熱度=5應用的使用人數/ 用戶未添加應用組中應用〖的使用人數 i 步驟A2. 4 :計算應用好友相關評分:對于用戶A的未添加應用組中的某個應用B,查找 用戶A的好友中所有添加過應用B的好友,將添加過應用B的好友對用戶A的好友緊密度 評分相加,作為應用好友相關評分添加到用戶A的應用推薦評分表中; 步驟A2. 5 :計算應用推薦總分:為每個用戶維護一個應用推薦二維權值向量,該二維 權值向量的每個維度初始值都為1,具體為:將用戶A應用推薦評分表中的某應用的應用相 對熱度評分和應用好友相關評分組成二維向量作為應用推薦二維權值向量,并將該二維向 量與用戶A的應用推薦權值向量做點積運算,運算結果作為此應用對于用戶A的應用推薦 總分,將應用推薦總分作為步驟A中的所述推薦得分S。
4. 根據權利要求2或3所述的好友及應用個性化推薦方法,其特征在于,所述步驟B包 括如下任一個或任多個步驟: 步驟B1 :好友推薦顯示:根據潛在好友推薦總分對用戶A潛在好友組的中的非好友用 戶進行降序排序,然后根據排名由前到后對用戶A進行好友推薦;推薦時,將前九位非好友 用戶分為三組,每三位為一組,每次顯示一組,每10秒換一組,滾動顯示; 步驟B2 :應用推薦顯示:根據應用推薦總分對用戶未添加應用組中的應用進行降序排 序,然后根據排名由前到后對用戶A進行應用推薦;推薦時,將前九位應用分為三組,每三 個為一組,每次顯示一組,每10秒換一組,滾動顯示。
5. 根據權利要求2或3所述的好友及應用個性化推薦方法,其特征在于,所述步驟C包 括如下任一個或任多個步驟: 步驟C1 :調整用戶推薦權值向量:設定用戶推薦權值向量遞增值和遞減值,并創(chuàng)建一 個用戶推薦黑名單;用戶推薦權值向量初始值都為1,若用戶A接受一個步驟B中推薦的用 戶C,則將該用戶C從用戶A的潛在好友組和好友推薦評分表中刪除,并檢查用戶A好友推 薦評分表中此用戶C的各項評分,查找用戶C評分中最高的一項評分,將用戶推薦權值向量 中與該項評分相應的緯度加上一個遞增值:若用戶A取消了一個步驟B中推薦的用戶D,則 將該用戶D加入到用戶推薦黑名單中,將用戶推薦黑名單中的用戶D從潛在好友組中刪除, 并檢查用戶A好友推薦評分表中此用戶D的評分,查找用戶D的各項評分中最高的一項,將 用戶推薦權值向量中相應的緯度減去一個遞減值; 步驟C2 :調整應用推薦權值向量:設定應用推薦權值向量遞增值和遞減值,并創(chuàng)建一 個應用推薦黑名單;應用推薦權值向量初始值都為1,若用戶A接受一個步驟B中推薦的應 用C,則將該應用C從未添加應用組和應用推薦評分表中刪除,并檢查用戶A應用推薦評分 表中此應用C的評分,查找應用C各項評分中最高的一項評分,將應用推薦權值向量中與該 項評分相應的緯度加上一個遞增值:若用戶A取消了一個步驟B中推薦的應用D,則將該應 用D加入到應用推薦黑名單中,將應用推薦黑名單中的應用D從未添加應用組中刪除,并檢 查用戶A應用推薦評分表中此應用D的評分,查找應用D評分中最高的一項評分,將應用推 薦權值向量中與該項評分相應的緯度減去一個遞減值。
6. 根據權利要求2所述的好友及應用個性化推薦方法,其特征在于,所述步驟D包括如 下步驟: 步驟D1 :若用戶A對畢業(yè)學校和工作公司信息進行了修改,則按步驟Dl. 1到D1. 3進 行更新潛在好友組; 步驟Dl. 1 :刪除信息:以用戶A刪除的信息建立索引,查找用戶信息中包含用戶A刪除 前信息的用戶E,將用戶A從這些用戶E的潛在好友組中刪除,并從用戶A的潛在好友組中 刪除這些用戶E ; 步驟D1. 2 :添加信息:以用戶A添加的信息建立索引,查找用戶信息中包含用戶A添加 信息的用戶F,若用戶A不是這些用戶F的好友,將用戶A添加到這些用戶F的潛在好友組 中,并將這些用戶F添加到A用戶的潛在好友組中; 步驟Dl. 3 :更改信息:視為將信息先刪除,后添加;分別執(zhí)行步驟Dl. 1和Dl. 2 ; 步驟D2 :若用戶A添加或刪除了好友,則按步驟D2. 1到D2. 2更新潛在好友組; 步驟D2. 1 :刪除好友:若用戶A刪除了好友用戶B,則將用戶A的潛在好友組中,與用戶 A只有用戶B -個共同好友的用戶刪除,并將用戶B的潛在好友組中,與用戶B只有用戶A 一個共同好友的用戶刪除;然后更新用戶A和用戶B所有好友的潛在好友組; 步驟D2. 2 :添加好友:若用戶A添加了好友用戶B,則互相將對方的好友列表中不是自 己好友也不在自己潛在好友組中的用戶添加到自己的潛在好友組中,并更新用戶A和用戶 B所有好友的潛在好友組。
7. 根據權利要求5所述的好友及應用個性化推薦方法,其特征在于,所述步驟D包括如 下步驟: 步驟D3 :若用戶A添加了應用,則將此應用從用戶A的未添加應用組中刪除;若用戶刪 除了應用,則將此應用添加到用戶的未添加應用組中; 步驟D4 :更新推薦信息:按照步驟D4. 1到D4. 3對好友和應用推薦內容進行更新; 步驟D4. 1 :設定一個負載閾值、一個或多個時間點,一個時間間隔和最大等待次數;當 執(zhí)行所述好友及應用個性化推薦方法的系統(tǒng)的系統(tǒng)時間到達時間點時,檢查所述系統(tǒng)負載 是否在設定的負載閾值以下,若否,則等待一個時間間隔后再次檢查,直到負載到達負載閾 值以下時進行更新,或者等待次數大于最大等待次數,則取消本次更新;若是,則執(zhí)行步驟 D4. 2 ; 步驟D4. 2 :將更新過的記錄所有用戶的潛在好友組和未添加應用組的文件,從系統(tǒng)數 據庫中導入到在系統(tǒng)服務器集群中搭建的Hadoop集群的文件系統(tǒng)HDFS中,然后以執(zhí)行 MapReduce程序來對步驟A進行分布式計算,并將計算結果導回到系統(tǒng)數據庫中。
8. -種好友及應用個性化推薦系統(tǒng),其特征在于,所述好友及應用個性化推薦系統(tǒng)用 于執(zhí)行權利要求1至6中任一項所述的好友及應用個性化推薦方法。
9. 根據權利要求8所述的好友及應用個性化推薦系統(tǒng),其特征在于, 在更新推薦內容時,設定一個負載閾值、一個或多個時間點,一個時間間隔和最大等待 次數;當所述系統(tǒng)的系統(tǒng)時間到達時間點時,檢查所述系統(tǒng)的系統(tǒng)負載是否在設定的負載 閾值以下: 若否,則等待一個時間間隔后再次檢查,直到負載到達負載閾值以下時進行更新,或者 等待次數大于最大等待次數,則取消本次更新; 若是,則將更新過的記錄所有用戶的潛在好友組和未添加應用組的文件,從所述系統(tǒng) 的系統(tǒng)數據庫中導入到在所述系統(tǒng)的系統(tǒng)服務器集群中搭建的Hadoop集群的文件系統(tǒng) HDFS中,然后以執(zhí)行MapReduce程序的方式來對步驟A進行分布式計算,并將計算結果導回 到系統(tǒng)數據庫中。
【文檔編號】G06F17/30GK104156392SQ201410326035
【公開日】2014年11月19日 申請日期:2014年7月9日 優(yōu)先權日:2014年7月9日
【發(fā)明者】黃潔琛, 謝朝陽, 童曉渝, 丁星, 武靜 申請人:中電科華云信息技術有限公司