写点什么

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

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

评论

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

Java高级技术经理面试题,西安尚学堂教育,已开源下载

Java 程序员 后端

Java高级知识体系,java性能调优实战网盘,大厂首发

Java 程序员 后端

Java高级面试手册,架构师修炼之道pdf百度云,Java开发实战经典答案

Java 程序员 后端

Mybatis-plus常用API全套教程,springcloud实战视频

Java 程序员 后端

jvm常见面试题,尚硅谷和黑马,2021国内知名大厂Java岗面经

Java 程序员 后端

kafka入门与实践百度云,牛客网平安科技,和快手大牛的技术面谈

Java 程序员 后端

linux应用开发面试题,极客时间破解付费课程百度云盘,Java面试官

Java 程序员 后端

Java高级软件工程师面试题,java菜鸟教程多态,Java程序员面试笔记pdf

Java 程序员 后端

linux学习笔记,springboot前后端分离教程,我先收藏为敬

Java 程序员 后端

Java高级技术架构,linux操作系统教程海南师范大学,nginx入门书籍推荐

Java 程序员 后端

linux基础入门知识,kafka入门教程步骤,2021年Java网络编程总结篇

Java 程序员 后端

linux基础教程试题,linux驱动程序开发视频教程,netty入门与实战

Java 程序员 后端

Mybatis-Plus的使用小技巧,linux数据恢复教程,Nginx面试

Java 程序员 后端

mybatis入门案例,图灵学院第三期视频百度云,阿里中间件

Java 程序员 后端

Java高级知识体系,kalilinux新手教程,Java实习面试经验汇总

Java 程序员 后端

kafka入门教程,springboot高级教程,聊聊你对分布式锁技术方案的理解

Java 程序员 后端

kafka面试题阿里,牛客网面试题库java,农民工看完都会了

Java 程序员 后端

linux内核教程推荐,兄弟连尚硅谷,顺利收获Offer

Java 程序员 后端

Java高级开发面试视频,nginx教程pdf,linux初学者入门书籍

Java 程序员 后端

JVM虚拟机原理深入解析,springboot实战视频教程百度云,你不懂还不学?

Java 程序员 后端

Kafka必须掌握的核心技术,尚硅谷java入门,Nginx面试

Java 程序员 后端

kafka教程pdf,spring入门教程,你会的还只有初级工程师的技术吗

Java 程序员 后端

JDK、JRE与JVM的区别与联系,springmvc基础知识pdf下载

Java 程序员 后端

jvm常见面试题,图灵it教育学院多大,这个框架直接干掉了Servlet

Java 程序员 后端

JVM面试题附答案,Dubbo高频面试题+解析

Java 程序员 后端

linux内核教程推荐,尚硅谷mysql,一文轻松搞定

Java 程序员 后端

Java高级工程师面试题目,尚硅谷kafka文档,和腾讯大牛的技术面谈

Java 程序员 后端

Java高级架构师面试题,李玉婷尚硅谷漂亮,程序员怎样优雅度过35岁中年危机

Java 程序员 后端

kafka入门教程,linux教程第四版pdf下载,mysql基础教程

Java 程序员 后端

kafka实战最佳经验,牛客网华为机试题答案,Java开发面试问题

Java 程序员 后端

linux应用开发面试题,java黑马程序员资源,如何保证redis高可用

Java 程序员 后端

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