推薦系統實踐小結 轉

以前對於推薦,一直都僅限於理論書籍,淺一點像《集體智慧編程》《推薦系統實踐》,複雜的像《數據挖掘》《機器學習》,固然也沒看太深刻。
當時對推薦系統的見解是,這是一個以算法爲核心的系統,一切價值體現都在算法模型上了。不過這段時間有幸參與到真實系統,稍有改觀。
下最近的一些想法吧,固然做爲一個系統開發人員,理論算法方面的理解可能有點偏頗。
 
1.業務永遠是第一位----------咱們的本質是銷售。
話說作推薦,和作營銷的本質區別是什麼?
還要說下銷售和市場的區別,我我的理解市場和營銷的區別在於市場是偏向於總體(如何訂價,產品面向人羣,廣告投放),
而營銷是偏向於個體(銷售人員怎麼賣)。因此推薦屬於銷售,產品規劃和設計纔是市場的事情。
 
寬泛的銷售,至關於在大街上發傳單。那麼精準推薦就是說給你一個性化的解決方案,vip的服務。
由於計算機的copy能力是低成本的,而大數據處理能力恰好能將這種vip服務低成本的擴散到網絡世界的每一個長尾客戶身上。
精準營銷的目的是提升成單率,而精準推薦藉助網絡的長尾理論,不只僅提升了成單率,也作大了盤子
 
繼續聊業務邏輯。既然是賣東西,那麼就從賣東西往下說,假設你是購物中心的一個小門店老闆。
點擊就是在廣場中流動的人羣,人潮涌動中,咱們不斷地吆喝着「快來看一看,買一買啊,走過路過不要錯過啊」,那麼你要注意什麼:
 
第一個,做爲一個老闆,你要知道你產品的面向人羣----------------用戶分析。
三大哲學問題,你是誰,你從哪裏來,又將要到哪裏去?
對應下來就是用戶畫像分析,來源統計分析,效果統計(其實這裏要包括崩失率,去向,轉化率等)。
 
第二個,做爲一個老闆,你要知道季節潮流,進貨渠道---------------熱度。
每個商品都是有其週期性的,而季節潮流對於小店可能相當重要。這裏就設計到行爲數據的統計(商品的瀏覽,曝光,點擊,購買)。
若是熟知各類排行榜的熱點,就清楚熱度是須要衰減的,這可能用到一些算法:
牛頓冷卻,貝葉斯平均,威爾遜區間。我也細講不了算法層面的東西。
 
第三個,做爲一個老闆,你要熟悉店裏的商品屬性,懂搭配--------- ---物品相關性
你要整理好商品詳細目錄。你要知道那一款上衣配那一款裙子比較合適。
涉及到相關性算法。怎麼計算相關性,能夠看皮爾遜係數,餘弦等。
至於計算的維度,就跟商品相關了,好比化妝品,那麼品牌的權重就須要調大。
 
第四個,做爲一個老闆,你要有一個老顧客電話本-------------------個性化
小店家是須要維護每個顧客的聯繫方式,長時間不來,你要電話問下,對應下來就是按期郵件營銷(EDM)。
若是你是大商家,那你只好分人羣了,否則成本太大。
 
第五個,做爲一個老闆,你要招攬新顧客計劃-----------------------社交化
雖然推薦自己就是個大的廣告形式。可是你只在門口賣吆喝確定是過期了,星巴克真功夫優衣庫這種傳統企業都開始微博微信營銷了。
做爲一個電商企業沒有理由不用這種形勢擴大本身的影響圈。
對應的就是基於SNS的推薦,固然隱私問題另論。
 
第六個,做爲一個老闆,你要知道店裏的情況,爲下步做參考------------數據閉環。
最重要的機率,沒有之一,數據要造成閉環。
任何數據若是不造成閉環,是難於往下發展的。造成閉環後,整個系統纔算完整搭建,固然若是到最後,這步能交給機器學習來實現,就完美了。
這裏涉及到,ctr,轉換率,成交金額。轉換率是電商的重要指標,這些行爲分析是提高將來銷售的關鍵。
 
2.數據是第二位。
信息熵的定義是對不肯定性的度量。強調的是不肯定性,若是你知道明天要下雨,那麼數據告訴你要下雨的信息熵就是0。
 
信息是有用的,可是數據不必定是有用的。從數據到信息的過程就是一個解碼的過程,而業務邏輯就是數據的編碼方式。
如今是大數據時代,天天弄個幾T,幾P數據存儲下來,意義有多大(說的是數據挖掘,用來容災備份的話另說),
若是告訴的都是咱們已知的事情,那麼就沒有意義。
 
