本文为“wide & deep 模型在贝壳首页二手房推荐场景中的实践”阅读笔记。
无论在哪个推荐领域,推荐系统面临的一个共同挑战是如何同时满足推荐结果的准确性和多样性。准确性要求推荐的内容与用户高度相关,推的精准;多样性则要求推荐内容更加新颖,让用户具有新鲜感。设计合理的推荐策略,兼顾内容准确性和多样性,提升线上推荐效果,一直是我们算法同学的工作重点。
1. wide & deep 模型概述
1.1 概述
目前W&D模型已经开源,并且在TensorFlow上提供了高级API。文中设计了一种融合浅层模型(wide)和深层模型(deep)进行联合训练的框架,综合利用浅层模型的记忆能力和深层模型的泛化能力,实现单模型对推荐系统准确性和多样性的兼顾。
W&D模型包括wide模型(一个广义线性模型)和deep模型(一个前馈神经网络)。其思想来源是,模仿人脑有不断记忆并且泛化的过程,将线性模型(用于记忆)和深度神经网络模型(用于泛化)相结合,汲取各自优势,使得训练得到的模型能够同时兼顾记忆与泛化能力,从而达到整体效果的最优。
Memorization:模型能够从历史数据中学习到高频共现的特征组合,发掘特征之间的相关性,通过特征交叉产生特征相互作用的“记忆”,高效可解释。但要泛化,则需要更多的特征工程。
Generalization:代表模型能够利用相关性的传递性去探索历史数据中从未出现过的特征组合,通过embedding的方法,使用低维稠密特征输入,可以更好的泛化训练样本中从未出现的交叉特征。
1.2 Wide部分
wide就是LR线性模型,主要用作学习样本中特征的共现性,达到 “记忆” 的目的。特征集合包括原始特征和转换后的特征,其中交叉特征在wide部分十分重要,能够捕捉到特征间的交互,因此通常会对稀疏的特征进行交叉特征转换。通过特征之间的交叉变换,便捕获了二元特征之间的相关性,为广义线性模型增加了非线性。
1.3 Deep部分
deep是一个前馈神经网络,其输入通常是一些稠密的连续特征,对于一些高维的稀疏特征(id类等特征),首先会转换成低维且稠密的向量,也就是embeding vector,然后将这些特征拼接成一个大的稠密矩阵,再喂入第一层,在训练过程中通过优化损失函数不断迭代更新。