1. 用戶行為日志
采集: 怎么采集? 客戶端和web服務之間加個代理?
日志由端來上報確定格式的數據來實現采集??梢哉J為有一個用于日志接收的Http接口,當用戶行為發生時,端上報相應的日志。
存儲: 一堆原始日志存在文件系統,或者匯總成會話日志? 誰想用就拿去用,比如hadoop就扔到hdfs上,是這樣嗎?
用戶行為日志目前沒有會話的概念。
日志最終都會存儲在hdfs上。
日志的流向:端-->Log服務-->分布式消息隊列–>hdfs/storm-->下游。
分析: 收集后批量分析? 邊收集邊分析? 同一份內容被利用多次?
分析的方式因算法、模型、業務的不同而不同??梢允桥康模x線算法),實時的(用戶模型)。 日志可以被多次處理。
2. 用戶模型、用戶畫像、用戶興趣模型是同義詞嗎? 就是用統一的結構描述用戶的基本信息、行為、興趣什么的...
是同義詞。是一個結構化的數據,格式只要能滿足需求即可。
3. ab test的設計不需要依賴其他層嗎?
abtest是一個功能性的描述,它設計的實時需要依賴行為日志的采集、分析
4. ab test根據什么進行比較? 點擊率?
主要通過點擊率來比較
5. 如何判斷本次推薦是準確的? 用戶進行評分?
如果推薦內容能夠讓用戶產生主動行為:如點擊、購買等,則認為是準確的,一般以點擊率、轉化率來評估
6. mr、bolt中的就是算法實現嗎?
可以這么認為。mr是大規模數據的統計分析方法, bolt只是整個算法的一個環節。他們都是實現算法、模型的手段
7. 所謂訓練用戶興趣模型指的是把用戶行為數據扔給算法不斷計算嗎? 然后根據計算結果重新生成商品列表?
構建用戶模型本身可以看作是一個算法。 ?用戶模型的主要目的是用來準確刻畫用戶的,包含社會屬性和興趣等。 計算商品列表可以與用戶模型相關、也可以不相關(如cf就不需要用戶模型)
8. 比如像user cf這種算法是不是每次計算的時候要從日志里找幾個和我類似口味的用戶,然后把他們喜歡的東西找出來生成個列表?
是的,在線cf的儲存、計算代價較高,一般是離線實現的?;蛘哂镁垲愃惴ǜ靡稽c
9. 關于推薦系統的各種評測指標,準確率、召回率、覆蓋率、流行度...我們要怎么評測
準確率一般用點擊率或者轉化率來表示,即點擊量 / 曝光量
召回率的話在推薦系統中一般用的較少。
覆蓋率可以做為推薦系統的一個優化方向來做,就是 distinct(每天推薦的商品) / 商品總量
至于流行度什么的根據業務,是一些逼人離職的指標,一般是
10.項目開發過程中算法和具體業務結合的結合方式?
我的業務就是個性化推薦,沒有其它的。所以算法就是來提供業務需要的數據的。 你可以理解為推薦系統有框架和算法組成。算法是數據的生產方??蚣軄碡撠熃M合算法,組裝數據
11.模型訓練,具體在代碼層面的實現邏輯
這個問題比較范,對于用戶/商品模型來說:模型是一個Json對象, 訓練的過程就是按一定規則填充相應的field,涉及機器學習算法較少。
對于ranking/ model來說,主要的工作是清洗日志、抽樣、訓練、驗證的過程, 模型本身會使用開源算法,不需要實現。
12.簇心簽名
簇心簽名用于商品去重和聚類。 是聚類算法的產物。
13.圖片簽名如何做到去重?
為圖片生成hash指紋 如感知哈希算法
14.代理rc_proxy的功能?
分頁緩存、結果適配等
推薦系統架構 (工程,已完成)
用戶畫像 (工程算法,已完成)
商品畫像 (工程算法, 已完成)
打點日志 ?(規范, 已完成)
rpc框架grpc-java(工程,已完成)
流式計算框架strom(工程算法, 已完成)
storm.pptstorm事務詳解(transactionTopology).doc
大數據處理平臺hadoop(算法, 已完成)
大數據處理平臺spark(算法, 已完成)
協同過濾:collaborative filtering
關聯規則挖掘:associate rule mining
聚類算法: kmeans, ?mimhash, ?lda
分類算法:support vector mechine, logistic regression
開發環境
bj05-ovc-recom01.dev.gomeplus.com 10.69.261.47
bj05-ovc-recom02.dev.gomeplus.com 10.69.241.48
bj05-ovc-recom03.dev.gomeplus.com 10.69.251.49
bj05-ovc-recom04.dev.gomeplus.com 10.69.221.50
bj05-ovc-recom05.dev.gomeplus.com 10.69.244.51
bj05-ovc-recom06.dev.gomeplus.com 10.69.291.52