推荐系统建模问题中的特征构造方法

在推荐系统建模问题中,合适特征的构造对于模型的性能至关重要,在训练最终的模型前,一定要进行恰当的特征工程。特征工程主要包括数据预处理(Data Preprocess)、特征构造(Feature Construction)、特征提取(Feature Extraction)、特征选择(Feature Selection)。特征提取和特征选择的基础是特征构造,也即我们要有基础的特征;但是在实际的应用场景中,原始数据提供的特征很少或者根本没有,需要我们自己去进行特征的构造。因此,特征构造是最基本也是最重要的处理步骤,本文转载记录一下在推荐系统中比较通用的特征构造方法。

场景分析:

推荐场景一般可以抽象为:内容(item)和受众(user),其中内容主要是指要推荐的item,在购物场景中item就是商品,歌曲推荐中Item就是歌曲,受众是访问当前场景的用户,一般是自然行为人;推荐模型一般是计算不同的User-Item对的得分,这个得分反映的是用户点击当前物品的概率(CTR,Click Through Rate),将得分最高的Top-N items推荐给用户(Top-N推荐),整个特征关联模型可以抽象为下图:

图-1 推荐系统关系模型

其中,可以分解为如下几部分:User-Item特征、User特征、Item特征、User-Item属性分布特征,下面具体阐述每种特征的构造方法。

User-Item特征:

User-Item特征主要从三个维度来刻画User对Item的“兴趣”,如图-2所示:

图-2 User-Item类型的特征构造

1)时间序列上的统计特征:

统计特征从四个角度(绝对值、相对值,是否感兴趣和深度感兴趣)来刻画User对Item的“兴趣”。比如,时间序列中User累积对某个Item的行为次数就是User对Item的绝对兴趣值;如果时间序列分为:一天、三天、一周(实际中时间还需要继续拉长一点来刻画用户长期的兴趣),行为是“点击”;那么这一个特征构造语句就可以翻译成三个不同的特征:分别是最近一天,三天和七天用户对每个Item的点击次数;时间序列上User对Item是否有重复的行为用来刻画和区分哪些Item是对User有深度吸引力的,如果在一段时间上只发生了一次行为,那么很可能User对这个Item并没有兴趣,只是随便看看;时间序列上User对Item是否有行为,用来刻画User过去某一段时间关注点在哪里,对哪些是可能喜欢的,和上面的一条特征的区别在于可以涵盖用户可能比较感兴趣的Item并且这样用户兴趣特征也会更加丰富。

2)时间特征:

时间特征从三个角度(最近时间,行为频度,行为稳定性)来刻画用户对于Item的兴趣在不同时间上的活跃度。比如,User对Item的最后行为时间,可以翻译成一个时间特征,可以将这个时间进行归一化为一个0-1的标量,越接近于1表示User对这个Item具有越强的新鲜度;User对某个Item的平均行为时间间隔用来刻画User对Item的活跃频率,时间间隔越小说明对用户的吸引力越大。User对Item的行为时间间隔方差可以用来刻画User对Item的喜好的稳定性。

3)趋势特征:

趋势特征主要刻画用户对某个Item的兴趣趋势。比如,User一天对Item的行为次数/User三天对Item的行为次数的均值,表示短期User对Item的热度趋势,大于1表示活跃度逐渐在提高;三天User对Item的行为次数的均值/七天User对Item的行为次数的均值表示中期User对Item的活跃度的变化情况;七天User对Item的行为次数的均值/两周User对Item的行为次数的均值表示“长期”(相对)User对Item的活跃度的变化情况。

User特征:

User特征主要包括用户的属性特征以及从多个方面刻画用户的“活跃度”,User类型的特征构造方法如图-3所示:

图-3 User类型的特征构造

时间序列的统计特征:

主要从三个维度(User总活跃,用户深度活跃,用户对于Item的覆盖率)来刻画用户的活跃。比如,时间序列上User行为次数总和,在划分成三个时间细粒度的情况下,可以翻译成三个特征,分别是一天,三天和七天User的行为总和,来表示User在当前时间段上的活跃。时间序列上User重复行为次数用来刻画用户真实的活跃深度。时间序列上User有行为的Item的数量,可以用来刻画用户的活跃广度,来表示用户是否有足够的意愿尝试新的Item。

1)时间特征:

