什么是特征工程?
简单来说,推荐系统中的特征工程就是从用户信息、项目信息和相关的辅助信息(如场景、地理位置等)中提取特征的过程。听起来是不是感觉很简单,但是实际操作起来有种无从下手的感觉。
我们知道推荐模型接受的是数值型的向量,而用户信息中的年龄、历史行为往往不是数字。怎么将这些不是数字的信息处理成模型能够识别的向量表示呢?当你处理用户信息、项目信息和辅助信息时,如何知道那些特征是有效的呢?
因此,我们需要知道构建特征工程的基本原则,只有理论的指导才能更好的实现。我们来看看特征工程的基本原则或者基本规律有哪些吧!
构建特征工程的基本原则是什么?
特征是将具体行为/事物抽象化的过程。我们知道将一个行为转换为数字形式才能被模型学习,为了完成这个转换,我们必须将这些具体行为抽象化数值表示。
例如,我们知道用户的性别可以分为男、女和未知。但是推荐模型无法直接识别这三类。因为推荐模型只能识别数值,所以我们需要将这些非数字转为数字。如用1,2,3分别表示男、女和未知,这样推荐模型就能认识了。
但是,将这些具体的信息转为抽象的数值,往往会造成数据信息的丢失。
一、原始的具体行为数据往往很大,存储困难,保留所有的信息存储过大。
二、这些原始的数据中往往存在大量的冗余的、无用的信息,如果把它们喂给模型,可能会损害模型的泛化能力。
综述两点,我们构建推荐系统特征工程的原则:尽可能地让特征工程抽取出的一组特征, 能够保留推荐环境及用户行为过程中的所有“有用“信息,并且尽量摒弃冗余信息。
例如在电影推荐场景中,影响你挑选哪部电影的因素的重要性。我想按照重要性由高到低排序就是,电影类型我是否感兴趣、电影是不是大片、导演和演员我是否喜欢、电影海报是否吸引人、我是否已经观看过该影片以及我当时的心情。
用表格的形式把它们特征化的方法列举了出来:
电影推荐的要素和特征化方式
比如,如何知道一个用户是否对这个电影的类型(动作、喜剧、 爱情等)感兴趣。一般来说,我们会利用这个用户的历史观看记录来分析他已有的兴趣偏好,这个兴趣偏好可能是每个电影类型的概率分布,比如动作 45%、喜剧 30%、爱情 25%。也可能是一个通过 Embedding 技术学出来的用户兴趣向量。
这个时候,我们就可以根据这个电影本身的特征,计算出用户对电影的感兴趣程度了。 不过,并不是所有的要素都能特征化。比如,“自己当时的心情”这个要素就被我们无奈地舍弃了,这是因为我们很难找到可用的信息,更别说抽取出特征了;再比如,“电影海报是否吸引人“这个要素,我们可以利用一些图像处理的方法提取出海报中的某些要点 (比如海报中有哪些演员?是什么风格?),但想面面俱到地提取出海报中所有的图像要素,几乎是不可能的。
因此,在已有的、可获得的数据基础上,“尽量”保留有用信息是现实中构建特征工程的原则。
推荐系统中常用的特征有哪些?
推荐系统中常用的特征有五大类:
1、用户行为数据
用户行为数据是推荐系统最常用,也是最关键的数据。用户的潜在兴趣、用户对物品的真 实评价都包含在用户的行为历史中。用户行为在推荐系统中一般分为显性反馈行为 (Explicit Feedback)和隐性反馈行为(Implicit Feedback)两种。
不同业务场景下用户行为数据的例子
在当前的推荐系统特征工程中,隐性反馈行为越来越重要,主要原因是显性反馈行为的收集难度过大,数据量小。在深度学习模型对数据量的要求越来越大的背景下,仅用显性反馈的数据不足以支持推荐系统训练过程的最终收敛。所以,能够反映用户行为特点的隐性反馈是目前特征挖掘的重点。
2. 用户关系数据
我们常说的那句话“物以类聚,人以群分”,用户关系数据毫无疑问是非常值得推荐系统利用的有价值信息。用户关系数据也可以分为“显性”和“隐性”两种,或者称为“强关系”和“弱关系”。 如图所示,用户与用户之间可以通过“关注”“好友关系”等连接建立“强关系”,也 可以通过“互相点赞”“同处一个社区”,甚至“同看一部电影”建立“弱关系”。
社交网络关系
在推荐系统中,利用用户关系数据的方式也是多种多样的,比如可以将用户关系作为召回 层的一种物品召回方式;也可以通过用户关系建立关系图,使用 Graph Embedding 的方 法生成用户和物品的 Embedding;还可以直接利用关系数据,通过“好友”的特征为用户 添加新的属性特征;甚至可以利用用户关系数据直接建立社会化推荐系统。
3. 属性、标签类数据
属性、标签本质上都是直接描述用户或者物品的特征。属性和标签的主体 可以是用户,也可以是物品。它们的来源非常多样,大体上包含图中的几类。
属性、标签类数据的分类和来源
在推荐系统中使用属性、标签类数据,一般是通过 Multi-hot 编码的方式将其转换成特征 向量,一些重要的属性标签类特征也可以先转换成 Embedding,比如业界最新的做法是将标签属性类数据与其描述主体一起构建成知识图谱(Knowledge Graph),在其上施以Graph Embedding 或者 GNN(Graph Neural Network,图神经网络)生成各节点的 Embedding,再输入推荐模型。
4. 内容类数据
内容类数据往往是大段的描述型文字、图片,甚至视频。一般来说,内容类数据无法直接转换成推荐系统可以“消化”的特征,需要通过自然语言处理、计算机视觉等技术手段提取关键内容特征,再输入推荐系统。
5. 场景信息(上下文信息)
上下文信息是描述推荐行为产生的场景的信息。根据推场景的不同,上下文信息的范围极广。最常用的上下文信息是“时间”和通过 GPS获得的“地点”信息。场景特征描述的是用户所处的客观的推荐环境,任何影响用户决定的因素都 可以当作是场景特征的一部分。但在实际的推荐系统应用中,由于一些特殊场景特征的获 取极其困难,我们更多还是利用时间、地点、推荐页面这些易获取的场景特征。