[發明專利]基于hive的協同過濾推薦方法有效
| 申請號: | 201910830907.3 | 申請日: | 2019-09-03 |
| 公開(公告)號: | CN110532330B | 公開(公告)日: | 2022-06-03 |
| 發明(設計)人: | 劉洋;孫永強;韓挺;唐潮 | 申請(專利權)人: | 四川長虹電器股份有限公司 |
| 主分類號: | G06F16/28 | 分類號: | G06F16/28;G06F16/2458;G06F16/435 |
| 代理公司: | 四川省成都市天策商標專利事務所(有限合伙) 51213 | 代理人: | 王荔 |
| 地址: | 621000 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 hive 協同 過濾 推薦 方法 | ||
1.基于hive的協同過濾推薦方法,其特征在于,包括以下步驟:
a.數據倉庫的選擇及源數據的存儲;把kafka采集到的數據經過過濾清洗后的用戶行為數據儲存到hive,以方便之后的計算;
b.用戶-影片-評分的計算及結果儲存;
超大矩陣的分解儲存計算:儲存及使用到M*N的用戶-影片評分表、N*N的影片-影片相似度表兩個矩陣,在實際生產環境中,列數量N的取值較大,考慮把大矩陣拆分成MAC,CID,SCORE這樣的形式,經過拆分后,表的列數變成固定的3列;
結合實際用戶觀影行為數據,求解出符合儲存要求的用戶-影片評分表,包括以下三個小步驟:
(1)清洗過濾相關數據;
(2)根據相應數據計算觀影時長并過濾異常數據;
(3)根據公式計算用戶-影片-評分;其中timei表示單次觀影時長,timevid表示一集時長,如果是電影,就代表該電影時長,episodes表示集數,電影集數為1;
c.影片-影片-相似度的計算及結果儲存;根據用戶-影片評分表及大矩陣分解方案,求解影片-影片相似度表,對于相似度計算公式,考慮到hive計算的復雜度,對傳統的余弦相似度計算公式作了相應的改進,如下所示:
(1)(2)根據(1)中的公式使用hive中的group by、sum算子具體實現,求得最終影片-影片相似度;
其中的scorei_mack與scorej_mack表示同一mac對不同的兩部影片cidi,cidj的評分,而scorei_mack*scorej_mack用以求取變形余弦相似度的分子部分,scorei_mack2,scorej_mack2用以求取分母部分;該公式與傳統余弦相似度不同之處在于計算分母的時候,取的數據是有共同mac評分的數據,這樣設計能夠減輕hive里面的計算復雜度;
對于計算結果影片-影片-相似度的儲存,與用戶-影片-評分儲存需求類似,需要儲存N*N的用戶-影片評分矩陣,其中N為影片的數量,在實際生產環境中,列數量N的取值較大,現有的數據庫難以直接儲存運算列值巨大的表,結合用戶-影片-評分儲存方案,最終考慮把大矩陣拆分成CIDi,CIDj,SIMILARITY這樣的形式,經過拆分后,表的列數變成固定的3列,符合生產要求;
d.用戶-影片-推薦度數據的計算及結果儲存;
在計算用戶-影片-推薦度數據的時候,需要使用到上述中的用戶-影片-評分表與影片-影片-相似度表;由于用戶評分過的影片、影片的相似影片的數量都可能很大,因此不能進行全量計算;經過分析,用戶為觀影過的最感興趣的影片應該具有和用戶評分高的影片相似度較大的特征,基于此邏輯,那么尋找用戶評分最高的K部電影并記錄對每部電影的評分score_i,再分別找出與這K部電影的最相似的N部電影作為候選電影,并記錄相似度simirity_i_j,最后使用score_i*simirity_i_j計算用戶對影片總的感興趣程度,最后的結果依然采用多行3列的表進行儲存,每列分別儲存MAC,REC_CID,REC_SOCRE,對于某個用戶來說,按照用戶-影片-推薦度從高到低對影片id進行排列。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川長虹電器股份有限公司,未經四川長虹電器股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910830907.3/1.html,轉載請聲明來源鉆瓜專利網。





