写点什么

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

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

评论

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

Java: 压缩PDF文档

Geek_249eec

Java PDF 压缩

【译】日志:每个软件工程师都应该了解实时数据的统一抽象【三】

Rae

kafka 日志 原理

还不知道产品帮助中心怎样制作?,来看看这个吧

Baklib

字符串哈希

留白的艺术

Spring Security 在 Servlet 的作用区域

HoneyMoose

(WebFlux)004、WebFilter踩坑记录

编号94530

Spring Boot WebFlux Reactor3 WebFilter

还在为产品的客户服务而烦恼?来搭建在线客服中心!

Baklib

第56届世乒赛团体赛开幕!三思近900㎡ LED显示点燃赛事激情

电子信息发烧客

无线网络安全技术中的王牌标准:WPA到底是个什么东东?解决了什么问题?

wljslmz

网络安全 无线技术 9月月更 WAP

工业4.0时代IIoT存储面临哪些挑战

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

产品的帮助中心怎么建设?关于编辑帮助文档的几个小技巧~

Baklib

leetcode 513. Find Bottom Left Tree Value 找树左下角的值 (简单)

okokabcd

LeetCode 数据结构与算法

新品速递|海泰边缘安全网关护航工控数据采集

电子信息发烧客

OptaPlanner场景和示例

积木编程

GPU是AI时代的算力核心

Finovy Cloud

人工智能 云渲染

基于边缘计算的渲染新应用

火山引擎边缘云

边缘计算 渲染 边缘云 渲染性能 渲染服务

zookeeper集群之间如何通讯

浅羽技术

zookeeper 通信 集群 ZooKeeper原理 9月月更

打破线上社交“不可能三角”,语音社交可以做到既要、又要、还要

擎声科技

音视频 sdk 语音社交 实时互动 擎声Qtt

给你一本武林秘籍,和KeeWiDB一起登顶高性能

腾讯云数据库

redis 腾讯云 NoSQL 数据库 腾讯云数据库 KeeWiDB

好的代码是优质资产、莫让代码成为负债

葡萄城技术团队

Databricks Data Science&Engineering模块介绍

Jackchang234987

大数据 数据产品经理 数据产品 大数据开发 Databricks

iMazing传输 iPhone 备忘录和通话记录功能

淋雨

ios iphone

重磅发布!Orbit 云原生应用全生命周期管理工具上线啦!

CODING DevOps

云原生 Orbit CODING

分享|破世界纪录的OceanBase,如今入选了国际顶会VLDB 2022

OceanBase 数据库

面试官问我 JS 中 foreach 能不能跳出循环

茶无味的一天

JavaScript js foreach for

「产品运营」研发效能之DevOps平台如何运营?

laofo

DevOps cicd 研发效能 持续交付 工程效率

安利几款简单好用的帮助文档制作工具

Baklib

帮助文档

Alluxio与北京大学计算机学院签署合作框架协议,推动产学研深度融合

Alluxio

开源 云原生 产学研用 Alluxio 北京大学

葡萄城受邀参加WOT全球技术创新大会

葡萄城技术团队

大数据开发应用场景解读

Jackchang234987

大数据 数据开发

微信架构图

Johnny

#架构实战营

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