推荐系统特征构建包含4项工作:数据理解、数据处理、特征构建和特征选择。推荐系统特征构建就是特征工程建设过程,输入为业务元数据,输出为特征标签和特征向量。只要元数据发生变化,对应的特征标签处理流程需要激活,执行特征标签更新任务。特征工程处理环节以流水线方式串行工作:对业务元数据处理,构建特征标签,经降维处理后,转化为机器学习模型能够识别的数学表达式。
图 特征标签构建流程
数据理解:数据理解环节本质是熟悉业务和理解业务数据字段的属性含义。推荐系统使用的特征标签一定要明确反应业务属性,尤其是个性化特点十足的业务属性。特征标签是对业务一个属性或者多个属性的精确全面描述,能够反映业务运行的方方面面。数据理解就是推荐系统数据工程师与业务专家的合作沟通,从数据角度理解业务场景,基于业务属性去设计特征标签。推荐系统特征工程的输出结果是商品特征标签、用户特征标签和场景特征标签。
数据处理:对原始数据进行标准化、归一化、离散化处理,剔除异常值,弥补空缺值,过滤无用值、野点值和重复值。由于数据量纲不同,数据大小范围不同,数据物理含义不同,所以在进行数据建模之前需要统一处理,保证用于特征构建的数据在统一规则下生产。
特征构建:基于采集的元数据生成用户特征标签、商品特征标签和场景特征标签。推荐建立在用户特征与商品特征的匹配基础上。想要推荐的商品列表得到用户认可,就必须挖掘用户感兴趣的商品特征。推荐系统构建的特征标签不是一个标签,而是一系列标签,称为标签体系。标签体系中每一个特征标签都有自己明确的业务特征属性,特征标签数量越多说明解析业务场景的角度就越多,认知就越全面,反映的业务特点就越多。
特征选择:送入机器学习模型的特征标签并非构建的全部特征标签,需要从中选择有代表性的、个性特点突出,标签数据统计特性明显的特征作为最终输出。从业务角度梳理的特征标签,有些特征标签是冗余的,有些特征标签是与分类无关,有些特征标签相互之间是相关的。所以需要算法和策略,从庞大的特征体系中找到有价值的特征。
特征评估:对特征选择结果的整体表现效果和性能的评价。特征工程构建的特征向量最终目的是提供给机器学习模型使用。模型性能表现好,说明输入模型的特征性能不错;如果模型性能表现不好,到底是机器学习模型的参数问题还是输入模型的特征本身缺陷。通常采用对比方法来完成评估特征的表现性能。在数据基础和机器学习模型确定的前提下,改进特征和特征编码,将其输入到机器学习模型,记录模型的表现性能,选择模型性能最佳时对应的特征和特征编码作为机器学习模型的输入。特征改进从特征的提取方式和编码方式入手。提取的特征是否覆盖了必要的属性特点,是否具备个性化特点,是否存在客观的解释性。特征编码是否合理的反映的业务场景下的属性特征,有没有固有缺陷或偏向。
推荐系统特征工程不同于大数据特征工程,推荐系统特征工程服务于推荐任务,与推荐工作无关的特征标签没必要引入推荐系统。推荐系统特征标签构建除了关注业务应用场景,还需要关注机器学习算法模型。特征标签是机器学习模型的输入,必须清楚模型算法对输入参数的要求。Bayes模型和LR 模型要求输入的特征标签相互独立,需要我们解决输入特征标签的正交性问题。 FM 模型自动解决特征组合的问题,直接输入原始特征标签即可。协同过滤算法模型输入数据为使用用户行为数据,不需要用户特征标签和商品特征标签数据。