用户画像,英文又叫 User Profile,我们经常看到在 PPT 中展现出高大上的用户画像,展现的方式是采用标签云的方式绘制一个人的形状,或者在一个人物形象旁边列出若干人口统计学属性,以此来表达“用户画像”这个概念。
上面这种方式看上去非常炫酷,但实际上这么做的目的只是为了对外展现,用户画像最应该是给机器看,而不是给人看。如果要给机器看,那每个用户的画像应该就是一个向量。
用户向量化后的结果,就是 User Profile,俗称“用户画像”。所以,用户画像不是推荐系统的目的,而是在构建推荐系统的过程中产生的一个关键环节的副产品。
通常大型推荐系统一般都分为召回和排序两个阶段,因为全量物品通常数量非常大,无法为一个用户(User)逐一计算每一个物品(Item)的评分,这时候就需要一个召回阶段,其实就是预先筛选一部分物品(Item),从而降低计算量,用户画像除了用于最终匹配评分,还要用在召回。所以,构建用户画像就要以这两个阶段为目的。
建立用户画像有两个关键点,一个是维度,另一个是量化。这里举个简单的例子来说明下。比如有以下几家旅店,旅店的属性(标签)如下:
名称 | 价格 | 环境 | 距离 |
---|---|---|---|
A | 100/晚 | 中 | 5km |
B | 200/晚 | 优 | 2km |
C | 150/晚 | 差 | 10km |
D | 150/晚 | 优 | 1km |
对价格、环境、距离分别映射一个评分。假定都分为三个级别,价格越低评分越高,环境越好评分越高,距离越近评分越高,那么映射后的结果如下:
名称 | 价格 | 环境 | 距离 |
---|---|---|---|
A | 3 | 2 | 2 |
B | 1 | 3 | 3 |
C | 2 | 1 | 1 |
D | 2 | 3 | 3 |
映射后生成旅店的特征矩阵(维度矩阵),每个旅店都对应一个向量,比如旅店A对应的向量就是 [1, 2, 2]
。接下来需要对人也映射一个向量,映射方法就是看你多在意这几个因素,比如我对价格不敏感(不缺钱),但是非常在意环境和距离,那我这个人对应的向量就是[1, 3, 3]
。然后将物品的矩阵与人的向量相乘,得到这个人对每个物品的评分。
可以看到,最后会有一个评分列表,分别表示我对每个旅店的预估评分。了解了上面的例子后,再来看下用户画像中关键的两个因素:维度和量化。
上面例子中选择的维度分别是:价格、环境、距离。这几个维度有以下几个特点:
维度名称都是可解释的
维度的数量是拍脑袋拍出来的
选择什么维度也是拍脑袋拍出来的
在实际生产环境中,维度名称并不一定需要由可解释性,维度数量以及选择什么维度也不应该都以主观意愿来决定。
再来看下量化,实际生产环境中,用户画像每个维度的量化,应该交给机器,而且以目标为导向,以推荐效果好坏来反向优化出用户画像才有意义。像前面的例子中的先行主观量化而不考虑推荐效果时非常不合理的。
所以用户画像的量化是和第三个关键元素“效果”息息相关的。前面已经说过,不要为了用户画像而用户画像,它只是推荐系统的一个副产品,所以要根据使用效果(排序好坏、召回覆盖等指标)来指导用户画像的量化。
按照对用户向量化的手段来分,用户画像构建方法分成三类:
1. 查户口
查户口的意思就是说直接使用原始数据作为用户画像,比如注册资料中包含的人口统计学信息,或者浏览历史、购买历史,除了数据清洗等工作外,数据本身没有做任何抽象和处理。通常对于用户冷启动等场景非常有用。
2. 堆数据
堆数据的意思就是说从历史数据中统计过出需要的结果,常见的兴趣标签就属于这类:从历史行为数据中去挖掘出标签,然后在标签维度上做数据统计,用统计结果作为量化结果。一般非常炫酷的用户画像都是通过这种方法制作的。
3. 黑盒子
黑盒子的意思是说使用机器学习方法,学习出人类无法直观理解的稠密向量,也最不被非技术人员重视,但实际上在推荐系统中承担的作用非常大。
比如使用潜语义模型构建用户阅读兴趣,或者使用矩阵分解得到的隐因子,或者使用深度学习模型学习用户的 Embedding 向量。这一类用户画像数据因为通常是不可解释,不能直接被人看懂。
用户画像应该是让机器看的,所以就需要是一种结构化的数据,可以认为是用户信息的向量化结果。用户画像的关键元素有维度和量化,量化时需要以推荐系统的效果为指导。通常构建用户画像的方法有三种:采用原始信息(查户口)、使用统计结果(可被理解)、使用机器学习方法(无法被人理解,但是很重要)。
联系客服