基于时间加权的用户购买类目意愿计算

阅读数:467 2019 年 9 月 27 日 08:00

基于时间加权的用户购买类目意愿计算

一、背景

在 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

评论

发布