每個公司最瞭解數據的確定是其CFO,底層的財務會計等,可是誰敢說本身比老闆清楚這個公司?
財務報表你們也能看,可是財務報表是不瞭解公司的終點,而是起點,是爲了更深刻了解公司的。
咱們常說領導的視野會更高一點,反過來的意思就是咱們懂數據,可是不懂業務,不懂商業,不懂管理。
業務,管理是皮,數據是毛,皮之不存,毛將焉附。
 
接下來講推薦系統的數據:
第一,用戶數據
這個是基礎數據,推薦系統存在以前就已經有了。
網站分析裏作的就是人羣細分,電商也是網站,這裏涉及到的維度其實都是現實世界的映射:
年齡,性別,地域,興趣,收入等等
 
第二,商品數據
這個也是基礎數據,推薦系統存在以前就已經有了。沒什麼好講的,就是品牌,價格等
 
第三,行爲數據
這個是串聯數據,將第一部分和第二部分關聯起來。
包括用戶和用戶之間關聯,商品和商品之間關聯。
 
其實這三個數據之前的商業社會裏都有,可是傳統時代靠的是人腦和記事本,容量有限。
而一個好的商家是將這些數據帶來的信息用到極致。
回想一下推薦系統經歷的幾個時代(能夠看我前面的《 集體智慧之概念介紹 》)
基於人口統計的推薦時代:這個時候靠的是歷史,地理知識來關聯人和人之間的信息,這裏提信息的是統計數據,以及幾千年來的歷史地理知識。
基於商品內容的推薦時代:這個時候靠的就是產品專家們的人工分類, 這裏提供信息熵的是專家們的專業知識。
協同過濾時代: 靠的是咱們每次點擊,帶來的隱含信息。點擊就是人和商品之間的關係, 點同一個商品就是人和人之間的關係。
 
一句話,咱們主要要找的信息就是用戶和用戶之間的關係,商品和商品之間的關係,用戶和商品之間的關係。
不管你用什麼方式,用什麼樣的數據,你最後要獲得的信息無非就這麼幾個維度。咱們就是圍繞這幾點去竭盡所能地挖掘信息,並利用好。


3.算法是第三位
某位google的工程師曾說過:簡單的算法+大量的數據  要遠好於(>>)   複雜的算法+少許的數據。
 
看業界這幾年,不管是豆瓣,亞馬遜,淘寶,都在提精準推薦,還有熱火的不能再熱火的大數據。
彷佛這個行業應該算是蓬勃發展了吧,但是細細看來,算法模型其實發展有限。你們掛在口邊的仍是協同過濾,社交化推薦。
 
這裏說下本身的一個教訓:
在實現系統的時候,由於有大量的計算和讀取操做,爲了節省一點cpu和內存,網絡開銷,就搞了個很複雜的算法,須要保存不少的中間數據結果。
實現文檔寫了幾頁,而後代碼寫了2000多行,實現後跑起來,性能上卻是沒有什麼問題的。
 
但仍是碰到一個問題,無法跟蹤數據。
作效果優化的時候,你是須要不停的從頭至尾看數據的,看究竟是哪一個環節出了問題。結果太多的中間結果,並且是小的錯誤會被累計放大,
人反被系統整崩潰了。最後就改成簡單實現方式(會很耗性能),可是作好數據的去噪後(不得不說這個環節至關重要),性能上也沒有問題了。
 
業界這麼多作算法的大牛,固然也是極其厲害的,不過越複雜就會要求特定的場景,這個對我等來講仍是沒有優化1,2來的迅速。
 
4.系統性能是第四位
系統同技術同樣,只是解決問題的工具,不以解決問題的牛逼技術都是耍流氓。
舉個例子,股票的程序化交易,相信不少作技術的人都能實現。可是若是沒有一個有效的買賣規則,越實時越高效,可能虧損的越慘。
 
這裏也是,若是你業務邏輯理不清,數據清洗不乾淨,樣本抽取的有問題,系統是幫不了你的。固然作好了前面三樣,性能就要考慮了。
第一點,無限大。 
這意味着無限細分, 也擴大了將整個市場盤子(長尾嘛)。
現亞馬遜CEO Jeff Bezos的夢想「若是我有100萬個用戶,我就爲他們作100萬個亞馬遜網站」。
越細分,理論上效果會越好。只是開發人員不能不考慮成本。
其實你考慮一下就會發現一個事情, 你想個性化,可是用戶卻想跟隨潮流,你無限細分的意義呢?
 
第二點,實時
作到了細分,你確定要考慮實時性,理論上也是越實時,效果越好。
做用有多大,這個看業務和用戶羣。
閾值是多少,這個也看業務和用戶羣。
可是想信不會有人把商品屬性這個也來實時實現的。也不會說咱們要求推薦數據的更新級別達到毫秒級。
你能夠有變態的系統,可是你不但願有變態的用戶吧? 總言之,系統老是根據你的用戶來定義的。btw,安全不屬於性能問題,推薦系統防惡意干擾不在性能討論範圍內。
相關文章
相關標籤/搜索