CTR预估中很多深度学习模型采用三层的原因
在模型结构中,明确设计一些子网络或者子结构,对二阶特征组合、三阶特征组合,甚至更高阶的特征组合进行表征。比如说 DeepFM,Deep 部分就是个典型的 DNN 模型,这个大家基本都会用,而 FM 部分则是明确对特征二阶组合进行建模的子模型。这就是一个典型的显式二阶特征组合的模型。而如果进一步拓展的话,很自然想到的一个改进思路是:除了明确的把特征二阶组合做一个子结构,还可以把特征三阶特征组合,更高阶特征组合…..分别做一个模型子结构。融合这些子结构一起来做预测。这就是显式特征组合的含义,其实这条线的发展脉络是异常清晰的。典型的对高阶特征组合建模的比如 Deep& Cross、XDeepFM 模型等,就是这么个思路。
在两年多前,我一直以为这个方向是 CTR 或者推荐模型的关键所在,而且可能如何简洁融入更多特征组合是最重要且最有前景的方向。但是后来发现可能错了,目前基本对这个方向改变了看法。目前我对这个方向的看法是:这个方向确实很重要,但是未来可挖掘的潜力和空间很有限,在这条路上继续行进,应该不会走得太远。原因在于,目前基本很多经验已经证明了,显式的二阶特征组合是非常重要的,三阶特征组合对不同类型任务基本都有帮助。四阶特征组合已经说不清楚是否有用了,跟数据集有关系,有些数据集合引入显式4阶特征组合有帮助,有些数据集合没什么用。至于更高阶的特征组合,明确用对应的子结构建模,基本已经没什么用了,甚至是负面作用。这说明:我们在实际做事情的时候,其实显式结构把三阶特征组合引入,已经基本足够了。这是为什么说这条路继续往后走潜力不大的原因。