一種基于用戶雙向關系的推薦方法
【專利摘要】本發明公開了一種基于用戶雙向關系的推薦方法,根據用戶對已有的項目的評分記錄,計算用戶之間的正向和反向相似度,并得到用戶的正向和反向相似用戶群,然后通過正向相似用戶群和反向相似用戶群的加權評分預測用戶評分;在二值評分模式或多值評分模式下進行,包括:1)根據用戶已有的項目的評分記錄,計算用戶之間的正向相似度和反向相似度;2)創建正向相似用戶群和反向相似用戶群;3)根據正向和反向相似用戶群,預測出目標用戶對未知項目的評分;4)產生推薦;為了緩解數據稀疏時相似用戶不足導致評分預測不準確的問題,在用戶相似關系的基礎上,進一步挖掘用戶近似相反或反向相似關系的作用,結合用戶的正反雙向相似關系產生最終推薦。
【專利說明】
一種基于用戶雙向關系的推薦方法
技術領域
[0001] 本發明涉及信息技術、大數據技術等領域,具體的說,是一種基于用戶雙向關系的 推薦方法。
【背景技術】
[0002] 隨著信息技術的發展,網絡規模急劇擴大,網上數據急劇增多,而大數據在滿足用 戶的信息需求同時,帶來了信息過載的問題一一用戶無法從海量的信息中獲取到對自己有 用的部分。推薦系統的出現使得信息過載問題得到緩解,它通過分析用戶歷史數據和行為, 挖掘出用戶感興趣的信息或項目并主動推薦給用戶。另外,推薦系統能夠提供針對性的服 務,滿足了用戶的個性化需求。推薦系統如今已廣泛應用于電子商務、廣告推薦等多個領 域。
[0003] 協同過濾推薦方法是目前推薦系統應用最為廣泛最為有效的,其基本思想是具有 相同或相似興趣偏好的用戶對信息或項目的需求也是相似的。與其他推薦方法相比,協同 過濾推薦方法只需用戶對項目的評價信息,因此它的數據容易獲取;無需考慮項目本身屬 性特征,對推薦對象沒有特殊要求,能對任何可評分的對象進行推薦。
[0004] 目前,基于用戶的協同過濾推薦方法通過用戶評分的相似性找到目標用戶的相似 用戶,并根據相似用戶的評分來預測目標用戶對未知項目的評分。然而,由于實際推薦環境 中,用戶的評分數據十分稀疏,導致目標用戶的相似用戶過少,或者對目標項目有評分的相 似用戶過少。而在有效相似用戶數量不足,甚至為零的情況下,難以準確預測出目標用戶的 評分,因此使得推薦效果不佳。
【發明內容】
[0005] 本發明的目的在于緩解數據稀疏時相似用戶不足導致評分預測不準確的問題,在 用戶相似關系的基礎上,進一步挖掘用戶近似相反或反向相似關系的作用,結合用戶的正 反雙向相似關系,設計出一種基于用戶雙向關系的推薦方法。
[0006] 本發明通過下述技術方案實現:一種基于用戶雙向關系的推薦方法,根據用戶已 有的項目的評分記錄,計算用戶之間的正向相似度和反向相似度,并得到用戶的正向和反 向相似用戶群,然后通過正向相似用戶群和反向相似用戶群的加權評分預測用戶評分。
[0007] 進一步的為更好地實現本發明,特別采用下述設置方式:所述推薦方法在二值評 分模式或多值評分模式下進行,包括以下具體步驟:
[0008] 1)根據用戶已有的項目的評分記錄,計算用戶之間的正向相似度和反向相似度; [0009] 2)創建正向相似用戶群和反向相似用戶群;
[0010] 3)根據正向和反向相似用戶群,預測出目標用戶對未知項目的評分;
[0011] 4)產生推薦。
[0012] 進一步的為更好地實現本發明,特別采用下述設置方式:在二值評分模式下,所述 步驟1)包括以下具體步驟:
[0013] 1-a.l)根據用戶已有項目的評分記錄,將用戶之間的關系分為正向相似關系與反 向相似關系,將評分設置為正負兩種情況;用戶對項目的偏好分為正向/負向兩種,如視頻 網站的"頂/踩",微博的"關注/不關注";
[0014] ι-a. 2)設定兩用戶對某項目的評分相同則判定兩用戶在該項目上的偏好相同,評 分不同則判定兩用戶偏好相反;由于評分本身具有明顯的正反關系,則有兩用戶對某項目 的評分相同則表示他們在該項目上的偏好相同,評分不同則偏好相反;
[0015] l-a.3)采用Jaccard(杰卡德)相關系數,結合評分相同項與共同評分項計算用戶 之間的正向相似度;結合評分相反項與共同評分項計算用戶之間的反向相似度;具體的基 于杰卡德相關系數的相似度度量方法,用"評分相同項/共同評分項"表示用戶之間的正向 相似程度,在此基礎上,進一步采用"評分相反項/共同評分項"表示用戶之間的反向相似程 度;
[0016] ι-a.4)通過懲罰函數對正向相似度或/和反向相似度進行平滑處理;由于數據稀 疏會導致正向和反向相似度過度估計,則引入懲罰函數分別對正向和反向相似度進行平 滑;所述懲罰函數的原則是,當共同評分項小于給定的懲罰閾值時,正向和反向相似度降 低;否則不變。
[0017] 進一步的為更好地實現本發明,特別采用下述設置方式:在二值評分模式下,所述 步驟3)包括以下具體步驟:
[0018] 3-a.l)設定分別代表反向相似用戶權重和正向相似用戶權重的權重因子;由于正 向和反向相似用戶群對用戶推薦的影響可能不同,則引入權重因子進行權衡;
[0019] 3-a. 2)設定參考值:反向相似用戶將評分的相反值作為目標用戶預測的參考值; 正向相似用戶將評分本身作為目標用戶預測的參考值;由于用戶與其反向相似用戶的評分 具有近似相反的關系,因此反向相似用戶將其評分的相反值作為目標用戶預測評分的參 考;正向相似用戶將其評分本身作為參考;
[0020] 3-a. 3)以相應的參考值為標準值,分別以正向相似度和相應的權重因子的乘積或 反向相似度和相應的權重因子的乘積作為正向相似用戶與反向相似用戶的權值;以正向和 反向相似用戶的標準值與對應權值的加權平均值作為目標用戶的預測評分。
[0021 ]進一步的為更好地實現本發明,特別采用下述設置方式:
[0022]在多值評分模式下,所述步驟1)包括以下步驟:
[0023] Ι-b.l)基于評分偏量定義用戶之間的正向和反向相似關系,評分偏量通過用戶當 前評分減去該用戶已有評分記錄的平均值得到;由于不同用戶評分的標準不同,有的用戶 對喜愛的項目會打5分,有的用戶可能只打4分,同理對待不喜的項目也有打1分、2分甚至3 分的差異;則不能簡單的認為打4分的用戶和打2分的用戶有完全相反的態度,也不能認為 給某一項目打相同分數的用戶在該項目上的態度完全一致;為此,引入評分偏量,評分偏量 通過用戶當前評分減去該用戶已有評分的平均值得到;由于評分偏量平衡了用戶的評分標 準,它的正負性分別代表了用戶的態度基于該用戶平均態度的正向和負向,有一個明確的 正反關系,所以可以基于評分偏量定義用戶之間的正向和反向相似關系;
[0024] l-b. 2)將兩個用戶之間對所有項目的評分偏量分別表不為向量家_和向量貧,利用 向量余弦度量相似關系,兩用戶的正向相似度即為兩用戶的反向相似度為 cos(H'j;g卩用戶a和用戶b對所有項目的評分偏量看作向量g和,,利用向量余弦度量相 似關系,用戶a和用戶b的正向相似度即為·,反向相似度為-1?實際上,正向 相似度度量方法就是修正的余弦相似度算法;
[0025] l_b. 3)通過懲罰函數對正向相似度或/和反向相似度進行平滑處理,避免過度估 計;所述懲罰函數的原則是,當共同評分項小于給定的懲罰閾值時,正向和反向相似度降 低;否則不變。
[0026]進一步的為更好地實現本發明,特別采用下述設置方式:在多值評分模式下,所述 步驟3)包括以下具體步驟:
[0027] 3-b.l)設定分別代表反向相似用戶權重和正向相似用戶權重的權重因子;由于正 向和反向相似用戶群對用戶推薦的影響可能不同,引入權重因子進行權衡;
[0028] 3-b. 2)設定參考值:正向相似用戶將評分偏量作為目標用戶預測的參考值,反向 相似用戶將評分偏量的相反值作為目標用戶預測的參考值;多值評分模式下用戶的雙向關 系是基于用戶的評分偏量而不是評分本身,因此將正向相似用戶的評分偏量和反向相似用 戶評分偏量的相反值作為預測評分的參考值;
[0029] 3-b. 3)以相應的參考值為標準值,分別以正向相似度和相應的權重因子的乘積與 反向相似度和相應的權重因子的乘積作為正向相似用戶與反向相似用戶的權值;以正向和 反向相似用戶的標準值與對應權值的加權平均值作為目標用戶的預測評分偏量;
[0030] 3-b.4)以預測的目標用戶的評分偏量和評分均值之和作為目標用戶的預測評分。
[0031] 進一步的為更好地實現本發明,特別采用下述設置方式:所述步驟2)具體為:將目 標用戶與其他用戶的正向相似度進行排名,取最大的K個用戶為目標用戶的正向相似用戶 群;將目標用戶與其他用戶的反向相似度進行排名,取最大的K個用戶為目標用戶的反向相 似用戶群,K的取值根據實際情況設定,K值的確定采用10折交叉檢驗方法,統計不同K值的 平均誤差率,選擇誤差率最小的作為本發明的K值。
[0032] 進一步的為更好地實現本發明,特別采用下述設置方式:所述步驟4)具體為:經步 驟3)后,進行評分排名,得到排名列表,從排名列表中為目標用戶推薦預測評分最大的N個 項目。
[0033] 進一步的為更好地實現本發明,特別采用下述設置方式:所述懲罰函數的原則是, 當共同評分項小于給定的懲罰閾值時,正向相似度或反向相似度降低;否則不變。
[0034] 本發明與現有技術相比,具有以下優點及有益效果:
[0035] (1)本發明為了緩解數據稀疏時相似用戶不足導致評分預測不準確的問題,在用 戶相似關系的基礎上,進一步挖掘用戶近似相反或反向相似關系的作用,結合用戶的正反 雙向相似關系,設計出一種基于用戶雙向關系的推薦方法。
[0036] (2)本發明能夠在相似用戶不足的情況下,發揮反向相似用戶的作用,結合兩者的 共同作用來緩解數據稀疏性問題,進而提高推薦精度。
[0037] (3)本發明在基于用戶的協同過濾推薦方法中引入用戶反向相似的關聯作用;結 合了用戶正向和反向相似關系的協同作用進行推薦,來緩解評分數據稀疏的問題;提出的 反向相似作用可擴展到基于項目的協同過濾推薦方法中,引申為基于項目雙向關系的推薦 方法。
【附圖說明】
[0038]圖1為本發明工作流程圖;
[0039]圖2為二值評分矩陣示意圖;
[0040]圖3為五值評分矩陣示意圖;
[0041 ]圖4為創建正向和反向相似用戶群示意圖;
[0042]圖5為產生推薦示意圖。
【具體實施方式】
[0043] 下面結合實施例對本發明作進一步地詳細說明,但本發明的實施方式不限于此。
[0044] 實施例1:
[0045] 本發明為了緩解數據稀疏時相似用戶不足導致評分預測不準確的問題,在用戶相 似關系的基礎上,進一步挖掘用戶近似相反或反向相似關系的作用,結合正向和反向相似 兩種用戶關聯關系,設計出一種基于用戶雙向關系的推薦方法,如圖1-4所示,根據用戶已 有的項目的評分記錄,計算用戶之間的正向和反向相似度,并得到用戶的正向和反向相似 用戶群,然后通過正向相似用戶群和反向相似用戶群的加權評分預測用戶評分。
[0046] 實施例2:
[0047]本實施例是在上述實施例的基礎上進一步優化,進一步的為更好地實現本發明, 如圖1-4所示,特別采用下述設置方式:所述推薦方法在二值評分模式下進行時,包括以下 具體步驟:
[0048]步驟1:計算用戶正向和反向相似度:
[0049]二值評分模式下,用戶對項目的評分數據表示為一個二值評分矩陣;如圖2所示, 在一個mXn階的二值評分矩陣條件下,m為用戶數,η為項目數,矩陣元素 1?^^{-1,〇,1}表 示用戶i對項目j的評分,Ru = 〇則表示未評分;
[0050]基于二值評分矩陣,采用杰卡德相關系數相似度度量方法計算用戶之間的正向相 似度,即"評分相同項/共同評分項";進一步,采用"評分相反項/共同評分項"表示用戶之間 的反向相似度;
[0051]由于數據稀疏會導致正向和反向相似度過度估計,本發明引入懲罰函數分別對正 向和反向相似度進行平滑。
[0052]二值評分模式下的用戶正向和反向相似度度量方法分別如公式(1)和公式(2)所 示,
[0055]公式(1)和公式(2)中,Rau與Rbu分別為用戶a與用戶b對項目j的評分;1{*}表示一 個指示函數:{trUe,falSe} - {l,0};ri為懲罰閾值,當共同評分項小于該閾值時,對用戶相 似度進行平滑,否則不變。
[0056]步驟2:創建正向和反向相似用戶群:
[0057]如圖4所示,將目標用戶u與其他用戶的正向相似度進行排名,取最大的K個用戶為 目標用戶的正向相似用戶群P_G(u);將目標用戶u與其他用戶的反向相似度進行排名,取最 大的K個用戶為目標用戶的反向相似用戶群N_G(u),K的取值根據實際情況設定。
[0058] 步驟3:預測評分:
[0059] 由于正向和反向相似用戶群對用戶推薦的影響可能不同,本發明引入權重因子對 正反向用戶的重要性進行權衡,權重因子λ表示反向相似用戶權重,權重因子(l-λ)表示正 向相似用戶權重。
[0060] 二值評分模式下,用戶與其反向相似用戶的評分具有近似相反的關系,因此反向 相似用戶將其評分的相反值推薦給用戶。
[0061] 預測評分如公式(3)所示;
[0063]公式(3)中,λ為反向相似用戶權重因子;P_G(u)為用戶u的正向相似用戶群,N_G (u)為用戶u的反向相似用戶群;Sim(u,x)為用戶u與用戶X的正向相似度;Fsim(u,y)為用戶 u與戶y的反向相似度。
[0064] 步驟4:產生推薦:
[0065]如圖5所示,根據上述步驟預測出目標用戶對未知項目的評分,進行評分排名后, 得到排名列表。
[0066]根據Τ0Ρ-Ν,從排名列表中為目標用戶推薦預測評分最大的N個產品。
[0067] 實施例3:
[0068]本實施例是在上述實施例的基礎上進一步優化,進一步的為更好地實現本發明, 如圖1-4所示,特別采用下述設置方式:所述推薦方法在多值評分模式下進行時(本實施例 在5值評分模式下),包括以下具體步驟:
[0069]步驟1:計算用戶正向和反向相似度:
[0070]多值評分模式下,用戶對產品的評分數據表示為一個多值評分矩陣;如圖3所示, 表示為一個mXn階的五值評分矩陣,m為用戶數,η為產品數,矩陣元素 Rlue{〇,l,2,3,4,5} 表示用戶i對項目j的評分,Rw = 〇則表示未評分;
[0071]評分本身沒有明確的正反關系,本發明采用評分偏量的正負性表示用戶偏好的正 反關系,評分偏量通過用戶當前評分減去該用戶所有評分的平均值得到;
[0072]將用戶a和用戶b對所有項目的評分偏量看作向量?和^,利用向量余弦度量相似 關系,用戶a和用戶b的正向相似度即為反向相似度為sosg、-f).實際上,正向相 7 , 似度度量方法就是修正的余弦相似度算法。
[0073]同樣的,為了避免過度估計,使用懲罰函數平滑正向和反向相似度。
[0074]多值評分模式下的用戶正向和反向相似度度量方法分別如公式(4)和公式(5)所 不。
[0077]公式(4)和公式(5)中,1與1£分別表示用戶a與b對所有項目評分的均值;I^Ib 分別表示用戶a與b評價過的項目集合;1'表示用戶a與b共同評價的項目集合,
{*}表示一個指示函數:{trUe,falSe卜{l,0};ri為懲罰閾值,當共同評分項小于該閾值時, 對用戶相似度進行平滑,否則不變。
[0078]步驟2:創建正向和反向相似用戶群:
[0079] 如圖4所示,將目標用戶u與其他用戶的正向相似度進行排名,取最大的K個用戶為 目標用戶的正向相似用戶群P_G(u);將目標用戶u與其他用戶的反向相似度進行排名,取最 大的K個用戶為目標用戶的反向相似用戶群N_G(u),K的取值根據實際情況設定。
[0080] 步驟3:預測評分:
[0081] 由于正向和反向相似用戶群對用戶推薦的影響可能不同,本發明引入權重因子對 正反向用戶的重要性進行權衡,權重因子λ表示反向相似用戶權重,(l-λ)表示正向相似用 戶權重。
[0082] 多值標注模式下用戶的雙向關系是基于用戶的評分偏量而不是評分本身,因此需 將正向相似用戶的評分偏量和反向相似用戶評分偏量的相反值作為預測評分的參考值。 [0083] 預測評分如公式(6)所示:
[0085]公式(6)中,C為用戶u打分的均值;λ為反向相似用戶權重因子;P_G(u)為用戶u的 正向相似用戶群,N_G(u)為用戶u的反向相似用戶群;Sim(u,x)為用戶u與用戶X的正向相似 度;Fsim(u,y)為用戶u與用戶y的反向相似度。
[0086] 步驟4:產生推薦:
[0087]如圖5所示,根據上述步驟預測出目標用戶對未知項目的評分,進行評分排名后, 得到排名列表。
[0088]根據Τ0Ρ-Ν,從排名列表中為目標用戶推薦預測評分最大的N個產品。
[0089]以上所述,僅是本發明的較佳實施例,并非對本發明做任何形式上的限制,凡是依 據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化,均落入本發明的保護 范圍之內。
【主權項】
1. 一種基于用戶雙向關系的推薦方法,其特征在于:根據用戶已有的項目的評分記錄, 計算用戶之間的正向相似度和反向相似度,并得到用戶的正向和反向相似用戶群,然后通 過正向相似用戶群和反向相似用戶群的加權評分預測用戶評分。2. 根據權利要求1所述的一種基于用戶雙向關系的推薦方法,其特征在于:所述推薦方 法在二值評分模式或多值評分模式下進行,包括W下具體步驟: 1) 根據用戶已有的項目的評分記錄,計算用戶之間的正向相似度和反向相似度; 2) 創建正向相似用戶群和反向相似用戶群; 3) 根據正向和反向相似用戶群,預測出目標用戶對未知項目的評分; 4) 產生推薦。3. 根據權利要求2所述的一種基于用戶雙向關系的推薦方法,其特征在于:在二值評分 模式下,所述步驟1)包括W下具體步驟: 1-a.l)根據用戶已有項目的評分記錄,將用戶之間的關系分為正向相似關系與反向相 似關系; 1-a. 2)設定兩用戶對某項目的評分相同則判定兩用戶在該項目上的偏好相同,評分不 同則判定兩用戶偏好相反; 1-a. 3)采用化ccard相關系數,結合評分相同項與共同評分項計算用戶之間的正向相 似度;結合評分相反項與共同評分項計算用戶之間的反向相似度; 1 -a. 4)通過懲罰函數對正向相似度或/和反向相似度進行平滑處理。4. 根據權利要求2所述的一種基于用戶雙向關系的推薦方法,其特征在于:在二值評分 模式下,所述步驟3)包括W下具體步驟: 3-a.l)設定分別代表反向相似用戶權重和正向相似用戶權重的權重因子; 3-a. 2)設定參考值:反向相似用戶將評分的相反值作為目標用戶預測的參考值;正向 相似用戶將評分本身作為目標用戶預測的參考值; 3-a. 3) W相應的參考值為標準值,分別W正向相似度和相應的權重因子的乘積或反向 相似度和相應的權重因子的乘積作為正向相似用戶與反向相似用戶的權值;W正向和反向 相似用戶的標準值與對應權值的加權平均值作為目標用戶的預測評分。5. 根據權利要求2所述的一種基于用戶雙向關系的推薦方法,其特征在于:在多值評分 模式下,所述步驟1)包括W下步驟: 1-b.l)基于評分偏量定義用戶之間的正向和反向相似關系,評分偏量通過用戶當前評 分減去該用戶已有評分記錄的平均值得到; 1-b. 2)將兩個用戶之間對所有項目的評分偏量分別表示為向量茶和向量黎,利用向量 余弦度量相似關系,兩用戶的正向相似度即為祭取),兩用戶的反向相似度為苗系… 1 -b. 3)通過懲罰函數對正向相似度或/和反向相似度進行平滑處理。6. 根據權利要求2所述的一種基于用戶雙向關系的推薦方法,其特征在于:在多值評分 模式下,所述步驟3)包括W下具體步驟: 3-b.l)設定分別代表反向相似用戶權重和正向相似用戶權重的權重因子; 3-b. 2)設定參考值:正向相似用戶將評分偏量作為目標用戶預測的參考值,反向相似 用戶將評分偏量的相反值作為目標用戶預測的參考值; 3-b. 3) W相應的參考值為標準值,分別W正向相似度和相應的權重因子的乘積與反向 相似度和相應的權重因子的乘積作為正向相似用戶與反向相似用戶的權值;W正向和反向 相似用戶的標準值與對應權值的加權平均值作為目標用戶的預測評分偏量; 3-b. 4) W預測的目標用戶的評分偏量和評分均值之和作為目標用戶的預測評分。7. 根據權利要求2-6任一項所述的一種基于雙向關系的推薦方法,其特征在于:所述步 驟2)具體為:將目標用戶與其他用戶的正向相似度進行排名,取最大的K個用戶為目標用戶 的正向相似用戶群;將目標用戶與其他用戶的反向相似度進行排名,取最大的K個用戶為目 標用戶的反向相似用戶群。8. 根據權利要求2-6任一項所述的一種基于用戶雙向關系的推薦方法,其特征在于:所 述步驟4)具體為:經步驟3)后,進行評分排名,得到排名列表,從排名列表中為目標用戶推 薦預測評分最大的N個項目。9. 根據權利要求3或5所述的一種基于用戶雙向關系的推薦方法,其特征在于:所述懲 罰函數的原則是,當共同評分項小于給定的懲罰闊值時,正向相似度或反向相似度降低;否 則不變。
【文檔編號】G06Q50/00GK106096029SQ201610475961
【公開日】2016年11月9日
【申請日】2016年6月27日
【發明人】梁剛, 楊進, 周泓宇, 許春, 董向博, 楊文太, 謝凱, 陳良銀
【申請人】四川大學