特征工程介绍
- 推荐系统就是利用用户信息、物品信息、场景信息这三大部分有价值数据,通过构建推荐模型得出推荐列表的工程系统。而特征工程就是利用工程手段从用户信息、物品信息、场景信息中提取特征的过程。
- 推荐系统特征其实是对某个行为过程相关信息的抽象表达。因为一个行为过程必须转换成某种数学形式才能被机器学习模型所学习,为了完成这种转换,就必须将这些行为过程中的信息以特征的形式抽取出来。计算机只能识别一些数字信息,是没法识别行为相关信息的。这个也是为什么要去做特征工程的一个重点。
- 从具体行为信息转化成抽象特征的过程,往往会造成信息的损失,这又是为什么呢?
- 具体的推荐行为和场景中包含大量原始的场景、图片和状态信息,保存所有信息的存储空间过大,无法实现。
- 具体的推荐场景中包含大量冗余的、无用的信息,把它们都考虑进来甚至会损害模型的泛化能力。
特征工程的原则
- 由于信息量太大,构建特征工程的原则就是尽可能地让特征工程抽取出的一组特征,能够保留推荐环境及用户行为过程中的所有“有用“信息,并且尽量摒弃冗余信息。
- 以推荐系统中最常见的电影项目为例,影响因素从高到低排序:电影类型我是否感兴趣、电影是不是大片、导演和演员我是否喜欢、电影海报是否吸引人、我是否已经观看过该影片以及我当时的心情。如下表:

- 所以在已有的、可获得的数据基础上,“尽量”保留有用信息是现实中构建特征工程的原则。
推荐系统中常用的特征
- 用户行为数据
用户行为数据(User Behavior Data)是推荐系统最常用,也是最关键的数据。用户的潜在兴趣、用户对物品的真实评价都包含在用户的行为历史中。用户行为在推荐系统中一般分为显性反馈行为(Explicit Feedback)和隐性反馈行为(Implicit Feedback)两种,在不同的业务场景中,它们会以不同的形式体现。 - 用户关系数据
用户关系数据(User Relationship Data)就是人与人之间连接的记录。毫无疑问它是非常值得推荐系统利用的有价值信息。通常可以分为强关系与弱关系,显性与隐性。例如,建立好友为,互相关注为强关系,视频点赞为弱关系等。 - 属性、标签类数据
推荐系统中另外一大类特征来源是属性、标签类数据,这里我把属性类数据(Attribute Data)和标签类数据(Label Data)它们本质上都是直接描述用户或者物品的特征。属性和标签的主体既可以用户,又可以是物品。
补充说明:推荐系统使用属性、标签类数据,一般是通过 Multi-hot 编码的方式将其转换成特征向量,一些重要的属性标签类特征也可以先转换成 Embedding,例如业界最新的做法是将标签属性类数据与其描述主体一起构建成知识图谱(Knowledge Graph),在其上施以 Graph Embedding 或者 GNN(Graph Neural Network,图神经网络)生成各节点的 Embedding,再输入推荐模型。 - 内容类数据
内容类数据(Content Data)可以看作属性标签型特征的延伸,同样是描述物品或用户的数据,但相比标签类特征,内容类数据往往是大段的描述型文字、图片,甚至视频。一般来说,内容类数据无法直接转换成推荐系统可以“消化”的特征,需要通过NLP、CV等技术手段提取关键内容特征,再输入推荐系统。 - 场景信息(上下文信息)
场景信息或上下文信息(Context Information)是描述推荐行为产生的场景的信息。最常用的上下文信息是“时间”和通过 GPS、IP 地址获得的“地点”信息。在实际的推荐系统应用中,由于一些特殊场景特征的获取极其困难,我们更多还是利用时间、地点、推荐页面这些易获取的场景特征。
版权声明:本文为sinat_31854967原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。