產品策略算法:參數的調整
產品策略在實現層,最終是以算法公式的形式輸出的。
超級APP功能越來越全,非超級APP的DAU都在下降,當失去增長紅利之后,精細化迭代和精細化運營將成為必然選擇。產品的工作的重點也需要從前端和交互的修改,轉移到策略的制定。而產品策略在實現層,最終是以算法公式的形式輸出的。
一個成熟的策略系統,會涉及多種重要的因素。如何保證這些策略公式在復雜的運算中發揮自己應有的作用,如何保證不同的數值能在同一緯度計算,這就涉及很多參數調整的策略技巧。
1. 調整參數的目的
首先在調整參數的時候,前提是明確調整參數的目的。針對具體的目的,使用對應的工具,然后才能達成具體的目的。對調整參數的目的簡單做了一些總結,具體如下:
- 歸一化處理
- 調整因素的影響力
- 信息論處理:熱門降權和時間衰減降權
- 調整變化曲線
- 設定變化界限
2. 歸一化處理
歸一化處理,通過處理讓不同因素在一個范圍內進行比較。舉個例子,如果要比較專欄的影響力,需要綜合考慮閱讀量、點贊量、發表文章量這三個因素,直接相加顯然是不可行,因為閱讀量數量是點贊數的至少10倍,而點贊數也是發表文章數的幾十倍。要讓不同因素在一個變化范圍內,這個時候就需要對進行歸一化處理。
最簡單粗暴的歸一化方式,就是直接除以數據中的最大值,那么所有值都在0~1之間,并保留原有的變化性質。即:
當然這樣的處理方法也會有問題,比如受到極值影響比較大。而且如果大部分分值比極值低很大的數量級,則低分值將沒有區分度,以閱讀量為例,如果最大閱讀量為十萬+,而大部分專欄文章閱讀量集中在500左右。這樣直接除以極大值顯然是不明智的。這個時候最好在處理前對數值進行調整。在之前的文章中提到的對數處理是個比較好用的方法.
這樣既保證了所有的數值在0~1之間,同時極值對最終分值的決定性影響也沒那么大。
3. 調整因素的影響力
調整影響力的比較通用的辦法有兩種,加數值,乘以數值。
加數值能解決冷啟動遇到的新內容權重過低的問題,比如,如果知乎答案完全按照贊同排序,則新發布的知乎答案,一開始在下面,不利于被更多人看見,如果新發布的內容自帶20個贊參與排序,則能解決這一問題。
乘以數值能解決數值重要性的問題,如果希望某一因素在總排序中占據更重要的位置,則可以用乘法處理,比如,還是知乎內容排序的例子,如果完全按照贊同排序,要提高文章的排序權重,可以直接乘以某個系數。
4. 信息論處理:熱門降權、時間衰減降權、置信度提權
一個信息出現概率越小,信息量越大,如果一個信息越常見,包含的信息越小。這個在之前文章中提到的一個基礎觀點。在實際的策略公式中,從信息論的角度去考慮就能快速的理解策略,讓最終結果更加符合預期。
熱門降權以經典的圖書推薦為例進行介紹。在圖書推薦中買了的人還買了的策略中,有一個著名的哈利波特問題,因為哈利波特銷量過高,幾乎所有的圖書都和它有關系。怎么處理呢?一個辦法是用銷量做流行度處理,降低流行度特別高的商品在排序中的得分。
時間衰減降權,顧名思義,讓過去的信息權重更低,最近的信息權重更高。行為具有連續性,最新的行為包含了更大的信息量。在處理的時候也可以使用上面的數學形式,讓更遠的時間分數衰減更大。
置信度提權,是基于數據量越大信息越靠譜,在處理平均值,打分等的參數時候有比較好的應用。比如,在計算一個電影的排序的時候,在考慮多個因素中包含了電影觀眾打分,這兒時候應該是打分的人越多,電影打分的權重越高。
5.調整變化的曲線
一般而言未經加工的數值在策略中很難直接應用,比如:知乎點贊/閱讀的比率。好的文章高一些,差的文章低一些。變化范圍特別小。希望整體數值變化范圍不變的情況下,怎么加大區分度?這個時候可以用一些曲線的性質。開方是個例子,0.25變為0.5,0.01變為0.1,而1處理后還是1。
同樣的如果分值都集中在很高的情況下,為了加大區分度,也可以用開方的逆運算。0.8處理后變為0.64,0.5處理后變為0.25,1處理后還是1。
6. 設定變化的界限
防止一些極值產生對于計算的影響,設定變化界限也是常用的方法。比較暴力的做法是設定最大值,比如:當在閱讀量計算中,閱讀量數值大于10萬,只取十萬,防止大值的影響。
還有一些比較柔性的做法,比如用有界函數進行處理:
或者直接用之前文章中提到的對數也是不錯的做法,會讓大值影響減少。
7. 總結
本章講的東西是一些通用的數值處理技巧,可能在脫離具體情形下,不是那么好理解,也比較枯燥。下一章主要會討論一些關于公式和模型的思考方法。歡迎大家關注專欄,并收看下期。
本文由 @潘一鳴 原創發布于人人都是產品經理。未經許可,禁止轉載。
一鳴老師的文章每次看了都收獲良多。
棒棒噠
6. 設定變化的界限
中 第一個函數看不懂,求解釋
厲害,看完還是需要消化 ??