Tensorflow2-tensorflow-keras-Wide & Deep 模型初識

Introduction

  • Google於2016年發布,可用於分類和回歸模型
    • 其已被應用到Google Play中的應用推薦
  • 將一組數據的訊息以稀特徵密特徵兩種特徵表示,並基於兩種特徵構建模型

稀疏特徵

  • 離散值特徵
    • 從眾多選項中選擇一個
      • 性別、膚色、工作類型等
  • 若能以one-hot編碼表示的話,wide & deep模型就會認為此特徵為稀疏特徵
  • 稀疏特徵之間是可以進行叉乘(組合)的
    • 性別 x 膚色
    • 性別 x 工作累型
  • 叉乘之後的共現信息是可以精確刻畫樣本的,及補全樣本的可能性
    • 實現記憶樣本的效果

優點

  • 有效,廣泛應用於業界
    • 如常遇到重複的樣本,就能快速的並有效的處理
    • 廣告點擊預測

缺點

一般現實中的樣本、物體有太多維度,若將其全部表示成離散特徵,會變得非常巨大

  • 需要人工設計
    • 找出最有效的稀疏特徵
  • 可能過擬合
    • 所有特徵都進行叉乘,相當於記住每一個樣本了
  • 泛化能力差
    • 沒出現過就不會起效果

密集特徵

需要用向量去表達的特徵

  • Ex: 詞表={人工智能,你,他,慕課網}
  • 利用詮釋實數的一個向量來表達一個詞,例如他 = [0.3,0.2,0.6,(n維向量)]
  • 因此便可利用兩向量之間的距離來表達兩個詞之間的距離
    • 男 - 女 = 國王 - 王后
  • Word2vec工具:將詞語轉化成向量的工具

優點

  • 帶有語意的信息,不同向量之間有相關性
  • 兼容沒有出現過的特徵組合
    • 當遇到新樣本時,通過計算向量之間的差距,來衡量兩樣本之間的相似性
  • 更少的人工參與

缺點

  • 過度泛化,導致推薦不怎麼相關的產品

模型結構

Wide vs. Wide & deep

wide and deep vs wide

  • Wide模型

    • 只有一層;因此所有輸入(稀疏特徵;one-hot表示)皆連到輸出單元上
  • Wide & deep模型

    • 模型左半部分為Wide模型;右半部分便為Deep模型

Deep vs. Wide & deep

wide and deep vs deep

  • Deep模型

    • 擁有多層的神經網絡
    • 對於一個輸入的數據(稀疏特徵;Sparse Features),將其表示為一個密集的向量表達(密集特徵;Dense Embeddings)
      • 密集特徵是稀疏特徵的密集向量表達
    • 在Dense Embeddings之上為全連接的神經網絡亦為隱層(Hidden Layers)
    • 最後在連接至輸出層(Output Units)
  • Wide & deep模型

    • 模型左半部分為Wide模型;右半部分便為Deep模型

Google Play商店的模型結構(Wide & deep模型)

googe play wide and deep structure