推荐系统那点事 —— 什么是用户画像?
http://www.cnblogs.com/xing901022/p/7128398.html
用户画像在大数据分析中是一种很有用的系统,它可以各种不同的系统中,起到很关键的作用。比如搜索引擎、推荐系统、内容系统等等,可以帮助应用实现千人千面、个性化、精准等的效果。
下面将从几个方面来说一下,什么是用户画像,主要的内容来自《用户网络行为画像分析与内容推荐应用》这本书。
- 应用场景
- 数据来源
- 特性
- 建模
- 群体画像
- 画像的存储
- 画像的查询
- 画像的更新
图片来自京东——想要购买可以点这里跳转
应用场景
下面举几个很典型的场景:
搜索引擎
在搜索的时候考虑用户的画像标签,返回用户感兴趣的内容。比如同一个关键字“诸葛亮”,王者荣耀的爱好者搜索的时候应该返回“诸葛亮”相关的内容,比如如何加铭文、如何五杀等等;而历史爱好者搜索的时候,应该返回三国相关的内容。
推荐系统
推荐系统可以根据用户的喜好和特征,也就是用户的画像,推荐相关的内容。比如,给一个用户定位的画像是美妆达人,那么就应该给她多推送一些面膜护肤之类的东西,而不是推一堆零食。
内容推荐
比如新闻类的产品或者读书类的产品,根据用户的喜好不同,展现不同的内容。
数据来源
用户画像的数据来源主要包括两个方面:
- 属性数据,这部分数据一般是用户的注册信息,也可以是从其他数据中分析得出的。比如生日、性别、住址、爱好等
- 行为数据,这部分数据一般都是用户的访问日志记录的行为数据。比如常用的一些后端日志数据、前端埋点数据等等。
通过这两部分的数据,就能刻画出用户的画像,其实就是给用户打上一个标签,比如高富帅、白富美等等。
特性
用户画像具有很明显的动态性
和时空局部性
。
- 在用户的数据中,属性信息一般不会改变;但是行为数据是随时会发生变化的,比如用户看了一个新的电影、阅读了新的文章等。这时它的数据就是动态变化的,这部分数据应该动态的更新到用户的画像上。
- 时间上,用户的一些需求是很快会发生变化的,比如最近下雨,用户想要买一把伞,如果几天后才捕捉到用户的需求,此时天都晴了;另一方面,空间上,用户在不同的领域喜好也不同,可能在新闻领域用户是一个严重的军事迷,但是在网购时,又是一个小清新,因此需要考虑到不同空间用户不同的需求场景,刻画对应的画像。
用户画像建模
用户的画像分为定量画像和定性画像,网上也没有找到这两种明确的定义。不过参考1的文章中是这样定义的:
- 定性画像,是指在小规模的数据中分析出的用户的画像,比如问卷调查,访谈等等
- 定量画像,是在大规模的数据中分析的,比如日志等
这一块的内容,理解的并不好....以后会多加补充
基于标签的画像
在用户的定性画像中,标签化是核心。即把用户的画像变成一个一个的标签,那么在考虑标签化的同时,需要注意下面的几个方面:
- 如何定义标签?标签的名称、类别、取值
- 如何解释标签?标签的语义描述
- 如何推理标签?标签实现的过程
- 如何验证标签?定义是否合理,推导是否合理
基于知识的画像(个人理解)
知识工程,在百科中的解释是:
“知识工程”的产生,把人类所专有的文化、科学、知识、思想等同现代机器联系起来,形成了人——机系统。
即需要领域专家(有经验的老业务)配合来做机器智能的分析。
知识工程的大体过程为:知识的获取-->验证-->表示-->推论-->解释和理由
在用户画像中,就是配合用户和物品的属性,建立对应关系,这部分的对应关系需要知识专家进行鉴别推理和构建。比如有一些“专家”会把电影分为几类,爱情片、动作片、科幻片、恐怖片,这些都是需要领域专家来设定的,而不是靠人工分层分类1分类2分类3...
构建的过程
在构建用户画像时,大致可以按照下面的步骤:
- 构建领域词汇:不同的领域会有不同专业的词汇,描绘人的、电影的、书籍的词汇都是不同的。这部分可以参考其他同类的产品,如果是独创的领域,那么就需要这个领域资深的“玩家”来定义了。
- 确定分类之间的层次:画像也是有层次的,比如电影的里面的人分为演员、导员、观众等。需要对标签(画像)归类处理。
- 定义属性:为不同的画像定义属性,包括对象属性和数值属性。比如在电影的场景中,对象属性是上映的时间、导演,数值属性是观看量、时长等。
- 定义实例:实例就是最终的画像,是由分类和属性组成的。
- 定义约束:这个是描述一个物品的规则,比如电影是由(名称、类型、时长、导演、主演)等等属性组成的,那么任何一个电影都可以由这种方式来定义。
群体用户画像
用户画像是用来描述目标用户的画像,而群体画像则是对一类相似的用户的描述。比如成熟稳重型、可爱萝莉型等。
那么如何定义群体画像呢?可以按照下面的步骤:
- 获取用户画像
- 计算用户画像的相似度
- 用户画像聚类
- 群体用户画像生成
定义用户画像之间的相似度
计算用户画像之间的相似度,可以参考下面的公式:
其中wk表示第k个画像的权重,比如在电影里面,用户喜欢的电影类型比重要比电影的时长重要的多,在计算相似度的时候权重也应该更大一些。
计算相似度有很多中方法,比如:欧氏距离
、曼哈顿距离
、夹角余弦
、皮尔逊相关系数
、杰卡德距离
等,每一种都有自己适合的场景。
画像聚类
画像聚类的方式有很多,比如K-means,原理就是随机几个点,看各个点的数据跟哪个点接近,就归为哪一类。然后不断调整中心点,达到最终聚合的效果。
用户画像存储
用户画像有很多中表示的方法,比如:
- 关键词法,用一对的关键词描述画像,这种方式最容易理解
- 评分矩阵法,用二维矩阵的方式,通过评分表示。这种在协同过滤中很常见
- 向量空间表示法,这种是基于向量的方式描述画像
- 本体表示法,不太懂
不同的表示方法,对于存储的方式来说,也会不同。
一般用户画像常用的存储引擎有:
- 关系型数据库,通过中间表的方式存储用户和画像之间的关系,有点就是查询快、缺点就是数据量大的时候扛不住。
- NoSql数据库,常见的就是键值数据库(Redis)列数据库(Hbase)文档数据库(mongodb)图数据库(neo4j)等,每种数据库都有自己适合的场景。
- 数据仓库,数据仓库是一种面向主题的存储,可以更好的解决领域分析的问题。而且它保留了数据的时间变化,对于分析历史来说,非常有帮助。但是不适合实时查询。
用户画像的查询
用户画像的场景下:
- 1 对于画像的查询要求是高并发、高聚合,比如会有很多人查询它自己的画像;也会通过一个画像属性,查询所有相关的人。
- 2 在画像的查询中,大量的查询都是重复的,因此可以着重考虑缓存机制。
用户画像更新
在画像的更新方面,需要考虑的问题是:
- 1 如何实时获取变化的画像?
- 2 如何设置合适的更新触发条件?
- 3 如何设计高效的算法?
对于获取用户的信息,可以把用户逇信息分为静态信息数据和动态信息数据,
更新的机制
- 一种是设置更新的条件,比如购买达到1w元,立马升级成VIP标识
- 一种是设置固定的时间周期,更新画像。这种最简单,直接没天凌晨跑一个画像的更新任务就行了。
- 另一种是从增量的数据中计算画像,然后对比旧的数据,考虑是否更新用户的画像。
以上就是用户画像的基本内容,也是《用户网络行为画像分析与内容推荐应用》这本书的第一部分,后续会更新其他的部分。
参考
1 什么是定性画像、什么是定量画像?http://www.jianshu.com/p/3750d9349b71 2 《用户网络行为画像分析与内容推荐应用》想要电子版的私M。~