什么是內容興趣偏好標簽呢?
簡單來說就是分析用戶喜歡看的文章類型,得到用戶的興趣偏好,在這樣的基礎上,對用戶進行內容的個性化推薦和push推送,來有效促進app的活躍并拉長用戶生命周期。
這件事情簡單來說其實就是兩步走:
一是,給文章進行分類,也就是我們俗稱的給文章打標簽。
二是,給用戶打標簽,也就是用戶閱讀了哪些類型的文章,相應的就會獲取到自己的興趣偏好標簽。
那么在實際操作中真的如此簡單嗎?看似簡單的兩個環節,究竟是如何實現的呢?
一般情況下有三種方式獲取樣本:
一是人工對文章進行標注,優點是準確,缺點是效率低,對于算法要求大量樣本的要求,成本非常高。
而另一種方式則是通過一些開源網站提供的關鍵詞進行模型訓練,比如可以從搜狗詞庫獲取,優點是成本低,但缺點也很明顯,由于不同的分類體系對部分分類的理解不一致,導致分類并不夠準確,后期需要耗費大量的人力進行矯正。
第三種方式是和一些資訊類app進行合作,獲取他們的文章以及分類作為樣本,例如目前做的比較好的如今日頭條、uc等都是不錯的選擇。我們當時其實都嘗試了(一把辛酸淚)。
獲取樣本以后,就是算法模型的訓練及其檢驗了。算法模型的訓練原理,即通過對樣本文章進行分詞,抽取實體,建立特征工程,將每一個特征詞作為向量,擬合出一個函數,這樣,當有新的文章時,該文章通過分詞,并通過模型計算出結果。但模型并不是能夠有樣本一次性就能準確的,模型還需要進行測試和矯正。
通過了測試的模型也并不是一勞永逸的,仍然可能在后期出現一些分類不準確的問題,這可能是樣本造成的,也可能是算法模型造成的。這需要我們找出這些異常的文章及其分類,并矯正分類,再次作為訓練樣本投喂給模型,進行模型的矯正。一方面,我們可以對轉化率比較低的分類的文章進行人工抽檢,確定問題是否出在算法。另外,在這里,由于每一篇文章的標簽都被賦予了一個值,我們可以為這些值設置一個閾值,當最高值低于某個閾值,這些文章及其標簽將被召回,由人工進行標注和矯正,并在此投入樣本庫中。
文章標簽的計算,由于文章具有多種標簽的可能,并非一些二分類非此即彼的結果,因此我們采用的方式是,通過相似性算法,模型計算出文章的標簽,并賦值,值越高則說明和這類標簽越接近,并被打上相應標簽。
至此,文章打標簽的部分就已經完成了。
如何給用戶打標簽
給用戶打標簽的方式其實也可以包含兩種,統計類的打標簽及算法類的打標簽。
統計類相對簡單粗暴式的以用戶一段時間閱讀的文章類型作為用戶的興趣偏好。
而算法類則會增加更多的影響因素,包括文章閱讀的數量,閱讀的時間間隔,文章與當前熱點事件的關系、用戶屬性因素等等。
前者在算法資源不足同時運營需求量大的情況下可以先行,而后者可以在前者的基礎上切分一部分流量對算法模型進行驗證和調整,不斷優化。
但在用第一種方式進行時我們發現,用戶在一段時間內閱讀的文章類型并不是穩定的,大部分用戶會有一個或者幾個主要的興趣偏好,這些類型閱讀的文章篇數會更多,但同時,用戶也會或多或少的閱讀一些其他類型的文章,甚至有些用戶是看到哪里算哪里,什么都會看。
基于這樣的情況,我們需要對用戶的興趣偏好進行排名,即通過對用戶一段時間內每種文章類型閱讀的文章數進行排名,并取用戶top 10的標簽,清晰告訴運營用戶喜歡什么類型的文章,這些類型中,用戶喜歡類型的優先級是怎樣的,便于運營同學進行推送選擇。
因此,用戶的標簽也需要更加靈活,能夠讓運營同學基于事件發生時間及事件發生次數等權重進行靈活組合選擇用戶群。
由于目前push推送很大一部分是由人工進行的,從選擇文章,到選擇用戶,到文章和用戶的匹配,在正式進行推送前一般都會進行大批量的A/B test ,而資訊文章的類型非常多,僅一級標簽已經達到30+種,二級標簽從100到幾百不等,總體的標簽極有可能會有成千的標簽,單靠運營同學進行推送,是絕對無法完成的。
因此,在運營資源有限又無法實現自動化的的情況下一般運營同學會對標簽進行測試,并選擇其中覆蓋用戶量大且轉化率較高的標簽。但同時這樣的情況就會導致部分興趣偏好比較小眾的用戶被排除出推送的人群。
針對這樣的情況,我們取了用戶top 10的二級標簽及其對應的一級標簽作為用戶的一級和二級標簽。這樣,解決了用戶覆蓋量的問題,也可以讓運營人員集中精力對主體標簽及人群進行推送。
上一篇:APP開發需要經歷哪些階段