Wide&Deep
记忆能力:模型直接学习并利用历史数据中物品或特征的“共现频率”的能力。
- 高频、常见的特征
泛化能力:模型传递特征的相关性,以及发掘稀疏甚至从未出现过的稀有特征与最终标签相关性的能力。
不应该进 DNN,进入 DNN 之后没有记忆性。
Wide 侧
- 人工特征工程
- 只输入已安装应用以及曝光应用
为什么现在搜索排序或者推荐不常用这种架构?#card
+
[[Code]]
tf.estimator.DNNLinearCombinedClassifier- 稀疏特征向量如何乘以一个稠密的权重矩阵
- One-Hot-Encoding
- Multi-Hot-Encoding
tf.sparse.SparseTensor(indices, values, dense_shape)dense_shape 需要指定原始 tensor 的尺寸- [[Tensorflow]]
tf.sparse_tensor_dense_matmul(sp_a, b, ……)- 特征权重默认为 1
tf.nn.embedding_lookup_sparse(params, sp_ids, sp_weights)- tf.nn.embedding_lookup_sparse - 知乎
- 相同 id 取出权重后可以指定聚合方法
- 一个 feature 有多个
<tag, value> - 实际使用
safe_embedding_lookup_sparse - 和
embedding_lookup区别- 处理离散特征只有一个取值的情况。无法处理多个 tag。
- 如何实现两部分使用不同的优化器
group - 特征
_CategoricalColumn_WeightedCategoricalColumn_DenseColumn_EmbeddingColumn
[[Ref]]
- [[@看Google如何实现Wide & Deep模型]]
- 学习 关于Wide&Deep的一些问题记录
- 为什么wide&deep模型用ftrl和adagrad两种优化方法? - 知乎 #card
- wide 部分看成传统的 lr,用 ftrl 可以得到稀疏权重,ftrl 考虑之前每一轮训练的梯度和。
- lr稀疏为了减少特征数量,可以降低计算复杂度
- deep 部分是神经网络,权重是否稀疏不重要,过去样本提供的信息少于最近的样本提供的信息。
- wide 部分看成传统的 lr,用 ftrl 可以得到稀疏权重,ftrl 考虑之前每一轮训练的梯度和。
- 见微知著,你真的搞懂Google的Wide&Deep模型了吗? - 知乎
- Wide 部分大量 id 特征进行交叉,利用 [[FTRL]] 以及 L1 正则过滤稀疏特征。
网络回响
Wide&Deep