推荐系统:
检索:机器学习模型+人工规则,根据Item特征和query生成候选集。
排序:wide&deep模型对候选集中的query-Item对进行打分排名。
排序模型:
模型原理:
- wide:广义线性模型:
优点:简单、扩展性好、可解释性好。利用分类特征及其交叉特征可以很好的实现对共现特征对的记忆,挖掘历史信息中的相关特征或Item。
缺点:依赖大量的人工特征工程。要实现泛化需要通过更粗粒度特征的交叉,交叉转换的限制在于不能挖掘之前没有出现过的组合。
基于记忆的推荐通常与历史出现的Item更具有相关性。 - deep:神经网络:
优点:只需要很少的特征工程就能实现良好的泛化能力,通过学习到的稠密embedding向量挖掘深层次的关联,推荐之前未出现过的特征组合。
缺点:当输入时稀疏的以及高秩的,容易出现过度泛化。比如用户具有特殊偏好或者产品具有窄的受众面时,此时应该大多数的query-Item对是没有关联的,但是由于embedding层学到的稠密向量导致所有的query-Item预测不为0,从而推荐很少相关的Item。
基于泛化的推荐通常更具有多样性。 - wide&deep:
wide部分仅仅需要少量的交叉特征用来弥补神经网络的不足,不需要全尺寸的线性回归。
实现细节
联合训练:同时loss优化两部分的权重
wide:FTRL+L1
deep:adamGrad数据处理
类别特征字符串
连续特征:归到(0-1)
具体为: x->累计分布函数 ->然后分档进行离散化到各区间-(所在区间-1)/(总区间数-1)
- 训练
每个类别embedding维数设置为32维
批量
并行化
热启动:叠加训练