推荐系统在电商等平台使用广泛,这里讨论wide&deep推荐模型,初始是由google推出的,主要用于app的推荐。
- 概念理解
Wide & Deep模型,旨在使得训练得到的模型能够同时获得记忆(memorization)和泛化(generalization)能力:
记忆(memorization)即从历史数据中发现item或者特征之间的相关性。
泛化(generalization)即相关性的传递,发现在历史数据中很少或者没有出现的新的特征组合。
具体到模型定义角度,wide是指广义线性模型(Wide Linear Model)deep是指深度神经网络(Deep Netural Network)
模型结构图如下:
两者区别:
Memorization趋向于更加保守,推荐用户之前有过行为的items。相比之下,generalization更加趋向于提高推荐系统的多样性(diversity)。
Wide & Deep包括两部分:线性模型 + DNN部分。结合上面两者的优点,平衡memorization和generalization。
- 模型训练
训练方法是用mini-batch stochastic optimization。
Wide部分是用FTRL(Follow-the-regularized-leader) + L1正则化学习。
Deep部分是用AdaGrad来学习
- Embedding维度大小
在Deep模型中需要将稀疏矩阵进行embedding,Wide&Deep的作者指出,从经验上来讲Embedding层的维度大小可以用公式来确定:
n是原始维度上特征不同取值的个数;k是一个常数,通常小于10.
- 代码实践
(未完待续)