
非常多競品app的文章分類,發現基本上趨于一致,但也有一些細節上的差異,更多的問題,在于資訊文章的分類很難窮盡,我們參考了市面上已有的分類,并結合一些資料制定了一整套內容興趣偏好體系,在指定分類時,基本達到了相互獨立完全窮盡。
給用戶打標簽的方式其實也可以包含兩種,統計類的打標簽及算法類的打標簽。統計類相對簡單粗暴式的以用戶一段時間閱讀的文章類型作為用戶的興趣偏好。而算法類則會增加更多的影響因素,包括文章閱讀的數量,閱讀的時間間隔,文章與當前熱點事件的關系、用戶屬性因素等等。
前者在算法資源不足同時運營需求量大的情況下可以先行,而后者可以在前者的基礎上切分一部分流量對算法模型進行驗證和調整,不斷優化。
但在用第一種方式進行時我們發現,用戶在一段時間內閱讀的文章類型并不是穩定的,大部分用戶會有一個或者幾個主要的興趣偏好,這些類型閱讀的文章篇數會更多,但同時,用戶也會或多或少的閱讀一些其他類型的文章,甚至有些用戶是看到哪里算哪里,什么都會看。
基于這樣的情況,我們需要對用戶的興趣偏好進行排名,即通過對用戶一段時間內每種文章類型閱讀的文章數進行排名,并取用戶top 10的標簽,清晰告訴運營用戶喜歡什么類型的文章,這些類型中,用戶喜歡類型的優先級是怎樣的,便于運營同學進行推送選擇。
因此,用戶的標簽也需要更加靈活,能夠讓運營同學基于事件發生時間及事件發生次數等權重進行靈活組合選擇用戶群。由于目前push推送很大一部分是由人工進行的,從選擇文章,到選擇用戶,到文章和用戶的匹配,在正式進行推送前一般都會進行大批量的A/B test ,而資訊文章的類型非常多,僅一級標簽已經達到30+種,二級標簽從100到幾百不等,總體的標簽極有可能會有成千的標簽,單靠運營同學進行推送,是絕對無法完成的。
因此,在運營資源有限又無法實現自動化的的情況下一般運營同學會對標簽進行測試,并選擇其中覆蓋用戶量大且轉化率較高的標簽。但同時這樣的情況就會導致部分興趣偏好比較小眾的用戶被排除出推送的人群。
針對這樣的情況,我們取了用戶top 10的二級標簽及其對應的一級標簽作為用戶的一級和二級標簽。這樣,解決了用戶覆蓋量的問題,也可以讓運營人員集中精力對主體標簽及人群進行推送。
但同時,另一個問題又出現了,選擇用戶一段時間內的行為,那么這個一段時間究竟是多長會更加合適,使得既達到能充分反應用戶興趣,同時又覆蓋到更多的人群(每天都會有流失的用戶,因此時間線越長覆蓋用戶量越大,時間線越短覆蓋用戶量越少)
我們發現,用戶長期的興趣偏好趨于某種程度的穩定,但短期的興趣偏好卻又反應了用戶短期內跟隨熱點的行為。因此從這個層面來看,短期可能更能滿足用戶的需求,但短期覆蓋用戶量小。在這里,始終有覆蓋量和轉化率之間永恒的矛盾。
我們的方式是,對用戶根據瀏覽時間進行分段。賦予用戶長期興趣偏好和短期興趣偏好,并優先短期興趣偏好,從長期興趣偏好中則將短期興趣用戶進行排除,進行不同的推送。而對于流失用戶,極有可能在最近3個月(資訊當時定義流失用戶時間為3個月)沒有任何訪問記錄,針對于這樣的用戶,我們取用戶最后一次有記錄的標簽作為用戶標簽,并進行流失挽回。
至此,所有的用戶也都有了屬于自己的標簽,而運營同學也可以根據用戶的活躍時間以及閱讀的頻率對不同的用戶進行不同的文章推送,真正的實現千人千面。
而第二種方式,是通過算法直接為用戶打上標簽,除了時間和閱讀頻次,在算法模型中還可以增加更多的特征緯度,比如用戶閱讀文章距離現在的時間、閱讀文章的時長、評論、點贊等等,同時,還可以針對于熱點文章、熱點事件,降低文章的權重。