百度作為國內最早發力大數據,人工智能領域的公司,很多大數據服務都走在國內的行業前列。今天詳細看了下百度提供的服務,覺得很多地方都值得我們學習借鑒。
百度大數據服務系統架構
平臺架構
RecSys提供了的服務包括:數據錄入,數據存儲系統,推薦策略離線計算,推薦索引,在線推薦。
對于用戶,需要提供以下數據:
- item相關信息,比如電影的meta信息。
- 用戶的行為日志,比如產品線的點展日志。
數據的提供和服務的使用都是通過Rest API,推薦策略生成,數據存儲管理對于用戶來說都是一個黑盒子,無需用戶干預。后臺使用Hbase來存儲和管理用戶提供的訓練數據,對于pb級別的數據,也只有Hbase這樣的分布式存儲解決方案才能滿足需求。
離線計算模塊提供了多種推薦算法的解決方案,每個算法的簡介,適用場景,優缺點,都在官網有著詳細介紹。
推薦算法介紹
用戶通過Rest API提交數據后,需要等待一定時間,整個系統會自動進行離線計算,生成推薦模型,也就是架構圖中的推薦索引系統。隨后用戶使用約定好的Rest API, 調用推薦服務。
平臺服務架構優缺點
優點:
- 操作簡單,整個平臺架構通過Rest API進行數據交換,服務調用,用戶無需關心復雜的算法實現, 不用去做性能調優,最大的簡化了項目開發人員的壓力。
- 所有數據,模型存儲在百度的分布式存儲平臺,用戶不用去關注數據存儲,負載均衡, 沒有服務器維護壓力。
- 對于百度來說,大量高質量的數據匯聚,存儲在自身云平臺,這些數據具備再次分析的價值。
- 平臺代碼,細節保密。由于現在流行的機器學習工具都使用Python, Python源碼可見,無法像C/C++這樣這樣的語言,把源代碼編譯成二進制文件,因此通過web services調用的方式,可以避免用戶直接接觸源碼。
缺點:
- 無法個性化定制,所有服務都被限定死了,無法根據實際需求更改。
- 如果后臺完全純自動化的進行模型訓練,沒有做特征工程,沒有模型調優,最終的準確率不會很高。
- 如果是敏感數據,不安全。
總體來說RecSys的推薦系統非常適合不具備人工智能開發能力,但對智能的推薦有著比較強烈需求的公司。其通用的架構模式,與傳統軟件服務模式的差別,也值得我們參考。
</br>
Reference
文中相關細節,截圖來自百度RecSys文檔。
http://recsys.baidu.com/recsys/doc?tpl=index&doc=SystemIntroduction&castk=LTE%3D#