內容推送與算法研究


目前我們App推送的內容, 分為兩大類, 一個是新聞, 一個是廣告.

新聞, 我們的采集能力是每天大概3-5篇, 未來可以調整為10-20篇.

廣告一次可以展示3-5條, 要更多也行, 最多8條吧.

廣告展示在新聞的最上面, 用banner+滾動形式, 新聞是下拉刷新的形式, 按照時間排序(這一點很重要, 后面會說明).

分析

廣告:
如果是我們自己的所謂運營的app, 比如陪駕小秘, 廣告來源如果有, 可能是一下幾大類:
1. 汽車后市場app, 比如e保養, 途虎.
2. 汽車4S店
3. 車廠
4. 電商, 例如京東

這並不存在廣告的推送目標的問題, 自然是有多少, 推多少, 不存在推送給A用戶, 而選擇性的不推送給B客戶.

當然, 如果是大用戶量或者大流量的app, 廣告推送是有很多學問的, 舉個例子, A用戶是一輛QQ, 你推送路虎的廣告, 就沒有什么必要, 具體的, 消費者已購買車型, 跟廣告主要推的車型之間的聯系, 這里面有很多要研究的東西, 是廣告公司的人研究的課題, 舉例說明就是, 如果客戶買了一個價值在10萬元左右的車, 而廣告主A, 要推的車型是15萬, 廣告主B要推的車型是20萬, 廣告主C要推的車型是50萬, 那應該將誰優先推薦給這個app用戶呢?相信廣告業肯定有對應的數據來說明這個數值, 我們不得而知, 相信真有一天我們要研究這個時候, 也是廣告公司的人幫我們提供此類數據, 如果我們現在對別人說"我相信, 20萬的車是10萬元車主夢寐以求的!" , 其他人一定會問, 你的理論依據是什么? 請拿數據或者調研結果說話.

另一個廣告是我們幫客戶做的app, 比如紐曼音樂盒, 它的廣告更加簡單, 就是紐曼的其他產品的廣告, 更加不需要做用戶的區分.

新聞:
新聞是各app共享的, 並不存在各app之間的區別.
理想狀態下, 如果我們是一個專門做內容的新聞類app, 我們需要針對用戶過往的行為推送不同的新聞, 有點兒類似歌曲播放類或者電商類app所做的那樣, 算法的基本原理如下, 沒興趣可以跳過, 只看結論部分:
甲用戶點了A新聞, 進去看了5秒, 又點了B新聞, 進去點了個贊, 又跳過了C新聞,
乙用戶點了A新聞, 進去看了20秒, 看了B,點了個贊, 進去C新聞, 很快又滑動, 跳出來.
丙用戶點了A新聞, like了一下, 然后跳過B新聞, 然后進去C新聞, 看了十分鍾.
我們可以將這些用戶對這些新聞的喜愛程度的行為, 進行一個線性的評分,  如果點了贊, 就是5分, 如果跳過, 就是0分, 如果看完, 就是4分, 如果看一半退出, 就是1分,那么我們可以得到一個表:
用戶/新聞     新聞A   新聞B   新聞C
用戶甲         1           5           0
用戶乙         2           5           1
用戶丙         5           0           3

有了這些行為的記錄, 我們可以解決兩種問題:
1. 可以計算出用戶甲乙丙之間的相似度,  打個比方, 如果甲跟乙的口味一致度很高, 那么將來甲如果先看了一個新聞D, 就可以將這個新聞D推薦給乙.
2. 如果出現一個新用戶丁, 他贊了一個新聞A, 那么, 新聞B跟C, 哪個應該優先推薦他呢?

解決第一個問題的方法, 是個數學方法, 將新聞ABC想象成xyz軸, 將用戶ABC的取向定為一個3維空間的3個點, 這樣跟坐標原點(0,0,0)之間, 形成了甲乙丙3個向量, 這3個向量之間的夾角的余弦值就是形容這兩個用戶的趣味相似度的指標, 簡單來說, 趣味越相似的人, 這個角度越小, 余弦值越接近, 比如0度角, 余弦值為1, 180度角, 余弦值為-1, 余弦的算法很簡單, 夾角的余弦=向量點積/向量長度的叉積=(x1*x2+y1*y2+z1*z2)/(根號(x1*x1+y1*y1+z1*z1))*(根號(x2*x2+y2*y2+z2*z2)), 那么甲跟乙之間的相似度為0.42 甲與丙之間的相似度為0.16, 那么甲乙之間相似度為更高, 一旦甲將來看了一個新聞, 就可以先推送給乙.

 

解決第二個問題的方法更簡單粗暴, 如果用戶丁並沒有看過新聞BC, 僅僅看了新聞A並點了贊, 那推薦B還是C呢?

計算方法是, 將新聞ABC的喜歡程度做一個減法, 再平均

用戶/新聞     新聞A   新聞B   新聞C  新聞A-新聞B  新聞A-新聞C
用戶甲         1           5           0       -4                 1
用戶乙         2           5           1       -3                 1
用戶丙         5           0           3        5                 2      

平均                                              -2                 4   

用戶丁         5

那么拿用戶丁對新聞A的喜好度5減去B的平均喜好度-2等於7, 減去新聞C的平均喜好度4等於1, 即預計丁對新聞B的喜好度比對C的要高, 所以推薦新聞B

其實這兩種算法都被充分的變化之后, 運用在各類音樂, 視頻, 文字等等內容提供類的app中了, 只是各自加入了其他不同的算法, 根子就是以上兩種.

結論

要實現精准的基於用戶過往行為而選擇推送內容這一目標, 大量的用戶行為積累跟大量的待選擇的內容缺一不可,

第一,沒有大量的用戶行為, 你壓根就不知道各個用戶對過往新聞/內容的喜愛程度, 即便我們現在花大量人力把用戶行為記錄跟上傳做到app層面去, 后台也只會產生大量對於我們沒有實際用處的數據, 增加服務器的負擔.

第二, 你推送的內容一天就那么幾條, 談不上給用戶展示哪些, 不展示哪些, 即便費勁的搞出一套算法, 精准的推送了一條新聞給一個德系車主, 說日系車皮薄, so? 那其他新聞呢? 不推送了?還是說也推送, 但是放后面? 那我們費了大量人力, 就為了給新聞排個序?

我們目前能做的事兒:
我們能做的事兒很多, 但是目前, 內容相關的, 我覺得也就是這些:

  1. 建立一個數據表, 將車型與價格掛鈎, 並用簡單的方法能將所有注冊用戶的車型導出來, 到excel里面進行分析.

  2. 將不同的app的廣告分開, 避免大家使用同一個廣告推送的接口

  3. 考慮接入第三方的贊助, 贈送對應的洗車卷, 保養卷, 來增加用戶粘性.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM