広い&深い進化のモデル

推奨システムモデルの進化

LR - > GBDT + LR

FM - > FFM - > GBDT + FM | FFM

FTRL - > GBDT + FTRL

ワイド&DeepModel(ディープ学習時代)

モデルから、次の4つの側面を分析します:

1.why(モデルの設計原理)

2.how(特にどのように設計するか、適用する方法)

考察(モデル・ディスカッション)

ワイド&ディープ

  • なぜ

暗記和汎化

あなたがお持ち帰り推薦システムのGUGUを設計し、ユーザーがお持ち帰りポイントを覚ますためにベッドに行く必要がある場合は購入したユーザを1としてマークされている場合、推薦システムは、それ以外の場合は0(説明が良い勧告ではありません)、バーベキュー食事のユーザーにお勧めします。推定CTRは、次の行推薦システムインジケータの尺度です。

ワイド(暗記)

次に、どのようにユーザーのために適切な製品を行うには、我々はユーザーの好みを覚えておく必要があります。だから、あなたはgugu2.0上の特定の製品ラインの確率を予測するモデルをクリックして、再学習これらの機能の正しい組み合わせを単純な線形モデルでいくつかの関連する特徴を設計します。時間が経つにつれて、食べるのに疲れユーザーは、我々は味を変更する必要がありますが、モデルは、特定のパターンを覚えています。トレーニングセット内に存在しない機能のいくつかの組み合わせは、モデルが見られないので、単一のモデルにつながる、この機能に関する情報を記憶していない、ユーザーが満足されます。

深い(一般化)

ユーザーの前にいくつかの新しい食品や食品関連のポイントをお勧めしますが、味にするためにはありません同じです。モデルはすべての食品との間の固有のリンクを捕捉できるようにする必要があり、通常の離散機能が同じであってもよい埋め込むいくつかの次元で食品と同様の方法の離散的特徴、緻密な低次元のベクトル表現の導入を埋め込み、この要件を満たすことができません。そのような四次元で表さ埋め込んだ後唾液鶏および鶏コショウ、[チキン、スパイシー、麻、甘い]として

[0.52,0.23,0.312,0.002] [0.52,0.23,0.45,0.002]

密ベクトル埋め込みを使用した後、完全に異なる食品の類似性を利用することができ、新しい合理的な勧告、また、モデルの汎化能力を学習の深さは見られない機能のために使用する前に学習フィードフォワードニューラルネットワークを作ることができますあなたは予測が良いことができます。しかし、あなたは、ユーザーの行動がまばらであるときモデルより-一般化は、GUGUは少なく、いくつかの関連する食品をお勧めしますことがわかります。

ワイド+深いです

なぜそれを同じ時間暗記と一般化で?ワイド&ディープ二つのモデル共同訓練の利点を用いて、線形及び奥行きモデルを組み合わせます。

  • どうやって

入力

ワイド:それが機能し、スパースクロスタイプの他のタイプを含んでいます。手動入力機能と、元のクロス機能

深い:機能と特徴埋め込み後のタイプの本当の価値を含め、緻密な機能、

トレーニング

ワイド:\(Y = WX + B \)

深い:\(^ {(L + 1)} = F(W ^ {(L)} ^ {(L)} + B ^ {(L)})\)

関節:\(P(Y = 1 | \ mathbf {X})= \シグマ\左(\ mathbf {W} _ {広い} ^ {T} [\ mathbf {X}、\ PHI(\ mathbf {X} )] + \ mathbf {W} _ {深い} ^ {T} A_ {F} ^ {\左(L_ {F} \右)} + B \右)\)

FTRL + L1で訓練された幅広部; AdaGradとの深い部分が訓練を受けました。共同電車のBPアルゴリズムのトレーニングモード。

  • 討論

1.深い埋め込み離散用手動広いクロス、広くて深い特徴の組み合わせの使用、

2.自動クロス特徴、幅広部を改善、DeepFM、DCN

3.embeddingオンライントレーニング、オフラインで事前訓練の可能性を得ます

4.deep部分の改善、AFM

DCN

  • なぜ

FM自動機能の組み合わせ、それは二次外積に限定されます。機能の別れの人工機能の組み合わせ、および自動学習高次組み合わせて

\(x1x2x3\)

  • how

拟合残差
\[ \mathbf{x}_{l+1}=\mathbf{x}_{0} \mathbf{x}_{l}^{T} \mathbf{w}_{l}+\mathbf{b}_{l}+\mathbf{x}_{l}=f\left(\mathbf{x}_{l}, \mathbf{w}_{l}, \mathbf{b}_{l}\right)+\mathbf{x}_{l} \]

  • discussion
  1. 显示的高阶特征组合,特征组合阶数随着网络深度增加而增加

  2. 复杂度线性增长,相比DNN更快

  3. 利用最后的高阶组合特征,实际高层特征组合已经包含了低层的组合,考虑单层的组合引入最后的计算

  4. 特征交互还是bit-wise,对模型记忆能力提升是否有帮助

  5. 是否真的学到了高阶特征交互?输出是输入的标量乘积

xDeepFm

  • why

传统特征工程缺点:

1.好的特征需要专家知识

2.大数据量下无法无法手动交叉特征

3.手动交叉特征的无法泛化

FM对所有特征组合,引入噪声;FNN、PNN聚焦于高阶特征,忽略了低阶特征;

DNN学习高阶特征交互,但是学习到特征交互是隐含的,bit-wise级的,那么DNN是否真的有效在高阶特征处理上?CIN被设计在vector-wise级进行学习高阶特征

embedding: 不同样本的长度不同,但embedding维度是一样的

隐式高阶特征:bit-wise

显示高阶特征交互: DCN,输出受限于和x0的交互、bit-wise

CIN(Compressed Interaction Network(CIN))

CIN没有有效的学习到高阶特征交互,输出是x0的标量乘积
\[ \begin{aligned} \mathrm{x}_{i+1} &=\mathrm{x}_{0} \mathrm{x}_{i}^{T} \mathrm{w}_{i+1}+\mathrm{x}_{i} \\ &=\mathrm{x}_{0}\left(\left(\alpha^{i} \mathrm{x}_{0}\right)^{T} \mathrm{w}_{i+1}\right)+\alpha^{i} \mathrm{x}_{0} \\ &=\alpha^{i+1} \mathrm{x}_{0} \end{aligned} \]
但是标量并不意味着线性!!!

  • how

bit-wise到vector-wise

显示交互

复杂度非指数级增长
\[ \mathrm{X}_{h, *}^{k}=\sum_{i=1}^{H_{k-1}} \sum_{j=1}^{m} \mathrm{W}_{i j}^{k, h}\left(\mathrm{X}_{i, *}^{k-1} \circ \mathrm{X}_{j, *}^{0}\right) \]

前一层[公式] 中的 [公式] 个vector,与输入层 [公式] 中的 [公式] 个vector,进行两两Hadamard乘积运算,得到 [公式] 个 vector,然后加权求和

[公式] 层的不同vector区别在于,对这[公式] 个 vector 求和的权重矩阵不同。 [公式] 即对应有多少个不同的权重矩阵 [公式]

1.为什么做Hadamard积

保持维度不变

2.vector-wise交互

网络的每一层计算是以embedding向量的方式进行哈达玛积,保持embedding的结构

3.每一层的输出由当前输入和隐状态共同决定,类RNN

4.类CNN(装饰)

sum pooling 有效性:\(p_{i}^{k}=\sum_{j=1}^{D} \mathrm{X}_{i, j}^{k}\)

当只有一层,sum pooling就是两两向量的内积之和,降为FM

组合

\[ \hat{y}=\sigma\left(\mathbf{w}_{\text {linear}}^{T} \mathbf{a}+\mathbf{w}_{d n n}^{T} \mathbf{x}_{d n n}^{k}+\mathbf{w}_{\operatorname{cin}}^{T} \mathbf{p}^{+}+b\right) \]
线性单元、DNN、CIN;记忆、泛化、记忆+泛化

1.CIN如何显示的执行特征交互

2.必须组合显示和隐式表达吗

3.xDeepFm参数设置影响

  • discussion

1.特征交叉利用稠密向量进行,是否存在一个网络进行离散高阶向量级特征交互

2.交互深度改进,残差,全局信息观

3.identify激活函数,线性?

bit-wise VS vector-wise

假设隐向量的维度为3维,如果两个特征(对应的向量分别为(a1,b1,c1)和(a2,b2,c2)的话)在进行交互时,交互的形式类似于f(w1 * a1 * a2,w2 * b1 * b2 ,w3 * c1 * c2)的话,此时我们认为特征交互是发生在元素级(bit-wise)上。如果特征交互形式类似于 f(w * (a1 * a2 ,b1 * b2,c1 * c2))的话,那么我们认为特征交互是发生在特征向量级(vector-wise)。

explicitly VS implicitly

显式的特征交互和隐式的特征交互。以两个特征为例xi和xj,在经过一系列变换后,我们可以表示成 wij * (xi * xj)的形式,就可以认为是显式特征交互,否则的话,是隐式的特征交互。

おすすめ

転載: www.cnblogs.com/gongyanzh/p/12098348.html