基于标签如何构建特征向量?

我们预测user是否对item感兴趣,最简单的就是user特征和item特征拼在一起作为特征向量,进行模型训练与预测。

但是这样缺少了user与item之间的一些交叉特征,标签就是很重要的一种。

item一般会主动打上一些tag,而user偏好的tag除了给用户自主选择的机会,一般通过大数据来挖掘。

通过积累user对item的点击日志,可以通过hive等大数据平台离线计算出user浏览过哪些tag,以及每个tag的浏览次数。

最终,我们可以基于上述统计结果,计算出每个user浏览过哪些tag,每个tag的权重(该tag浏览次数 / 该用户浏览tag总次数)。

当我们拿到一个item的时候,可以以Item的tag为准,找出user是否有相同的tag,得到item与user的tag交集。

因为user对每个tag均有偏好权重,现在可以产生几个交叉特征,比如:

  • user对item的最大tag偏好权重
  • user对item的平均tag偏好权重(交集tag的权重sum / item的tag数)
  • user对item的tag偏好权重和(交集tag的权重sum)

把这些数值添加到特征向量中,现在整个特征向量的组成是这样的:

  • user特征:年龄,性别…
  • item特征:价格,热度…
  • tag交叉特征:最大tag偏好打分,平均tag偏好打分,偏好总分

你还可以对品牌、分类等做离线挖掘,为每个user对每个brand/category做权重打分,都作为交叉特征。

这样,就可以把海量标签转化为特征表达,体现出user对item的偏好了。

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~