【推荐算法论文阅读】Wide & Deep Learning for Recommender Systems
Wide模块主要负责模型的"信息存储"功能;而Deep模块则专注于实现"灵活适应"目标。这种独特的架构设计使模型实现了优势互补:它不仅能够迅速捕捉和存储大量历史行为特征数据,并且展现出强大的表示能力。
“记忆能力”:模型能够通过直接的学习机制利用历史数据中的物品或强特征的"共现频率"进行信息处理。通常情况下(一般而言),协同过滤以及逻辑回归等基础算法展现出较强的"记忆能力"特性。这类算法由于架构简单且缺乏特征间的深度交互,在接收原始数据时便能直接影响到推荐结果的生成(相当于对历史数据分布规律进行了直接建模),从而产生类似于"若点击过A则推荐B"这样的规则式推荐机制。值得注意的是,在多层神经网络中尽管经过多级特征提取与交互处理(通过多层神经网络不断交叉融合其他特征),但其对原始强特征的记忆程度反而不如简单模型深刻(例如逻辑回归等基础算法一旦识别出这样的强特征,则其相应的权重值会在训练过程中被显著调整)。相反地,在复杂的人工神经网络架构中(如深度学习模型),特征会被多层次变换与交互作用所重塑(经过多次特征提取与交叉融合后),因此在对原始强特征的记忆程度上反而会弱于基础算法。
“概括力”:衡量模型在传播特征信息方面的有效性以及识别罕见且未见过的特殊特征与其最终标签之间关联的能力。对比实验表明,在协同过滤任务中矩阵分解展现出更强的概括力优势:MF通过引入隐向量构建潜在表示空间,在面对数据极度稀缺的用户或物品时仍能有效生成嵌入表示并计算推荐评分;这体现了其通过全局数据信息推断局部缺测实例的能力从而显著提升概括力表现。进一步研究表明,在深度学习框架下神经网络模型凭借多层次非线性变换揭示潜在数据结构;即使面对高度稀疏的输入特征向量也能输出具有较高稳定性的推荐概率预测结果。

单层的Wide组件专长于高效处理海量稀疏编码型特征;而Deep组件借助神经网络的强大表示能力,在进行深层次的特征交互的同时深入挖掘数据潜在结构。

以图展示了Google Play推荐模型;其中Deep模块接收完整的特征向量作为输入;该输入包含了如用户年龄、设备类型以及各类应用行为等关键属性;其中类别型属性如已安装应用与曝光应用等则需先通过嵌入层将这些属性编码为1200维向量;随后通过三层ReLU全连接网络逐步处理;最后将此嵌入向量化信息传递到LogLoss损失函数中作为预测输出
Wide部分的输入仅包含用户已安装的应用以及正在被曝光的应用两类特征数据。其中,“用户已安装的应用”反映了用户的使用历史行为记录,“可供推送的应用列表”则代表当前待推荐的应用信息。选择这两种类型的特征主要是因为Wide模块具有强大的记忆功能优势。
在整体层面将注册用户数量与展示次数这两个特征进行组合运算的行为被称为交叉积变换:

c_{ki}被定义为布尔变量,在第k个组合特征中包含第i个特定特性的情况下其对应的系数设为1其余情况则设为0;其中x_i表示该特性的具体取值。举个例子说明对于"AND(user_installed_app=netflix, impression_app=pandora)"这个组合特征而言只有在user_installed_app=netflix和impression_app=pandora这两个条件都满足即两个特性都取值1的情况下交叉积变换层才会输出1其他情况下则输出0。
该特征经过one-hot编码后形成组合特征,在实际应用中可以通过计算两个二值向量的乘积来生成组合特征。例如,在具体实现时可以将每个样本分别表示为两个d维向量:user_installed_app被编码为[1, 0, 0, 0, 0, 1, 1, 0];impression_app则被编码为[0, 1, 0, 0, 1, 0, 0, 0]。随后将这两个d维向量进行矩阵乘法运算得到一个d×d维度的空间中的矩阵,并将其展开为一个向量即可实现交叉乘积累计效应的操作。由此可知Cross-product变换可以在二值特征中捕获交互信息并提升模型的非线性能力
在完成特征组合后(经过交叉积变换层的操作后),Wide分支将整合特征并将其传递给LogLoss层,并与来自Deep分支的信号协同作用于目标优化过程

在训练阶段中采用具有L1正则项的FTRL模型对Wide部分进行优化,并对Deep模型采用AdaGrad算法
