浅谈离线用户画像开发

2 篇文章 0 订阅

用户画像一般包含三种画像:基础画像(base_info_da)、行为画像(action_info_da)、偏好画像(prefer_info_da)。

  • 基础画像:用户的年龄、性别、婚姻状态,还有挖掘类标签也可融入其中,如用户生命周期、留存率、流失率等。
  • 行为画像:比如用户近X天在Y维度下访问、关注商品的次数。(X可以是1、3、7、100天,Y可以是比如裤子类、羽绒服类、夹克类)
  • 偏好画像:根据用户X的行为数据,进行时间衰减和不同行为的权重计算出偏好。(比如裤子类中,用户对休闲裤的偏好是0.6,牛仔裤的偏好是0.4)

用户画像需要买足三个特性:一致性、快速产出、快速迭代。

  • 一致性:各种画像数据能够对得上。(用户近7天有牛仔裤页面的访问,但是没有裤子类的偏好)
  • 快速产出:离线画像T+1,越早产出业务方使用效果越好。
  • 快速迭代:快速优化、新增画像数据到画像。(比如用户偏好增加用户行为,新增一个维度的用户偏好)

基于上述特性,开始进行设计:

  1. mapped层:要有一份最全的行为数据,包括线上、线下、商机,详情页、非详情页、主页、各种频道页面,只要是和用户有关的数据都要包含。
  2. action层:从mapped取到和某件商品(主体)直接关联的数据,比如裤子页面的访问数据需要,裤子列表页的数据不需要。
  3. 目前有了各种用户数据,就需要思考每种画像所需的数据是什么样的,需要进行链路上的设计。
  4. 用户基础画像、用户行为画像都需要一个人群表(所有主键表),基于这个人群进行很多次left join去做一张很大的画像表,那么需要人群表。
  5. 基础画像和行为画像的人群一般情况是不一样的,比如基础画像的人群表只需要有id,行为画像的人群表就需要id、type(例如上衣、裤子,就可以根据此计算用户近7天访问裤子页面次数,近7天访问上衣页面次数)。虽然需要字段个数的不一样,但是差别也不会很大。
  6. 根据5的需求,可以根据mapped做一层mapped_simplify,只保留基础、行为画像用得到的字段,并进行聚合。比如一个用户访问一条裤子三次,理论上应有三行数据,但现在合并成一行,加个cnt字段为3。
  7. 有了mapped_simplify,可以作出两种画像的人群base_info_base_da、action_info_base_da,画像就可以用这两个表当主表,一直进行left join就可以了。
  8. 用户偏好画像一般是在某个属性上的,比如裤子价格、裤子风格,每种属性都是单独计算,所以要基于action层构造一个适用于偏好的底层表,这张表要满足:合理设计二级分区、数据聚合、统一枚举值处理。使在计算偏好时候读到的数据没有一行、一列是重复的。
  9. 接下来计算用户各种行为衰减之后的值,再根据权重计算偏好、归一。
  10. 三种画像可以做成接口供业务方使用;也可以将偏好再处理一下,选取每种偏好的top1,搭配基础、行为画像圈包使用。

三种特性怎样满足:

  • 一致性:通过合理的链路设计,一致性自然而然的就可以满足。
  • 快速产出:计算画像的时候,合理的di表聚合、裁剪,中间表的开发,sql、参数的调优。(需要熟悉业务、了解mr)
  • 快速迭代:对于有大量重复的工作,可以通过配置化完成,减少hql开发时间。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值