推荐系统学习笔记--CH2-1--数据与特征工程
通过第一章对推荐系统的整体认知之后,本章将对推荐系统常用的算法进行学习,大纲如下图所示,本文将对第一节内容进行总结:
本章是重点和难点课程,虽然老师用通俗易懂的语言讲述了一遍,但是大量的工作需要自己课下补充学习。
业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。对于推荐系统也不例外。
1. 数据
推荐系统基本参与是用户和产品两方,依赖的数据按照数据来源,大致可分为以下四类:
- 用户行为数据
用户行为,反映出用户对物品的操作。包括浏览,播放,收藏,点赞,评论,转发,加购物车,购买等。
通过用户行为,我们可以大致了解用户的好恶,它是用户对产品的直观反映。 - 用户属性数据
用户属性数据,是用户自身具有的数据。包括用户的年龄,地域,性别,学历,职业,收入情况,是否单身,是否是会员。
这些因素,可以作为推荐的间接数据。 - 物品属性数据
通用户属性一样,物品属性是物品本身具有的数据,物品和用户不同,物品的种类很多,因此属性数据不尽相同。
以视频为例,包括标题,标签,演员,年代,国别,语言,获奖情况,豆瓣评分,是否是会员权限视频。 - 上下文数据
上下文数据,是用户使用产品是周围的环境情况。就类似同样一句话,在不同的场景下表达意义不一样。
包括用户所在地域,天气,时间,日期,用户当前状态,心情以及用户使用产品的所在路径(是浏览,还是加入购物车)。
这么多数据,按照数据存在格式可以大致划分为三大类:
- 结构化数据
结构化数据,可以使用关系型数据库存储的数据。
主要是文本类的,类似用户属性,物品属性都可以是结构化。 - 半结构化数据
半结构化数据,数据有一定的结构,但是并不很清晰,不能简单用一个关系型表格表示。
比如用户行为数据,比如json格式的。 - 非结构化数据
音频,图片,视频数据,现实生活中非结构化数据最多,处理起来最难,大约占95%以上。
2. 特征
2.1 什么是特征
特征通常是建立在原始数据之上的特定表示,它是一个单独可测量的属性,通常用数据集中的列表示。
特征可以从不同的维度来描述一个目标,既有数值也有非数值。
2.2 特征工程
特征工程是将原始数据转化为有效特征的过程,包括数据的清洗,数据的规整,特征的筛选,添加等,使得这些特征能够更加准确的描述模型潜在问题,提高模型对未知数据的预测准确性。
如下图所示,特征工程所处位置。
3. 特征分类
3.1 类型分类
- 类别特
性别(无序,没有先后关系),等级(有序,) - 数值特征
比如身高 - 时空特征
时间(时间的相对值即可,考虑时间的周期性),地理位置(地理层级关系,外卖考虑距离)
3.2 可解释性
- 显式特征
可以通过人类思维和语言解释其合理性的特征。
类别,数值,时空,TF-IDF,LDA - 隐式特征
语言解释不了,但是实际起到作用的特征。
word2vec,矩阵分解等生成的嵌入特征
4. 特征工程
一般特征工程,主要有三大步骤:
-
数据预处理和特征增强
缺失值处理:一般机器学习模型对缺失值处理比较难(除了树模型),因此需要考虑缺失值填充,对于数值特征可使用均值、中位数,对于离散特征可使用众数。
归一化:特征之间量纲不同,数值范围不同,特征之间数值差异较大,导致模型收敛问题。因此考虑归一化,min-max归一化,分位数归一化,正态分布归一化。 -
特征表达与构建
类别特征(离散特征):one-hot编码,TF-IDF编码
数值特征(连续特征):可以直接使用(注意归一化),也可以用分桶离散化。 -
特征选择
基于统计量:方差(方差表征特征的变化程度,如果太小,则特征太平,没有变化,就代表没有信息);皮尔逊相关系数(表征两个变量相关程度,极限状态下是线性相关,则只需要保留一个)
基于模型:线性模型的系数大小(线性回归,逻辑回归);尝试增加或减少特征,来看模型效果。
5. 案例:逻辑回归CTR预估
如下图所示,通过特征工程,将用户和物品的几类特征规整到表格当中,做CTR点击率预估。
图中特征已经完成了特征工程,直接输入到逻辑模型中去训练预测即可。
6. 本章待补充学习内容
- 时间序列特征
- TF-IDF原理和应用
- LDA原理应用
- word2vec
- 逻辑回归复习