特征工程---推荐系统
构建一个好的特征工程,需要依次解决三个问题:
- 构建特征工程应该遵循的基本原则是什么?
- 有哪些常用的特征类别?
- 如何在原始特征的基础上进行特征处理,生成可供推荐系统训练和推断yoga的特征向量?
1. 构建推荐系统特征工程的原则
2. 推荐系统中的常用特征
2.1 用户行为数据
2.2 用户关系数据
2.3 属性、标签类数据
2.4 内容类数据
2.5 上下文数据
2.6 统计类数据
2.7 组合类数据
组合类特征是指将不同特征进行组合后生成的新特征。
刚开始的推荐系统,推荐模型(比如逻辑回归)往往不具备特征组合的能力。在最近的深度学习推荐系统下,组合类特征不一定通过人工组合、人工筛选的方法选出,可以由模型进行自动处理。
3.常用的特征处理方法
对于推荐系统来说,模型的输入往往是由数字组成的特征向量。
-
连续性特征
用户年龄、统计类特征、物品的发布时间、影片的播放时长等数值型的特征。对于这类特征的处理,最常用的处理手段包括归一化、离散化、加非线性函数等方法。- 归一化:统一各特征量纲
- 离散化:通过确定分位数的形式将原来的连续值进行分桶,最终形成离散值的过程。
- 加非线性函数:直接把原来的特征通过非线性函数做变换,然后把原来的特征及变换后的特征一起加入模型进行训练。
-
类别型特征
用户的历史行为数据、属性标签数据等都是类别性特征,其表现形式往往是一个类别或者一个id。最常用的处理方法是one-hot编码转换成一个数值向量,面对同一个特征域非唯一的类别选择,还可以使用multi-hot编码。
以上处理方法导致特征向量维度过大,特征过于稀疏,容易造成模型欠拟合,模型的权重参数的数量过多,导致模型收敛过慢。Embedding技术可以先将类别特征编码成Embedding向量,再与其他特征进行组合,形成最终特征向量。
4. 特征工程与业务理解
在推荐模型和特征工程趋于一体化的今天,特征工程本身就是深度学习模型的一部分。
只有深入了解业务的运行模式,了解用户在业务场景下的思考模式和行为动机,才能精确地抽取出最有价值的特征,构建成功的深度学习模型。
参考:深度学习推荐系统