主要从三个角度(最近时间,行为频度,行为稳定性)来刻画用户的活跃度。比如,User最后行为时间,时间越接近当前时间说明User的活跃度越强;User的平均行为时间间隔用来刻画User的活跃频度,时间间隔越小,说明User的活跃频度越大。User的行为时间间隔方差可以用来刻画User活跃的稳定性。

2)趋势特征:

趋势特征用来刻画User的活跃趋势。比如,User一天的行为次数/User三天的行为次数的均值,表示User的短期活跃趋势,大于1表示活跃在逐渐提高。

3)属性特征:

刻画用户的基础属性的特征。

Item特征:

Item特征主要包括Item的基础属性特征以及从多个方面刻画Item的“热度”,Item类型的特征构造方法如图-4所示:

图-4 Item类型特征构造

1)时间序列的统计特征:

从三个维度(Item的行为热度、热度趋势和时间间隔)来刻画Item的热度。比如,时间序列上Item的行为次数总和,在划分成三个时间细粒度的情况下,可以翻译成三个特征,分别是一天、三天和七天Item的行为总和,来表示Item在当前时间段上的热度。时间序列上Item被重复点击次数用来刻画Item真实的热度深度,尤其在APP的推荐上,重复的使用或者点击说明当前APP对用户的吸引力越强。时间序列上和当前Item发生行为的User的数量(去重)刻画了Item的热度的广度。时间序列上Item的点击和曝光的比值(User不去重)-CTR,刻画了Item在相同曝光下被点击的概率。时间序列上Item的点击和曝光的比值(User去重)-CTR,刻画了Item在相同曝光下被点击的概率,去重是为了剔除某些特殊情况下User对Item的行为过于集中的情况。

2)时间特征:

主要从三个角度(最近时间、行为频度、行为稳定性)来刻画Item的热度。比如,Item最后行为时间,表示Item的最近活跃;item的平均行为时间间隔用来刻画Item的热度频度,间隔越小,说明热度频度越大。Item的行为时间间隔方差可以用来刻画Item热度的稳定性。

3)趋势特征:

主要刻画Item的热度和CTR的趋势。比如,item一天的行为次数/Item三天的行为次数的均值,表示短期Item的热度趋势,大于1表示热度逐渐在提高。另外一种特征表示CTR的趋势:一天的Item的CTR/三天Item的CTR,表示item短期的CTR趋势。

4)属性特征:

主要用来刻画Item的基础属性特征,比如类别。

User和Item之间的属性分布特征:

主要通过计算在不同时间段上User和Item之间的行为的统计特征:如果当前的User的属性包括:性别、年龄和Device,Item的属性包括:Item_id和类别,那么特征构造方法如图-5所示:

图-5 User和Item之间的属性分布特征构造

 

上面列举了一些常见属性之间的分布特征,都是User针对Item或者Item针对User的统计分布,这些只是大部分场景中会出现的场景,在具体的业务中可以根据实际可以获取到的属性结合和样本之间的相关性来进行建模。

特征选择:

在实际的业务中,首先需要思考的是如何正确的构建样本对,在恰当的样本对构造的基础上思考和样本标签具有相关性的因素,这些因素包括用户物品侧,找到这些因素之后才是特征构建,不同的场景和算法情况下需要不同的特征选择:比如说游戏推荐中的活跃时长、付费意愿很重要,而弱化了在性别上的分布,因为游戏属于用户粘性比较大的类型,而商品推荐中性别分布和浏加购物车行为则同等重要,因为用户的性别和用户之间的兴趣具有很强的相关性;对于不同的算法同样也需要不同的特征体系,对于逻辑斯蒂回归这种解释性很强的线性模型,通常需要根据建模场景选择特征的细粒度,然后生成和样本具有相关性的特征;获取相关性最直接的方法是对特征进行特征交叉,而对于树模型或者FM模型,理论上则不需要进行特征交叉,因为模型本身就具有了特征的交叉能力。

总之,合适的算法模型加上适配的特征体系才能获得比较好的效果。

小结:

特征工程通常在算法调优中占据了大部分的时间,本文旨在通过梳理推荐系统中常用的特征构造方法,实现快速的特征构造。上述方法可以快速构造一些简单有效的特征,但是,有些特征在某些场景下是冗余的,并不能带来新的信息,所以在实际的应用场景中还需要根据具体需求进行特征选择

 

Preference:

http://www.199it.com/archives/758115.html

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值