基于Hbase的用戶評分協同過濾推薦算法

基于Hbase的用戶評分協同過濾推薦算法

作者: 張保維 2012-1-3

一、 概述

本文為推薦引擎設計的基礎篇,介紹基于hbase 存儲方式用戶評分的方式進行推薦的主體算法及在分布式平臺環境下的實現。由于推薦算法分支眾多,我們先從簡單及實用的算法進行設計。其它更加復雜算法及實現將會在后面的相關設計中進行說明。

二、 相關知識

(一) Hadoop與MapReduce

Hadoop在本文中所起到的作用只是一個系統支撐作用,由于hbase基于Hadoop的事實,所以,hadoop是本文功能實現的一個必要條件。MapReduce是一個用于分布運算的編程模型,同時也是運行本文中核心功能的載體。

關于 hadoop 及 MapReduce知識參見 附錄。

(二) Hbase

HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。

同時Hbase對外提供了Thrift接口,可以在外部進行方便的訪問。可以提供實時在線的訪問功能。

由于Hbase 基于hadoop 產品族,所以Hbase具體天然的優勢,可以直接利用MapReduce的優勢。

基于如上原因,我們把用戶評分存儲于hbase , 在HBase中可以建立一個Row 為用戶編號, Column為產品編號,值為用戶評分的大表結構。同時,HBase為稀疏存儲,也可以節省存儲空間。

(三) 協同過濾

協同過濾是分析用戶興趣,在用戶群中找到指定用戶的相似(興趣)用戶,綜合這些相似用戶對某一信息的評價,形成系統對該指定用戶對此信息的喜好程度預測。

協同過濾是使用了集體智慧,不是傳統意義上的人工干預的,受限于人的情感因素,商業因素的推薦方式。

三、 功能需求

四、 設計

五、 實驗結果

六、 擴展功能

七、 參考

1. Hadoop : http://baike.baidu.com/view/908354.htm

2. MapReduce : http://zh.wikipedia.org/wiki/MapReduce

3. 奇藝升級推薦引擎提升轉化率:http://www.sootoo.com/content/221739.shtml

4. HBASE:http://www.searchtb.com/2011/01/understanding-hbase.html

5. 協同過濾:http://baike.baidu.com/view/981360.htm

6.

轉載于:https://www.cnblogs.com/zbw911/archive/2012/01/05/2313205.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275075.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275075.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275075.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

最全 JavaScript Array 方法 詳解

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。我們在日常開發中&#…

[譯] React Hooks: 沒有魔法,只是數組

[譯] React Hooks: 沒有魔法,只是數組 原文鏈接: medium.com/ryardley/r… 我是 React 新特性 Hooks 的粉絲。但是,在你使用 React Hooks的過程中,有一些看上去 很奇怪的限制 。在本文里,對于那些還在為了理解這些限制…

管理溝通中移情的應用_移情在設計中的重要性

管理溝通中移情的應用One of the most important aspects of any great design is the empathetic understanding of and connection to the user. If a design is ‘selfish’, as in when a product designed with the designer in mind and not the user, it will ultimatel…

網易前端進階特訓營,邀你免費入營!一舉解決面試晉升難題!

網易等大廠的前端崗位一直緊缺,特別是資深級。最近一位小哥面進網易,定級P4(資深),總包60W,給大家帶來真實面經要點分享。網易的要求有:1.對性能優化有較好理解,熟悉常用調試工具2.熟…

Feign的構建過程及自定義擴展功能

spring-cloud-openfeign-core-2.1.1.RELEASE.jar 中 HystrixFeign 的詳細構建過程: EnableFeignClients -> FeignClientsRegistrar 掃描 Feign注解的類 -> FeignClientFactoryBean通過Targeter生產FeignClient -> Targeter通過Feign.Builder構建Feign ->…

angelica類似_親愛的當歸(Angelica)是第一個讓我哭泣的VR體驗

angelica類似It was a night just like any other night. I finished work for the day and closed my laptop. I had dinner and after an hour, I put on my Oculus Quest headset in order to begin my VR workout.就像其他任何夜晚一樣, 這 是一個夜晚。 我完成…

