这次学习讲解了wide&deep算法的原理,主要原理是用两种各有优缺点的思路去处理特征。
wide:
思路:通过L1 FTRL使特征矩阵更加稀疏,来找到真正有用的特征。
适用特征:是易于解释的特征,根据业务经验判断和目标相关的特征
优点:使算法产生了记忆性,即把高频共现的特征作为一个特征来学习。结果易于解释
缺点:只能对出现过的特征产生记忆,无法自己创造特征,且发现的结论很可能可以从经验推导得出
deep:
思路:通过dnn抽象高维特征,找到不易于发现的规律
适用特征:不太稀疏的特征,不容易发现规律的复杂特征
优点:使算法产生泛化性,找到不易于发现的规律
缺点:不易于解释,计算量大
将wide和deep结合起来,等于利用了双方各自的优点,达到更好的效果。
思考题
- 在你的应用场景中,哪些特征适合放在Wide侧,哪些特征适合放在Deep侧,为什么呢?
业务逻辑即可判定多个特征的共同作用和目标显著相关的特征放在wide侧,不能人工发现明显规律的,不太稀疏的,或者经过embedding的稀疏特征,适合房在deep侧 - 为什么Wide部分要用L1 FTRL训练?
因为L1 FTRL会让矩阵更加稀疏,而wide侧的计算思路是通过让矩阵稀疏到只有少量特征有权重,来找出有价值的特征 - 为什么Deep部分不特别考虑稀疏性的问题?
因为deep侧要用dnn,必不能使用稀疏的特征