京东推荐系统中的兴趣拓展如何驱动业务持续增长( 四 )


基于维度关系建模的泛化兴趣排序接下来 , 我们来讲一下CTR 预估 。
京东推荐系统中的兴趣拓展如何驱动业务持续增长文章插图
CTR 预估这块我们面临问题都是一样的 , 都是存在大量的中长尾商品 。 因为电商这两年大家都在讲下沉 , 下沉之后 , 我们会有越来越多的新用户拉进来 , 不管是从商品的纬度 , 还是从用户的纬度 , 都会有大量的缺少行为的用户和商品 。 那么如果说你只是把它召回回来 ,CTR 预估给它打的分还是低或者不准 , 那么召回来也是无用的 。 所以我们在模型方面要做同样的一些能力去保证我们对于用户行为缺少的这些商品和用户 , 也能够做合理的打分 , 这里介绍下我们所做的一个创新 。
京东推荐系统中的兴趣拓展如何驱动业务持续增长文章插图
我们可以先来看一下左边的这个图 , 通常我们的模型结构都是这样的 。 最底下一层是用户行为类的特征 , 分为用户类的、商品类的、以及用户和商品之间的一些交叉的特征 。 那么最简单 , 最早期 , 大家的做法就是把这些特征转成一个 embedding 向量 , embedding 向量再 concat 一起 , 就直接进入到神经网络层 。
最近 , 大家觉得这个 Concat 做得比较糙 , 通常的做法不再是横着 Concat , 而是把它组成一个矩阵 。 这个矩阵进去之后 , 在特征的纬度之间 , 大家可以看到右边这个图 , 就是通常的 FM , 或者 FMM , 或者一些常用的方法 , 这些都是我们在不同的特征之间去建立关联 。 我们的创新是在不同的纬度之间也建立同样的关联 , 去构建纬度之间的关系 , 就是想把这个 embedding 的特征刻划得更精细一些 , 以提升整个模型的表达和泛化能力 。
京东推荐系统中的兴趣拓展如何驱动业务持续增长文章插图
上图就是我们构建出来 DRM 模块 。 左边是实现的过程 , 可以看到 , 其实过程并不复杂 。 上面是矩阵 , 这个矩阵其实就是一个 self attention 的过程 , 下面只是一个这个支链的边 , 能够保证模型的迭代、收敛会更快 , 所以这是一个特别简单的通用的组件 。
大家可以看下右边的图 , 右边是我们把它嵌到模型里的过程 , 最左边还是 sparse 的特征 , 后面跟着 embedding 然后是 DRM 这个纬度的模型 , 后面接的通畅深度网络 , 所以它是一个特别通用的模型 , 在任意的模型里 , 这个操作都是可以内嵌进去的 。
京东推荐系统中的兴趣拓展如何驱动业务持续增长文章插图
上图是嵌进之后 , 模型泛化能力的表现 。 我们从两个纬度来看 , 第一个纬度是模型的 AUC 和它的 loss 的情况 , 图中横坐标是 embedding 纬度 , 纵坐标是 AUC 和 Loss 。 可以看到很明显的就是 , 通常在没有加 DRM 这层的情况下 , 随着 embedding 纬度的提升 , 从模型表现来看 , 可以看到它是进入了一种过拟合的状态 , 它到一定阶段之后 , 纬度增加 , 并不能带来模型效果的提升 , 纬度高到一定的阶段 , 甚至还反而是下降的 。 但是加入这个 DRM 层之后 , 可以看到无论在哪一个纬度 , 带 DRM 层都是要比不带 DRM 层效果好很多 , 而且随着纬度越来越高 , 这个之间的 Gap 会和争议都会越来越大 。
所以我们可以看到 , DRM 层引进之后 , 明显的改变就是对你输入的语言 sparse 特征转换过 embedding 刻画得更精细了 , 模型的泛化能力有了明显的提升 , 尤其是在 embedding 纬度高的时候 , 它能够明显地解决原有模型的过拟合的现象 。
图的右边是我们对进模型之前和进模型之后的特征变化的一个可视化 。 图中 , 绿色的是正例 , 蓝色的是负例 , 上面是进 DRM 之前 , 下面是进 DRM 之后 。 大家可以明显看到 , 过完我们的 DRM 模块之后 , 正例和负例明显有了更大的区分性 。 这个在我们系统中上线了之后效果也非常明显 , 我们多样性的指标 AB Test 相对提升了五个点 。