面試官:請手寫一個帶取消功能的延遲函數,axios 取消功能的原理是什么

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。本文倉庫 https://githu…

關于base64編碼的原理及實現

我們的圖片大部分都是可以轉換成base64編碼的data:image。 這個在將canvas保存為img的時候尤其有用。雖然除ie外,大部分現代瀏覽器都已經支持原生的基于base64的encode和decode,例如btoa和atob。(將canvas畫布保存成img并強制改變…

Django web開發系列(五)模板

一 前言在上一節了解到視圖函數處理后,會將結果渲染到創建的html頁面,但html如何接收并顯示視圖函數返回的動態數據呢?最常用的做法就是使用模板(Template),本節將簡單介紹一下模板的作用和用法。 可以這樣簡單的理解模板的概念&a…

facebook 面試_如何為您的Facebook產品設計面試做準備

facebook 面試重點 (Top highlight)Last month, I joined Facebook to work on Instagram DMs and as a way to pay it forward, I 上個月,我加入了Facebook,從事Instagram DM的工作,作為一種支付方式,我 offered to help anyone…

8年了,開始寫點東西了

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。今天分享一位大佬的文章…

荒徑 弗羅斯特_弗羅斯特龐克,顛覆性城市建設者

荒徑 弗羅斯特Most gamers are familiar with Will Wright’s famous SimCity series. It created the city building genre and there have been many attempts over the years to ape it. But few developers have been bold enough to completely deconstruct the formula; …

2012年1月份第2周51Aspx源碼發布詳情

WP7手指畫圖應用源碼 2012-01-14 [VS2010] 游戲介紹:Windows Phone 7手指畫圖應用 – FingerPaint,您通過此游戲可以隨心畫一些感興趣的東西,陶冶情操。操作簡單,頁面簡潔。適合新手學習參考。 WP7 Car Bloke(交通工具開銷記錄)源…

Gitee 如何自動部署博客 Pages?推薦用這個GitHub Actions!

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。前段時間我把自己的博客…

Java io流學習總結(三)

轉載于:https://www.cnblogs.com/ll409546297/p/7197911.html java.io幾種讀寫文件的方式 一、Java把這些不同來源和目標的數據都統一抽象為數據流。 Java語言的輸入輸出功能是十分強大而靈活的。 在Java類庫中,IO部分的內容是很龐大的,因為它…

現在流行的畫原型圖工具_原型資源圖:8種流行原型工具的綜合指南

現在流行的畫原型圖工具Although tools are not the most important things to learn as a UX designer, inevitably you need to use it in order to achieve your more important goals, to solve user’s problems. This article covers today’s 8 popular UX prototyping …

持續5個月,200+筆記,3千多人參與,邀請你來學源碼~

注意:本文點擊文末閱讀原文可查看文中所有鏈接。我正在參加掘金年度人氣作者投票活動,大家有空可以加微信群幫忙投票,感謝大家!想起今天還沒發文,就開放下微信群二維碼,大家掃碼進群讀源碼和幫忙投票吧。群…

自己動手開發調試器 01

背景: 在做XXX編譯器檢證時經常需要區分是代碼端錯誤,還是編譯器端錯誤,因此對代碼進行調試是必不可少的。但是狗日的甲方并沒有提供對應的調試器XXXDB,而用GDB調試XXX生成的可執行程序很不穩定,經常出現異常,干脆…

02如何抓住重點,系統高效地學習數據結構與算法?

以下內容總結自極客時間王爭大佬的《數據結構與算法之美》課程,本文章僅供個人學習總結。 什么是數據結構?什么是算法? 從廣義上講,數據結構就是指一組數據的存儲結構。算法就是操作數據的一組方法。 類比圖書館的書籍,我們如果想找一本書可…

第2年,倒數第3天,1.5萬票,感動!

1源碼共讀大家好,我是若川。眾所周知。從8月份開始,我組織了源碼共讀活動,至今已經有5個月了,每周一期,進行到了第18期。每周堅持寫源碼解讀文章,每天堅持答疑解惑,幫助了很多人學會看源碼&…