信息推薦方法和系統的製作方法
2023-07-11 15:59:26 1
信息推薦方法和系統的製作方法
【專利摘要】本發明提供一種信息推薦方法和系統。首先生成用戶-對象矩陣,然後建立用戶權值向量和對象質量向量,再通過迭代算法計算出用戶的優先級權值和對象的質量權值,分別按照權值排序提取用於推薦計算的優先用戶高質對象,既剔除了對推薦計算結果影響較小的數據,減少了數據計算量,又能避免無用數據的影響,提高推薦計算的結果的精確度;綜合來看,該方案能夠明顯提高伺服器資源利用率,降低推薦計算的時間消耗,提高了信息推薦的效果和效率,更有利於信息推薦的實時化。
【專利說明】信息推薦方法和系統
【技術領域】
[0001]本發明涉及網際網路【技術領域】,特別是涉及一種信息推薦方法和系統。
【背景技術】
[0002]現在的網際網路網站中,常見的信息推薦方案可以分為兩種:基於內容的和基於行為的。前者在新聞、電影等類型的信息推薦中比較常用,而在以特定對象為推薦的一類網站中中,一般只能作為輔助、補充的方法。
[0003]由於網站的瀏覽量巨大、用戶群眾多,每天都有大量的用戶行為數據積累下來。當前最常見的基於行為的推薦算法,是協同過濾及各種衍生版本。其核心是根據用戶與特定對象執行的行為數據,在用戶空間中計算特定對象之間的相似度,從而根據特定對象來推薦其他對象;或者在對象空間中計算用戶的相似度,然後計算出相似用戶有過行為的特定對象,來推薦給當前用戶。
[0004]前面所述的計算方法,數據稀疏性比較嚴重,計算量非常大,算法效率的提升容易遇到瓶頸。由於要計算所有用戶和所有對象,數據容易摻進雜質,降低結果的準確率。由於需要推薦的對象和用戶數都非常巨大,通常達到百萬、千萬以上的級別。這樣,在計算對象相似度或者用戶相似度時,數據稀疏性比較嚴重。另一方面,更多的長尾用戶的網上行為,是零星的、沒有規律性的,在推薦流程中,只會增加時間複雜度,而不會對計算的效果有所提聞。
[0005]由此可見,傳統方法統計用戶行為和數據,涉及過多的用戶和對象。正如籤名所述,包含較多用戶的行為是不具有規律性、可參考性的,經過推薦流程後,包含有較多也並不是作為優先對象所希望選擇的;這些用戶和對象對最終的推薦效果,並沒有太大的正面影響;但在進行推薦流程的技術時,卻仍然將其包含到技術範圍內,這就明顯浪費伺服器資源,後續推薦計算的時間消耗多,既降低了推薦的效果,又降低了推薦的效率,阻礙了信息推薦的實時化。
【發明內容】
[0006]基於此,有必要針對現有技術中存在的後續推薦計算的時間消耗多,推薦的效果差和推薦效率低的問題,提供一種信息推薦方法和系統。
[0007]一種信息推薦方法,包括如下步驟:
[0008]根據資料庫中保存的用戶行為數據,建立用戶到待推薦的對象的mXn矩陣A,根據矩陣A的元素Au確定每個用戶對每個對象的行為權值;其中,m為用戶數量,η為對象數量;
[0009]矩陣A的元素滿足:
[0010]A_(ik) >A_(jk),k為同一對象,用戶i對對象的行為比用戶j更早產生;
[0011]A_(ik) = 0,用戶i對對象k沒有行為;
[0012]建立m維的用戶權值向量E和η維的對象質量向量Q,並將兩個向量的所有元素都初始化為1,其中,E表示用戶的優先級權值,Q表示對象的質量權值;
[0013]將用戶權值向量E和η維的對象質量向量Q進行迭代運算:
[0014]E:= QXAt
[0015]Q:= EXA
[0016]其中,At為矩陣A的轉置矩陣;
[0017]將用戶權值向量E的各個兀素對應的用戶和對象質量向量Q的各個兀素對應的對象分別按照權值排序;
[0018]依順序提取前面比例為a(a〈l)的權值的用戶設為優先用戶,依順序提取前面比例為a的權值的對象設為高質對象;
[0019]根據所述優先用戶和高質對象,採用基於對象的協同過濾方法或基於用戶的協同過濾方法進行對象信息的推薦。
[0020]一種信息推薦系統,包括:
[0021]矩陣生成模塊,用於根據資料庫中保存的用戶行為數據,建立用戶到待推薦的對象的mXn矩陣A,根據矩陣A的元素Au確定每個用戶對每個對象的行為權值;其中,m為用戶數量,η為對象數量;
[0022]矩陣A的元素滿足:
[0023]A_(ik) >A_(jk),k為同一對象,用戶i對對象的行為比用戶j更早產生;
[0024]A_(ik) = 0,用戶i對對象k沒有行為;
[0025]向量生成模塊,用於建立m維的用戶權值向量E和η維的對象質量向量Q,並將兩個向量的所有元素都初始化為I,其中,E表示用戶的優先級權值,Q表示對象的質量權值;將用戶權值向量E和η維的對象質量向量Q進行迭代運算:
[0026]E:= QXAt
[0027]Q:= EXA
[0028]其中,At為矩陣A的轉置矩陣;
[0029]用戶和對象提取模塊,用於將用戶權值向量E的各個兀素對應的用戶和對象質量向量Q的各個元素對應的對象分別按照權值排序;依順序提取前面比例為a(a〈l)的權值的用戶設為優先用戶,依順序提取前面比例為a的權值的對象設為高質對象;
[0030]信息推薦模塊,用於根據所述優先用戶和高質對象,採用基於對象的協同過濾方法或基於用戶的協同過濾方法進行對象信息的推薦。
[0031]上述信息推薦方法和系統。首先生成用戶-對象矩陣,然後建立用戶權值向量和對象質量向量,再通過迭代算法計算出用戶的優先級權值和質量權值,分別按照權值排序提取用於推薦計算的優先用戶高質對象,既剔除了對推薦計算結果影響較小的數據,減少了數據計算量,又能避免無用數據的影響,提高推薦計算的結果的精確度;綜合來看,該方案能夠明顯提高伺服器資源利用率,降低推薦計算的時間消耗,提高了信息推薦的效果和效率,更有利於信息推薦的實時化。
【專利附圖】
【附圖說明】
[0032]圖1為本發明的信息推薦方法流程圖;
[0033]圖2為本發明的信息推薦系統結構示意圖。【具體實施方式】
[0034]下面結合附圖對本發明的信息推薦方法和系統的【具體實施方式】作詳細描述。
[0035]參考圖1所示,圖1為本發明的信息推薦方法流程圖,主要包括如下步驟:
[0036]步驟S10,根據資料庫中保存的用戶行為數據,建立用戶到待推薦的對象的mXn矩陣A,根據矩陣A的元素Au確定每個用戶對每個對象的行為權值;其中,m為用戶數量,η為對象數量;
[0037]矩陣A的元素滿足:
[0038]麼_(110>4_(」10,1^為同一對象,用戶1對對象的行為比用戶j更早產生;A_(ik)=0,用戶i對對象k沒有行為。
[0039]mXn矩陣A可以表示如下:
【權利要求】
1.一種信息推薦方法,其特徵在於,包括如下步驟: 根據資料庫中保存的用戶行為數據,建立用戶到待推薦的對象的mXn矩陣A,根據矩陣A的元素Au確定每個用戶對每個對象的行為權值; 其中,m為用戶數量,η為對象數量,矩陣A的元素滿足: A_(ik) >A_(jk), k為同一對象,用戶i對對象的行為比用戶j更早產生;A_(ik) = O,用戶i對對象k沒有行為; 建立m維的用戶權值向量E和η維的對象質量向量Q,並將兩個向量的所有元素都初始化為I ;其中,E表示用戶的優先級權值,Q表示對象的質量權值; 將用戶權值向量E和η維的對象質量向量Q進行迭代運算:
E:= QXAt
Q:= EXA 其中,At為矩陣A的轉置矩陣; 將用戶權值向量E的各個元素對應的用戶和對象質量向量Q的各個元素對應的對象分別按照權值排序;依順序提取前面比例為a(a〈l)的權值的用戶設為優先用戶,依順序提取前面比例為a的權值的對象設為高質對象; 根據所述優先用戶和高質對象,採用基於對象的協同過濾方法或基於用戶的協同過濾方法進行對象信息的 推薦
2.根據權利要求1所述的信息推薦方法,其特徵在於,所述根據矩陣A的元素Au確定每個用戶對每個對象的行為權值的步驟包括: 建立用戶的行為數據集合R ;R = {(u, p, t)},其中,集合R的每個元素(u, P, t)表示用戶u在時間t對對象P的一個行為事件; 設定行為權值的數學表達式:
Aij = I {u I (u, Pj, t), (Ui, Pj, ti) e R λ (t>ti)} I ; 其中,符號「 Λ 」表示滿足右邊條件的元素,「u I 」表示符合右邊條件的任意用戶,符號「 Il 」表示集合裡面的元素的個數; 根據所述數學表達式計算用戶對對象的行為權值矩陣。
3.根據權利要求2所述的信息推薦方法,其特徵在於,所述根據所述數學表達式計算用戶對對象的行為權值矩陣的步驟包括: 將矩陣A初始化為mXn階的零矩陣; 遍歷所有行為數據集,搜索到一個用戶i對對象j的行為數據時,則將元素Au置1,並把矩陣A的第j列中所有非零元素自增I ; 遍歷完所有行為數據後,為防止最終結果的奇異化,再將矩陣A的非零元素進行平滑處理:
Aij:= 1g(^Aij) 根據平滑處理後的矩陣A確定用戶對對象的行為權值矩陣。
4.根據權利要求1所述的信息推薦方法,其特徵在於,所述將用戶權值向量E和η維的對象質量向量Q進行迭代運算的步驟包括: 遍歷向量E中的每個元素Ei ; 遍歷矩陣A的第i行的每個元素Aij ;將Aij乘以Qj,然後加到Ei上; 計算完所有E的元素後,開始計算Q,遍歷向量Q的每個元素Qj ; 遍歷矩陣A的第j列的每一個元素Aij ; 將Aij乘以Ei,加到Qj上; 反覆進行以上計算,直至向量E和向量Q都收斂停止。
5.根據權利要求1所述的信息推薦方法,其特徵在於,所述基於對象的協同過濾進行對象信息的推薦的步驟包括: 從資料庫中查找出所有對象和優先用戶的行為記錄,生成對象向量P:
Pj — (Pjl, Pj2,..., Pju,..., Pjm*a) 其中,P」為第j個對象向量,向量的每一個分量P#表示對象j對應該優先用戶U的行為權值; 計算所有高質對象之間的相似度:
Sij =Eu (Pju*Pju) /1 Pi I * I Pj 其中,IPiI = Σ uPiu, I Pj I = Σ uPju,求和Σ u是對所有優先用戶u進行遍歷的; 對於每一個對象i,根據計算的相似度進行排序,選擇相似度Pu最大的前K個對象,設為原對象i的推薦結果進行對象信息的推薦; 或 所述基於用戶的協同過濾方法進行對象信息的推薦的步驟包括: 從資料庫中查找出所有用戶和高質對象的行為記錄,生成用戶向量C:
Cu — (Cul,Cu2,…,Cui,…,Cunita) 其中,Cu為第u個用戶向量,向量的每一個分量Cui表不聞質對象i對應該用戶u的行為權值; 計算所有優先用戶之間的相似度:
Wuv=E i (Cui^Cvi)/I Pj* I Pv I 其中,Pu = Σ iPui, Pv = Σ iPvi,求和Σ i是對所有的高質對象i進行遍歷的; 根據用戶之間的相似度Wuv和用戶向量Cu,並以用戶間的相似度作為加權,計算針對用戶u的對象i的被推薦的權值Rui:
Rui = Σ V (Wuv Cvi/ Σ iCvi) 將所有的對象i按照權值Rui進行排序,選擇前K個對象對用戶u進行對象信息的推薦。
6.一種信息推薦系統,其特徵在於,包括: 矩陣生成模塊,用於根據資料庫中保存的用戶行為數據,建立用戶到待推薦的對象的mXn矩陣A,根據矩陣A的元素『確定每個用戶對每個對象的行為權值;其中,m為用戶數量,η為對象數量;矩陣A的元素滿足: A_(ik) >A_(jk), k為同一對象,用戶i對對象的行為比用戶j更早產生;A_(ik) = O,用戶i對對象k沒有行為; 向量生成模塊,用於建立m維的用戶權值向量E和η維的對象質量向量Q,並將兩個向量的所有元素都初始化為1,其中,E表示用戶的優先級權值,Q表示對象的質量權值;將用戶權值向量E和η維的對象質量向量Q進行迭代運算:E:= QXAt
Q:= EXA 其中,At為矩陣A的轉置矩陣; 用戶和對象提取模塊,用於將用戶權值向量E的各個元素對應的用戶和對象質量向量Q的各個元素對應的對象分別按照權值排序;依順序提取前面比例為a(a〈l)的權值的用戶設為優先用戶,依順序提取前面比例為a的權值的對象設為高質對象; 信息推薦模塊,用於根據所述優先用戶和高質對象,採用基於對象的協同過濾方法或基於用戶的協同過濾方法進行對象信息的推薦。
7.根據權利要求6所述的信息推薦系統,其特徵在於,所述矩陣生成模塊用於根據矩陣A的元素Au確定每個用戶對每個對象的行為權值的方法具體包括: 建立用戶的行為數據集合R ;R = {(u, p, t)},其中,集合R的每個元素(u, P, t)表示用戶u在時間t對對象P的一個行為事件; 設定行為權值的數學表達式:
Aij = I {u I (u, Pj, t), (Ui, Pj, ti) ∈ R λ (t>ti)} I ; 其中,符號「 Λ 」表示滿足右邊條件的元素,「u I 」表示符合右邊條件的任意用戶,符號「 Il 」表示集合裡面的元素的個數; 根據所述數學表達式計算用戶對對象的行為權值矩陣。
8.根據權利要求7所述的信息推薦系統,其特徵在於,所述矩陣生成模塊用於根據所述數學表達式計算用戶對對象的行為權值矩陣的方法具體包括: 將矩陣A初始化為mXn階的零矩陣; 遍歷所有行為數據集,搜索到一個用戶i對對象j的行為數據時,則將元素Au置1,並把矩陣A的第j列中所有非零元素自增I ; 遍歷完所有行為數據後,為防止最終結果的奇異化,再將矩陣A的非零元素進行平滑處理:
Aij:= 1g(^Aij) 根據平滑處理後的矩陣A確定用戶對對象的行為權值矩陣。
9.根據權利要求6所述的信息推薦系統,其特徵在於,所述向量生成模塊用於將用戶權值向量E和η維的對象質量向量Q進行迭代運算的方法具體包括: 遍歷向量E中的每個元素Ei ; 遍歷矩陣A的第i行的每個元素Aij ; 將Aij乘以Qj,然後加到Ei上; 計算完所有E的元素後,開始計算Q,遍歷向量Q的每個元素Qj ; 遍歷矩陣A的第j列的每一個元素Aij ; 將Aij乘以Ei,加到Qj上; 反覆進行以上計算,直至向量E和向量Q都收斂停止。
10.根據權利要求6所述的信息推薦系統,其特徵在於,所述信息推薦模塊用於基於對象的協同過濾進行對象信息的推薦的方法具體包括: 從資料庫中查找出所有對象和優先用戶的行為記錄,生成對象向量P:
Pj — (Pjl, Pj2,..., Pju,..., Pjm*a)其中,P]為第j個對象向量,向量的每一個分量P#表示對象j對應該優先用戶U的行為權值; 計算所有高質對象之間的相似度:
Sij =Eu (piu*pju) /1 Pi I * I Pj 其中,IPiI = Σ UPiu, I Pj I = Σ uPjU,求和Σ U是對所有優先用戶U進行遍歷的; 對於每一個對象i,根據計算的相似度進行排序,選擇相似度Pu最大的前K個對象,設為原對象i的推薦結果進行對象信息的推薦; 或 所述信息推薦模塊用於基於用戶的協同過濾方法進行對象信息的推薦的方法具體包括: 從資料庫中查找出所有用戶和高質對象的行為記錄,生成用戶向量C:
Cu — (Cul,Cu2,…,Cui,…,Cunita) 其中,Cu為第u個用戶向量,向量的每一個分量Cui表不聞質對象i對應該用戶u的行為權值; 計算所有優先用戶 之間的相似度:
Wuv=E i (Cui^Cvi)/I Pj* I Pv I 其中,IpuI = Σ iPui, Pv = Σ iPvi,求和Σ i是對所有的高質對象i進行遍歷的; 根據用戶之間的相似度Wuv和用戶向量Cu,並以用戶間的相似度作為加權,計算針對用戶u的對象i的被推薦的權值Rui:
Rui = Σ V (Wuv Cvi/ Σ iCvi) 將所有的對象i按照權值Rui進行排序,選擇前K個對象對用戶u進行對象信息的推薦。
【文檔編號】G06F17/30GK103810262SQ201410038156
【公開日】2014年5月21日 申請日期:2014年1月26日 優先權日:2014年1月26日
【發明者】王迎賓 申請人:廣州品唯軟體有限公司