策略产品中数据预处理的时间窗如何进行定义
最近一个同学在训练营提问:在做推荐系统的时候,涉及到用户画像的加工处理,怎么去定一个特征选择7天,15天还是30天。
其实这个问题的本质就是一个数据时间窗选择的问题,背后其实是数据时效在表明业务含义的决策。
做过推荐系统或者用户画像的同学都知道,在评估用户偏好时,会涉及到“数据时效”界定的问题。
什么意思呢?简单举个例子。
一个用户在三个月前加购的商品A和他在昨天加购的商品B,从促成交易的角度来看,哪件商品更容易成交。
很明显是商品B。
这个其实就是一个非常典型的数据时效性判断问题,背后实际上就是不一样时效的数据能表明用户兴趣的强弱,也就是我们关于用户“短期”和“长期”兴趣选择的依据。
正如之前经常提到的,推荐系统在高效进行人货匹配的方式无非包括两种思路:
根据用户的偏好来推荐他们感兴趣的物品
推荐平台比较“好”的物品
前者就需要使用到用户的“短期”和“长期”意图,在推荐系统中有时也叫实时特征和离线特征。
实时特征是指:根据用户即时或者近期(比如一周之内)的行为数据,计算出用户的偏好,从而快速生产新的推荐结果;
离线特征是指:根据用户长期(比如三个月,甚至半年)的行为数据,计算出用户的偏好,很有可能是已经计算好的推荐结果。
在使用这些行为数据去计算偏好的时候,有个时间窗的概念,也就是选择具体数据日期区间是什么样的,比如对应一周还是一个月。
在定义的“长”和“短”的具体周期时具体需要参考该业务类型以及用户具体行为类型的频率。
从业务类型来说:
电商业务内用户行为频次都很高,那么电商业务内相关数据的时间窗就可以设置的短一些;
对于课程培训行业,用户购课行为频次相对比较低一些,那么培训业务内相关行为的时间窗也可以设置的稍微长一些。
从行为类型来说:
点击浏览的行为频次很高,数据量很大,因此在选择浏览数据时时间窗可以设置的短一点;
但是下单购买的行为频次相对就低,所以在选择订单数据时,时间窗可以设置的长一点,保证拿到足够的数据。
所以一般来讲,拿电商业务距离,时间窗的选择可以参考下面的定义:
高频行为:1天,3天,5天,7天,比如浏览,点击等
中频行为:7天,15天,30天,比如加购,收藏,关注等
低频行为:30天,60天,90天,比如下单,转发,分享等
具体大家可以根据各自业务以及数据的实际情况进行适当的评估和调整。
那么,在推荐策略产品中如何去使用对应类型的数据去加工处理,以得到我们想要的偏好呢?
大家要明确一点,推荐系统等策略类产品都是依据业务场景而生的,那么,每个业务场景都是为了实现对应的业务目标以及满足用户在当前场景下的意图和需求。
比如首页是为了让用户逛起来,而商品详情页则是为了让用户尽快进行购买决策。
业务目标不同那么,你在制定具体的策略就会不一样。所以选择用户长期兴趣,还是短期兴趣很多时候都是由当前业务场景下的目标决定的。
通常来说综合流量分发端一般来说更偏向采用用户长期兴趣,离交易端越近越偏向采用用户短期兴趣,即实时特征。
我们以京东APP首页为你推荐模块为例,它就是一个综合的流量分发端。当用户进入首页时,对于平台来说此时还无法得知用户明确的意图,因此,要通过用户的偏好来尽可能的命中用户感兴趣的点,保证他能留下来。同时,因为首页承担的是整个平台所有流量的分发,因此也需要兼顾其他品类的曝光,保证推荐结果多样性。
所以,对于这种业务场景一般会综合用户长、短期偏好来进行推荐策略制定,尽可能在命中用户兴趣点的同时,通过策略来保证用户看到结果的多样性,以此来探索用户其他可能的偏好。
这个其实就是推荐系统的EE(Exploit-Explore)问题。
但是,当用户从首页进入活动列表页或者商品详情页时,用户的意图已经相对比较明确了,对于推荐系统来说此时能够促成交易的最佳策略就是基于用户当下的意图去推荐好的物品,比如质量好的,好评率高的,性价比高的物品,所以这个时候一般会采用实时特征来进行推荐保证流量的转化。
所以大家可以看到商品详情页的推荐模块一般都是和当前商品“很相似”的物品。
以上,就是关于数据预处理环境关于数据时间窗选择的问题。