写点什么

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

  • 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:001363

评论

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

2021MWC上海召开丨5G与千行百业“和合共生”

云计算

Windows下JMeter分布式压测环境搭建

行者AI

Jmeter

浅谈Python中遇到extend和append,该怎么区别使用

莫陌默

Python 列表 函数

程序员成长第十五篇:编码的注意事项

石云升

程序员 28天写作 2月春节不断更

几个小实践带你快速上手MindSpore

华为云开发者联盟

华为 AI mindspore 智慧终端 端边云

以AI之名 | 给千万级合同管理安上“AI”,华为商务经理工作量大解放!

华为云开发者联盟

人工智能 华为 合同 商务 合同管理

CPU高速缓存与极性代码设计

华为云开发者联盟

缓存 数据 cpu 存储

我与声网Agora

june

基于matlab的控制系统与仿真3-根轨迹、bode图、Nyquist图

AXYZdong

matlab 2月春节不断更

cobra-强大的CLI应用程序库

happlyfox

GitHub cli 28天写作 2月春节不断更 Go 语言

带你快速了解Flutter的发展和应用

anyRTC开发者

flutter 音视频 WebRTC 跨平台 sdk

Elasticsearch入门,这一篇就够了

知南茶温暖

kafka consumer group

Eric

2019年度CMMI V2.0性能报告

IPD产品研发管理

产品 项目管理 性能 质量 CMMI

效率工具分享-Quicker

十天、

效率 效率工具 工具 工具软件

windows10+python3.8.0(anaconda)+MeCab安装总结

lauqasim

Python Mecab 日文分词

Spark Shuffle 内部机制(三)

hanke

大数据 spark 开源 数据

新病毒兼容M1芯片,已经感染3万台Mac

Geek_b0cff7

华为云PB级数据库GaussDB(for Redis)解析第二期:Redis消息队列Stream的应用探讨

华为云开发者联盟

数据库

华云·云场景应用详解|安超DCM给数据中心“做主”

华云数据

设计模式之代理模式

Geek_7cf491

Java 设计模式 代理模式

容器 & 服务:Docker应用的Jenkins构建

程序员架构进阶

Docker 容器 七日更 28天写作 2月春节不断更

BFF (Backend for frontend)避坑指南

码猿外

架构 微服务 BFF

c语言简介

Geek_f510ff

c C语言

Mybatis association关联查询

フェイト ゼロ

可能是Java Stream的最佳实践(一)

ES_her0

28天写作

日记 2021年2月24日(周三)

Changing Lin

2月春节不断更

Python入门-位运算

123568

Python 入门 位运算

数据驱动业务增长的底层逻辑2.0

小飞象@木木自由

产品 数据分析 运营 业务增长

修改OpenCV一行代码,提升14%图像匹配效果

Smile

机器学习 OpenCV Python Turtle 图像处理

python与c++区别之print

沈阳

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