写点什么

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

  • 2019-09-27
  • 本文字数:928 字

    阅读完需:约 3 分钟

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

一、背景

在 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


2019-09-27 08:001473

评论

发布
暂无评论
发现更多内容

前端面试中小型公司都考些什么

loveX001

JavaScript

React源码分析8-状态更新的优先级机制

goClient1992

React

Java中的递归详解

共饮一杯无

Java 递归 11月月更

鸿蒙开发实例 | 分布式涂鸦

TiAmo

华为 鸿蒙 云开发 11月月更

如何做好线上服务质量保障?

老张

软件测试 质量保障

计算机网络:随机访问介质访问控制之ALOHA协议

timerring

计算机网络 11月月更 ALOHA

从React源码分析看useEffect

goClient1992

React

2022-11-07:给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,其中每个节点 至多 有一条出边。 图用一个大小为 n 下标从 0 开始的数组 edges 表示, 节点 i 到

福大大架构师每日一题

算法 rust 福大大

随机森林-机器学习中调参的基本思想

烧灯续昼2002

Python 机器学习 算法 随机森林 11月月更

一道React面试题把我整懵了

beifeng1996

React

极客时间运维进阶训练营第一周作业

LiaoWD

dokcer

Java中的泛型详解

共饮一杯无

Java 泛型 11月月更

算法题学习---链表中的节点每k个一组

桑榆

算法题 11月月更

【炫丽】从0开始做一个WPF+Blazor对话小程序

沙漠尽头的狼

docker-compose下的java应用启动顺序两部曲之二:实战

程序员欣宸

Docker Docker-compose 11月月更

从输入URL到渲染的完整过程

loveX001

JavaScript

前端打工人的面试总结

loveX001

JavaScript

Cox 比例风险回归模型

heart_6662

11月月更 cox 生存分析 生物信息学

发力新市民圈层,银行系消费金融这半年都有哪些行动?

易观分析

金融 银行

线上 hive on spark 作业执行超时问题排查案例分享

明哥的IT随笔

hadoop spark hive

3分钟快速掌握Go语言正/反向代理的姿势

有态度的马甲

一天梳理完React所有面试考察知识点

beifeng1996

React

从异步讲起,『函数』和『时间』该作何关系?

掘金安东尼

前端 11月月更

前端工程师的20道react面试题自检

beifeng1996

React

你需要的react面试高频考察点总结

beifeng1996

React

React源码分析8-状态更新的优先级机制

goClient1992

React

Java中的Iterator迭代器详解

共饮一杯无

Java 迭代器 11月月更

数据湖(二十):Flink兼容Iceberg目前不足和Iceberg与Hudi对比

Lansonli

数据湖 11月月更

从输入URL到渲染的过程中到底发生了什么?

loveX001

JavaScript

深入理解Metrics(一):Gauges

冰心的小屋

Java metrics Guages

有赞算SaaS平台吗?

产品海豚湾

产品经理 SaaS 产品运营 B端产品 11月月更

基于时间加权的用户购买类目意愿计算_文化 & 方法_Jason_InfoQ精选文章