了解谷歌广而深的“广”部分

数据挖掘 神经网络 深度学习 张量流 推荐系统
2022-03-02 20:25:08

谷歌广泛而深入的推荐模型听起来很酷,但我很难相信我掌握了广泛的部分,所以想检查一下我的理解。

他们的论文说:

Wide 组件包括用户安装的应用程序和印象应用程序的跨产品转换

每个示例对应一次展示

假设我们有 5 个应用程序,从 A 到 E。我的理解是,交叉乘积转换将表示为 20 列,代表installedimpressed应用程序的每个可能组合(有 25 个,但大概是 5 个“匹配”交叉乘积,例如and(installed=App_A, impressed=App_A)将被删除,因为大概谷歌足够聪明,不会给用户已经拥有的应用程序留下深刻印象)。假设我们有 3 个用户,称为 X - Z。X 安装了应用 A 和 C,显示应用 B 和 D。Y 安装了应用 B,显示 A 和 E。Z 安装了应用 A、C 和 D并显示应用程序 B 和 E。使用该数据集,交叉产品转换应该看起来(我认为)如下所示:

在此处输入图像描述

我的问题是;我对那里的转换的理解正确吗?如果是这样,那将在相当短的时间内形成一个巨大的矩阵,特别是考虑到他们拥有超过十亿用户和一百万个不同的应用程序。

1个回答

实际上,您将拥有一个大而非常稀疏的矩阵。其中两个重要的概念是:

  • 功能交叉:您有两个分类功能(此处印象深刻并已安装),并且您对两者进行了 carthesian 产品以创建一个新功能(就像您在此处所做的那样)。问题是交叉生成稀疏矩阵(如您在示例中所见)

神经网络在密集、相关的特征上表现良好,而线性模型在稀疏和低相关的特征上表现更好。您的交叉特征稀疏且相关性低,这导致了第二个概念:

  • 广泛而深入的网络:由于您的数据集是密集特征(连续特征)和稀疏(交叉)之间的混合,您可以将网络分成两部分:稀疏将直接发送到您的输出,因此被视为线性模型,而您的密集特征将在输出之前经过几个隐藏层。

宽的部分表现得就像一个线性模型(你也可以使用稀疏矩阵微积分来加速它),而深的部分就像一个传统的神经网络,你可以两全其美。鉴于数据集的大小(十亿用户 x 百万应用程序),将部分数据视为稀疏输入将加速训练和推理。

我比你问的更进一步,但我认为这可能会有所帮助。