基於時間加權的用戶購買類目意願計算

一、背景

在 DMP 的人羣畫像或者商品畫像等的應用中,有一類常見的打分需求:旨在基於一些 transactions,爲兩種關係打上一個歸一化的分數。比如基於一個用戶的購買商品行爲對該用戶購買類目意願打分,該文章討論如何在考慮時間因素的情況下給用戶打分。

二、要求

  • transaction 發生的時間越近,其所佔的比重越大,且減小的速度越來越慢。
  • 所有分數都需要正則化到 0-100 區間。

三、數據形式

輸入的數據(表示某人某天買了某個類目多少單):用戶 id、日期、類目 id、訂單數

最終產出數據:用戶 id 對每個類目的購買意願分

四、實現方式

1) 要求 transaction 發生時間和現在的距離越小,這條記錄越大,就像一個熱門事件,會被人慢慢遺忘,且後續遺忘的速度越來越慢。

基於這個需求,很容易讓人想到基於熱力學的牛頓冷卻定律:物體的冷卻速度,與當前溫度與室溫之間的溫差成正比。

換成數學語言表達:

其中H爲室溫,初始時刻的溫度爲:

其中α>0爲與物體有關的常數,爲負數表示當物體溫度高於室溫的時候,物體溫度會下降,但當物體溫度低於室溫的時候會上升。

對於上個公式,兩邊取積分:

eg: 人體在死亡後,溫度調節功能隨即消失,由此正常溫度(假設37)與室溫比較,利用牛頓冷卻定律可以獲得死亡時間。

假設某冬天早上,接到報警,街頭髮現流浪漢屍體,6:30AM測量其體溫爲18度,到了7:30AM,其體溫已經下降爲16度。

預備知識完了,現在我們回到業務:假設transaction發生當天的熱度爲100度
而180天之前的transaction我們假設降爲1度,又假設室溫爲0度,可以求出α:

2) 對分數(上面的sum_score)做歸一化。

假設對於sum_score,有最大值和最小值,如果差距過於大,會先對其做對數處理:

圖像爲:

該函數以原點爲中心,將實數集映射到值(0,1)且兩邊都是開區間。我們希望通過平移和拉伸,對於上面的 [ -15,2 ] 的區間映射做映射:

符合要求,然後 0-1 的分數再乘以 100,將其轉成 0-100 的歸一分數。

本文轉載自公衆號有贊coder(ID:youzan_coder)

原文鏈接

https://mp.weixin.qq.com/s?__biz=MzAxOTY5MDMxNA==&mid=2455760033&idx=1&sn=cda32ddd58fea2a18e2d4ec9cb88f86b&chksm=8c686a84bb1fe39246da325ff19d7fdb66c947ee2ec061daf86e1f203d3e15f09eb3396e16f1&scene=27#wechat_redirect

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章