Deep&Cross
在Deep&Wide模型之后,有很多工作集中于分别改进Wide&Deep模型的Wide部分或是Deep部分。较典型的工作是2017年斯坦福大学和谷歌研究人员提出的Deep&Cross。
Deep&Cross模型结构
Deep&Cross模型的结构图如下图所示,其主要思路是使用Cross网络替代原来的Wide部分。
设计Cross模型的目的是增加特征之间的交互力度,使用多层交叉层对输入向量进行特征交叉。假设第l层交叉层的输出向量为xl,那么第l+1层的输出向量如下图所示。
可以看出,交叉层操作的二阶部分非常类似于PNN模型中的外积操作,在此基础上增加了外积操作的权重向量wl,以及原输入向量xl和偏置向量bl。交叉层的操作如下图所示。
交叉层在增加参数方面是比较克制的,每一层仅增加了一个n维的权重向量wl(n为输入向量的维度),并且每一层均保留了输入向量,因此输出与输入之间的变化不会特别明显。由多层交叉层组成的Cross网络在Wide&Deep模型中的基础上进行特征的自动化交叉,避免了更多基于业务理解的人工特征组合。同Wide&Deep模型一样,Deep&Cross模型的Deep部分相比Cross部分表达能力更强,使模型具备更强的非线性学习能力。
Wide&Deep模型的影响力
Wide&Deep模型的影响力无疑是巨大的,不仅其本身成功应用于多家一线互联网公司,而且其后续的改进创新工作也延续至今。
Wide&Deep模型能够取得成功的关键在于:
- 抓住了业务问题的本质特点,能够融合传统模型记忆能力和深度学习模型泛化能力的优势。
- 模型的结构并不复杂,比较容易在工程上实现、训练和上线,这加速了其在业界的推广应用。
也是在Wide&Deep模型之后,越来越多的模型结构被加入推荐模型中,深度学习模型的结构开始朝着多样化、复杂化的方向发展。