閱讀筆記-基於用戶搜索日誌的商品標題壓縮


原文鏈接

數據集

  • S:淘寶女裝所有商品標題,剔除標題長度小於10的,因爲大多標題都小於10.

  • T:達人平臺改寫後的標題

  • Q:搜索query的選擇:過去一個月內,有10次成交的商品的query

模型

第一個任務:生成輸出

輸入句子長度爲MM,輸出句子長度爲NN,損失函數如下:
mathargmaxyYs(x,y)=argmaxmi[1,M]s(x,x[m1,,mN])math \underset{y \in \mathcal{Y}}{\operatorname{argmax}} s(x, y)=\underset{m_{i} \in[1, M]}{\operatorname{argmax}} s\left(x, x_{\left[m_{1}, \cdots, m_{N}\right]}\right)
其中,s(x,y)s(x,y)表示的是一次標題壓縮的得分,s(x,y)=log(yx;θ)s(x,y)=log(y|x;\theta).所以目標函數可以被重新寫成
mathlogp(yx;θ)=n=1NlogP(ynx,y<n;θ)math \log p(y | x ; \theta)=\sum_{n=1}^{N} \log P\left(y_{n} | x, y_{<n} ; \theta\right)
即給定輸入x,輸出N個詞,的概率最大、$\theta就是模型學習得到的參數。

考慮到RNN及LSTM的不足,引入了attention機制。與原來的注意力機制不同的是,這裏我們不在將整個輸入句子編碼到固定長度的向量,而是在解碼的每一次generation時,對部分輸入做attention。所以上式被改寫爲:

mathP(ynx,y<n;θ)=g(yn1,sn,cn,θ)math P\left(y_{n} | x, y_{<n} ; \theta\right)=g\left(y_{n-1}, s_{n}, c_{n}, \theta\right)
其中$g(·)$是一個非線性函數。$s_{n}$是第n個目標輸出詞的隱狀態值,用下式來進行計算
mathsn=f(sn1,yn1,cn,θ)math s_{n}=f\left(s_{n-1}, y_{n-1}, c_{n}, \theta\right)
其中cnc_{n}contextcontext向量,計算方式如下
mathcn=m=1MA(θ)n,mhmmath c_{n}=\sum_{m=1}^{M} A(\theta)_{n, m} h_{m}

其中A(θ)A(\theta)就是attention矩陣,A(θ)n,mA(\theta)_{n,m}表示的是輸入句子的第mm個詞,對輸出句子第nn個詞的貢獻度,計算方式如下

A(θ)n,m=exp(a(sn1,hm,θ))m=1Mexp(a(sn1,hm,θ)) A(\theta)_{n, m}=\frac{\exp \left(a\left(s_{n-1}, h_{m}, \theta\right)\right)}{\sum_{m^{\prime}=1}^{M} \exp \left(a\left(s_{n-1}, h_{m^{\prime}}, \theta\right)\right)}

針對一個元素anma^{m}_{n},就是
mathanm=vTtanh(W1sn1+W2hm)math a_{n}^{m}=v^{T} \tanh \left(W_{1} s_{n-1}+W_{2} h_{m}\right)
其中vvW1W_{1}W2W_{2}都是模型學到的參數。

Point network模型

傳統的seq2seq模型不能用於標題壓縮任務,因爲輸出是從輸入中選出來的詞組成的。使用Pointer Network的話,不會隱狀態hmh_{m}混淆進去,而直接使用anma^{m}_{n}作爲輸入的pointer

第二個任務是生成搜索query

可以看做是一個NMT的過程,將商家的語言映射到用戶搜索的語音。
原始標題和用戶搜索,對構建注意力矩陣很重要。

將兩個任務合併

agreement-based learning。兩個網絡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章