1. 程式人生 > >p2 Why l like it: Multi-task Learning for Recommendation and Explanation

p2 Why l like it: Multi-task Learning for Recommendation and Explanation

actor bsp 標準 二分法 依據 his view 有關 矩陣分解

Network Embedding

3 一個多任務學習方法

這部分,我們詳細展示推薦系統的細節,這個推薦系統集合了學習預測某個用戶對於一個物品的排名,以及生成一條評論(?)作為用戶物品以及用戶物品對的解釋。

首先,我們描述了一個序列到序列的對抗學習模型,(be capable of)它能夠生成每個用戶或者item的評價,幫助提高潛在特征模型的可解釋性。接著,展示我們怎樣擴展基本模型來生成個性化用戶對某個item的評價的。接著,我們介紹一個上下文相關的概率矩陣因式分解模型的擴展,它可以將review document合並成一個texual feature(是embedding嗎?還是只是利用矩陣操作,矩陣因式分解是啥?矩陣分解,目前主要應用於推薦系統領域,用於實現隱含語義模型 latent factor Model,作用減少運算量,解決矩陣稀疏。對,就是一種embedding,哈哈,基本原理,一個矩陣能分解成兩個矩陣的乘積

)最後,我們提出一個多任務學習模型,同步進行學習提高預測率和生成評價,還有一個計算框架來優化參數。

3.1 序列到序列的對抗學習

和encode-decoder結構有關系。我們實現了一個編碼解碼架構,他能通過觀察到的評價文檔來生成各種相關評價。我們需要定義review document ,(評價文檔,應是從網絡中爬取到的?d(u,i)是所有用戶i寫出的評價,d(v,j)是所有寫給item j的評價,整兩個文檔應該是有重合的 be indicative of 指明)對於物品的評價偏向於質量,人給出的評價偏向於感覺,為了捕捉這些不同,我們用同樣的網絡結構來為這兩類數據建模,只是涉及到各自不同的細節問題轉換一下就行了。

傳統的優化seq2seq模型方法主要作用在訓練過程中每一個時間步長裏都餵進去真實標註(ground-truth真實的)會導致bias爆炸,例如在測試中,model在自己做的錯誤預測中會越陷越深不能自拔(中間偏置出錯導致全局錯誤,再加上上一步的錯誤會一直待到最後?),為了克服這些,我們部署了對抗訓練進程,我們你能同步訓練生成和識別網絡,生成學著去產生假的觀點篇識別,識別能檢測這些假的samples。

3.1.1 循環評論生成器(Recurrent Review Generator)這個生成器作用就是生成看起來是用戶ui寫的評價。(to this end 為了達到這個目的)部署了一個基於循環神經網絡的對抗學習框架,包括以下兩大主要部分:(1)用戶觀點文檔編碼器:把此文檔投射到d維向量Ui~

相當於特征抽取了(2)用戶觀點解碼器:根據上一步的特征向量,生成一個風格連貫一致的觀點。註意,這兩個coder都是用GRU,因為它在也能克服序列的長期依賴問題(一個簡化了的LSTM,只有更新門和重置門)。

下面闡述一些RRG的細節問題:

下面這一段是描述generator的,使用encoder-decoder結構:

(suppose 假設)假設,我們有了上述那些文檔,對於dui文檔裏的內容,我們首先將每個word組成的一大長串的東西通過embedding lookup 操作映射成k維向量。edbedding矩陣依據提前訓練好的詞向量(從word2vec中得到)初始化,然後通過bp調參。這個詞向量,就是word vectors 就被feed 進上面的雙向GRU中,前向forwardGRU是讀取慣用序列,backword是倒序讀取,這樣減小信息熵。我們連接兩向中的最後一步得到的activation,得到一個vector hT=[hT->,hT<-],(這些都是隱層activation)這個向量就是評論文檔向量代表,Ui~for user i就可以通過平均所有的變量生成了。decoder中是逐個詞生成的。在時間步t時,解碼器GRU首先把t-1時步的輸出單詞yi ,t-1嵌入到對應時步的xi,t-1中去,接著把這個嵌入好的量和用戶文檔向量粘合在一起,x‘i,t=xi,t-1,Ui~ ; 這個新生的x‘t就作為decoder的輸入,以此來獲得ht( 隱層activation)再把ht和映射矩陣相乘後通過一個駕在整個詞表之上的softmax層,如此來得到由當前context下給出的每個詞語的概率(context是啥,又是算的那些詞的概率 endeavor to do sth 努力去做某件事)

下面這一段是描述discriminator的,用的是convolutional相關:

當用戶評論生成器努力to模仿用戶生成仿照評論的時候,識別器也正在根據真實的評論來學習鑒別這些adversary adversarial reviews authentic對抗仿照評論。給一個候選評價和目標用戶,識別器就會用二分法標準來決定是不是真的由目標用戶寫的。第一步,也是最重要的,識別器會判定給定的候選評論在多大程度和用戶相似就判定它為真人寫的,假設連人類最基本的風格都不像,那就直接pass;第二,識別器要判定相似度,likehood,這是要確保生成器不僅要生成用戶類似語言風格,還要更加限制生成內容和user review doc的主題相關性。整個識別器卷積網絡設定是一個輕量級參數的比較普遍的文本分類器。首先,每個review裏的詞映射成詞向量word vector,和上面一樣,把它和用戶specific vector(表示用戶信息的,應該是從user textual fearture來的吧?文中說也是從訓練中和其他參數一起習得的,哪一步訓練?)拼接一起,拼接好之後,進入卷積神經網絡進行處理,最後跟著一個最大池化層和全連接投影層。最終的輸出單元是sigmoid非線性單元,為的是把最後得出的概率squashes into the [0,1] interval,(只有一層卷積層嗎,也就是說最後只得到一個概率值,即多大可能性是真的)

p2 Why l like it: Multi-task Learning for Recommendation and Explanation