深層類神經網路模型

上一節將說明如何使用矩陣分解 學習嵌入矩陣分解的限制包括:

  • 使用副業的難易度 (亦即,除了 查詢 ID/項目 ID)。因此,您只能使用 訓練集內的使用者或項目
  • 建議的關聯性。如第 1 行 Colab 熱門商品推薦給所有人 計算相似度量最好 使用者興趣。

深層類神經網路 (DNN) 模型可以解決這些矩陣的限制 。DNN 可以輕鬆整合查詢功能和項目功能 (因為網路輸入層的靈活性), 掌握使用者的特定興趣,並提高 最佳化建議。

建議使用 Softmax DNN

其中一個 DNN 模型為 softmax、 會將問題視為多類別預測問題,其中:

  • 輸入內容即為使用者查詢內容。
  • 輸出結果是機率向量,大小等於 語料庫中的項目,代表與模型互動的機率 每個項目;例如使用者點按或觀看 YouTube 影片。

輸入

DNN 的輸入內容可包含:

  • 稠密功能 (例如自上次觀看以來的觀看時間與時間)
  • 稀疏功能 (例如觀看記錄和國家/地區)

有別於矩陣分解方法,您可以新增側面特徵,例如 年齡或國家/地區。我們將用 x 來表示輸入向量

醒目顯示 softmax 深層類神經網路中的輸入層的圖片
圖 1 輸入層「x」。

模型架構

模型架構會決定模型的複雜度和表達能力。 透過新增隱藏層和非線性活化函式 (例如 ReLU), 模型就能從資料中擷取更複雜的關係不過 增加參數數量也會讓模型 訓練成本較高我們會將最後一個隱藏的輸出內容 加入 ψ(x)Rd圖層。

這張圖片醒目顯示 softmax 深層類神經網路中的隱藏層
圖 2. 隱藏層的輸出內容 ψ(x)

Softmax 輸出:預測機率分佈

該模型透過 softmax 對應最後一層 ( ψ(x)) 的輸出內容 納入機率分佈 p^=h(ψ(x)VT)的流程,其中:

  • h:RnRn 是 softmax 函式 提供者: h(y)i=eyijeyj
  • VRn×d 是模型權重的權重矩陣 softmax 層

softmax 圖層會對應分數向量 yRn (有時也稱為 logits) 機率分佈

這張圖片顯示 softmax 深層類神經網路中的預測機率分佈圖
圖 3 預測機率分佈, p^=h(ψ(x)VT)

損失函式

最後,定義用來比較以下各項的損失函式:

  • p^,softmax 層的輸出內容 (機率分佈)
  • p,為真值,代表使用者擁有的商品 互動 (例如使用者點按或觀看的 YouTube 影片)。 這可表示為正規化的多鏡頭分配 ( 機率向量)。

例如,假設您要比較的是 兩項機率分佈

顯示 softmax 深層類神經網路中損失函式的圖片
圖 4.損失函式。

Softmax 嵌入

項目 j 機率的計算依據: p^j=exp(ψ(x),Vj)Z、 其中 Z 是不依賴 j的正規化常數。

換句話說, log(p^j)=ψ(x),Vjlog(Z) 因此項目的記錄機率 j 為 (達到正數常數) 兩個維度向量的內積, d可以解釋 做為查詢和項目嵌入

  • ψ(x)Rd 是最後一個隱藏層的輸出內容。我們稱之為查詢的嵌入 x
  • VjRd 是連接最後一個隱藏層到輸出 j 的權重向量。我們稱之為項目 j的嵌入項目。
圖片:顯示 softmax 深層類神經網路中的嵌入項目
圖 5.嵌入項目 jVjRd

DNN 和矩陣分解

在 softmax 模型和矩陣分解模型中 系統就會學習 Vj 每項商品 j。我們稱之為 項目嵌入矩陣 VRn×d 因式分解現在是 softmax 層的權重矩陣。

但查詢嵌入不同。非學習 Ui 每項查詢 i只要一個嵌入,系統就會學習 從查詢特徵 x 到嵌入 ψ(x)Rd 因此,您可以將這個 DNN 模型想成一般化矩陣 因式分解,也就是以非線性方式取代查詢 函式 ψ()

你可以使用項目功能嗎?

你可以將相同的提案套用到項目端嗎?換言之,我們不會學習 模型就會學習 將項目功能對應至嵌入項目?可以。請使用雙塔 包含兩個類神經網路

  • 一種類神經網路對應查詢功能 xquery 查詢嵌入 ψ(xquery)Rd
  • 一種類神經網路對應項目特徵 xitem 已對應至項目嵌入 ϕ(xitem)Rd

模型的輸出結果可以定義為 ψ(xquery),ϕ(xitem)。 請注意,此模型已不再是 softmax 模型。新的模型會預測 每個組合一個值 (xquery,xitem) 而不是每個查詢的可能性向量 xquery