推荐系统技术内幕(三):算法篇之用户画像

做好推荐系统的第二步,就是认识用户。如果你不了解用户的喜好,推荐也就无从谈起。所以在用户冷启动的时期,我们会用一些策略去试探用户的喜好,目标也是为了认识用户。

认识用户用专业术语表达就是用户画像(User Profile)。读者应该看过下图形式的用户画像:

推荐系统技术内幕(三):算法篇之用户画像_第1张图片

这种图形化的用户画像,用不同颜色和字体的标签,拼出用户的剪影形象。

实际上,这种形式的用户画像,对计算机来说没什么用处。为什么呢?

因为对于计算机来说,用户画像是否形象,是否直观,甚至是人类是是否可理解,都不重要,重要的是否可计算。对与计算机来说,最好不过的画像就是一组向量,向量的每个纬度可以是人类可理解的,也可以是人类不可理解的。因为用户画像的目标是提高推荐的效果,它需要参与各种推荐算法的计算,画像本身并非目的。

通常来说,用户画像由下面两种构建方法:

  • 数据统计:用户的统计特征,直接可以作为画像的一部分,比如性别,年龄,职业等等。
  • 机器学习:通过用户的对物品的行为数据,可以学习到用户在物品画像空间的权重,这些权重可以作为用户画像的组成部分。另外,还有通过潜因子分析算法,学习到人类无法直观理解的潜因子表达,称为嵌入(Embedding),也是用户画像的组成部分。

对于构建用户画像,我们来举个例子,放长假的时候,很多人都会选择外出旅游,从推荐系统的角度出发,如何推荐旅游地点呢?

首先我们对旅游地进行分析,构建旅游地的画像,分为下面三个纬度分别量化:

  • 距离:1表示距离最远,5表述距离最近
  • 价格:1表示价格最贵,5表示价格最便宜
  • 评价:1表示评价最差,5表示评价最好

那么所以的旅游地都会有一个向量化的表示,比如:

  • 北京: ( 5 , 2 , 3 ) (5,2,3) 523
  • 香港: ( 3 , 2 , 3 ) (3,2,3) 323
  • 泰国: ( 2 , 3 , 3 ) (2,3,3) 233
  • 欧洲: ( 1 , 1 , 4 ) (1,1,4) 114

用户对每个纬度的考虑程度也不一样,也可以量化,比如:

  • 距离: 1表示非常在乎距离,极不愿意出远门,5表示距离无所谓
  • 价格: 1表示非常在意价格,5表示价格无所谓,是个土豪
  • 评价: 1表示非常有主见,不在于别人的评价, 5表示非常在于旅游地的评价

于是每个用户会对应一个向量,这个向量可以称为用户的画像:

  • 张三: ( 2 , 3 , 1 ) (2,3,1) (2,3,1)

有了用户画像和旅游地画像,就可以对每个用户计算旅游地的推荐分数了,例如对于张三来说,上面景点的得分分别是:

  • 北京: ( 5 , 2 , 3 ) ( 2 , 3 , 1 ) = 10 + 6 + 3 = 19 (5,2,3)(2,3,1) = 10 + 6 + 3 = 19 (5,2,3)(2,3,1)=10+6+3=19
  • 香港: ( 3 , 2 , 3 ) ( 2 , 3 , 1 ) = 6 + 6 + 3 = 15 (3,2,3)(2,3,1) = 6 + 6 + 3 = 15 (3,2,3)(2,3,1)=6+6+3=15
  • 泰国: ( 2 , 3 , 3 ) ( 2 , 3 , 1 ) = 4 + 9 + 3 = 16 (2,3,3)(2,3,1) = 4 + 9 + 3 = 16 (2,3,3)(2,3,1)=4+9+3=16
  • 欧洲: ( 1 , 1 , 4 ) ( 2 , 3 , 1 ) = 2 + 3 + 4 = 9 (1,1,4)(2,3,1) = 2 + 3 + 4 = 9 (1,1,4)(2,3,1)=2+3+4=9

有了得分之后,就可以将得分最高的旅游地推荐给张三。

上面的例子中,实际上是对用户画像构建过程做了很大的简化,这些简化包括:

  • 纬度的确定: 我们人为的确定了画像的纬度以及每个纬度的含义,实际中,这些纬度需要通过上一章介绍的挖掘算法,挖掘出来的。
  • 用户的量化: 用户在每个纬度上的量化值,是人为设置的,实际中,应该是以推荐效果为导向,通过数据自动学习出来的。
  • 推荐算法: 这里我们采用了线性模型,对应的纬度相乘求和,得出一个推荐分数,实际中这也不是必须的,可以有推荐模型。甚至目标都可以不是分数,例如,可以是拟合用户对旅游地的评分。

你可能感兴趣的:(推荐系统技术内幕(三):算法篇之用户画像)