標籤:

AI小編問世!阿里智能寫手核心技術首次公開!

摘要: 內容化已經成為淘寶近幾年發展的重點,我們可以在手機淘寶APP(以下簡稱手淘)上看到很多不同的內容形式和內容型導購產品,例如,「有好貨」中的以單個商品為主體的富文本內容,「必買清單」中的清單,即圍繞一個主題來組織文本和商品的長圖文型內容,等等。

作者:夜朧

原文:click.aliyun.com/m/4194

一. 引言

內容化已經成為淘寶近幾年發展的重點,我們可以在手機淘寶APP(以下簡稱手淘)上看到很多不同的內容形式和內容型導購產品,例如,「有好貨」中的以單個商品為主體的富文本內容,「必買清單」中的清單,即圍繞一個主題來組織文本和商品的長圖文型內容,等等。不同於商品的形式,內容可以從不同的維度組織商品,從更豐富的角度去描述商品、定義商品,豐富了手淘的產品形式,提供給了用戶更多有價值的購物信息。

隨著手淘內容化戰略的持續推進,我們也在內容自動化生成上持續探索,並構建了「智能寫手」這個產品,旨在利用淘寶的海量數據,結合人工經驗和知識輸入,逐步實現內容的自動化、規模化生產,和人工編寫的更高質量的內容一起,帶給用戶更豐富、更有價值的信息。經過一段時間的沉澱,目前智能寫手在短文案生成、標題生成、商品推薦理由生成、圖文型內容(清單)生成上都取得了一定的進展,期間針對若干文本生成的問題也進行了不同程度的優化。

在剛過去的2017年雙十一中,智能寫手主要做了兩件事情,一是支持了大規模實時個性化生成雙十一會場入口的短文案(下面稱作「智能利益點」項目),保守估計生成了上億的文案,提升了引導效率;二是進行了圖文型清單的生產和投放試水,收集到了用戶的直接數據反饋,驗證了方案的有效性。

1.1 智能利益點

在每年的雙11大促中,手淘首頁、主會場等大促活動的主要流量通道上都會有很多的會場入口(參見圖1-圖4),會場入口一般由三部分構成,分別是會場名稱、利益點文案和商品圖片素材。其中,利益點往往表達了一個商品或者一個大促會場最核心的亮點,是商家、運營提升點擊效果的一個抓手。傳統生產利益點文案的方式,有以下特點:

1.受限於數量和人力成本,一個商品或者會場的利益點一般不會超過三個,大多數情況只有一個利益點,這有時會導致利益點文案和商品不匹配的case發生,影響用戶體驗。

2.用戶對一個商品不同的賣點或者說不同的文案表述的關注度是不同的,例如有人關注性價比,有人關注品質等等,人工編輯的較少的利益點文案沒辦法提供多樣的信息,不利於引導效率的提升。

因此,這次雙十一,智能寫手和首頁推薦演算法團隊、大促平台演算法團隊一起合作了智能利益點項目,分別在手淘首頁人群會場入口、貓客首頁人群會場入口、貓客首頁標籤會場入口、雙十一主會場行業會場入口、雙十一主會場標籤會場入口等多個場景上線了智能利益點。幾個場景樣式詳見以下圖片,其中用紅色虛線框起來的使用了智能利益點的會場入口的實際效果:

我們在雙十一期間做了分桶測試,相比使用人工編輯利益點文案的分桶,智能利益點的分桶在多個場景都取得了用戶點擊率兩位數左右的提升,這個提升是在各個場景自身優化效果的基礎上的額外提升,還是比較可觀的,這也說明了文案個性化生成確實給用戶帶來了更多的有價值的信息。

1.2 圖文型清單生成

在手淘中,圖文型清單是一種重要的商品組織形式,可以理解為有主題的商品集合富文本內容,主要由人工編輯而成,生產清單費時費力,尤其在大促期間,要短時間內生產大量的清單更是一個很大的挑戰。這次雙十一,智能寫手也參與到這個工作中,結合在文本內容生成上的沉澱,生產了少量單品盤點類型的清單,具體樣式如下:

為了驗證智能寫手生成的清單的效果,我們在雙十一期間小流量上線,和人工編輯的清單進行了分桶測試。對比人工編輯的單品盤點清單,智能寫手清單在平均商品點擊轉化率上的表現要更好。

下面我們將分別介紹智能寫手在智能利益點和圖文清單生成兩部分的工作。

二. 智能利益點

智能利益點解決的問題是,給定任意一個商品,挖掘這個商品各個潛在的賣點,並根據挖掘出來的用戶偏好,從商品賣點集合中圈定用戶最感興趣、最可能點擊的賣點,然後基於這些賣點實時生成一小段6個字以內的文案。利益點生成的解決方案主要分為這麼幾部分:

1.用戶的偏好挖掘:主要基於用戶的離線和實時行為數據來做,通過挖掘得到用戶的TOP K個偏好標籤集合。由於線上系統性能的限制,我們不可能使用用戶所有行為過的標籤,於是我們構建了用戶偏好標籤的排序模型對標籤進行優選。

2.商品的賣點挖掘:賣點挖掘更多的依賴一些基礎的數據,包括商品的標籤庫、屬性庫、人工編輯的信息等等。

3. 利益點文案的實時個性化生成:首先,我們提出了PairXNN模型,用於預估用戶對一個商品的賣點的點擊概率,然後,根據不同的場景要求選擇合適的賣點,基於語義規則和人工設計的模板進行利益點文案的實時個性化生成。

下面主要介紹PairXNN的細節。

2.1 PairXNN概要

在商品賣點的點擊率預估問題中,我們把用戶偏好標籤和商品賣點都用文本的方式進行了表示,因此我們選擇的base模型是Aliaksei Severyn[1]的工作,他們的工作主要解決短文本pair的排序問題。在經過不斷迭代實驗優化後,我們最終形成了我們的PairXNN網路結構,如下圖所示:

模型包含幾個主要的部分:

1.用戶偏好和商品賣點的語義表示:由於用戶的偏好標籤量比較大,如何對用戶的大量偏好標籤進行更深層次的偏好挖掘,是這個部分要解決的重點問題。

2.Multi-level的相似度模塊:在不同的語義層級上計算用戶偏好和商品賣點的相似度。

3.Additional Features:引入人工定義的額外的特徵,輔助模型效果。例如用戶偏好的特徵、賣點的統計類特徵、用戶偏好和賣點的overlap特徵等。

整個PairXNN模型的訓練和在線預測是基於我們內部自研的XTensorflow平台進行搭建。

2.2 語義表示

在對用戶側的偏好標籤做語義抽取的時候,考慮到用戶偏好標籤的特殊性,它不是一個真正的有合理語義意義的句子,因此我們嘗試了多種不同的語義表示的網路結構,包括全連接DNN、和[1]一樣的CNN、Gated CNN[3]、self-attention[2] 和tailored attention。

其中,Gated CNN是對傳統的CNN結構做了優化,加入了gate機制,可以決定哪些信息更為重要,需要保留或者說捨去哪些信息。而採用Self-attention則是考慮到對於用戶的偏好標籤序列,需要更關注全局的語義相關性。tailored attention則是我們為了優化性能,簡化語義表示網路所提出的新結構,因為智能利益點的場景都是重要場景,流量很大,對性能要求比較高。最終經過雙十一期間的線上分桶測試,Gated CNN在網路性能和效果上綜合最優,於是雙十一全量上線的模型中採用Gated CNN的語義表示網路結構。

2.3 Multi-level相似度模塊

除了上述對於user和item側信息的映射和抽取,為了計算用戶和利益點的相關性,我們從兩個不同的語義層次對用戶偏好標籤和商品賣點的相似度計算,分別是:

1.對用戶偏好標籤embedding層輸出和商品賣點embedding層輸出的cosine similarity計算。

假定用戶側所有詞的embedding矩陣為 ,商品側詞的embedding矩陣為 ,那麼兩側詞之間一一對應的餘弦相似度(embedding已歸一化)為:

我們還在這個基礎上做了global pooling,分別為max pooling/min pooling/average pooling,得到3個數值。將上式得到的相似度打平後,與pooling層得到的結果concat成一維向量共同輸入至下一層。

2.對用戶偏好標籤的語義表示和商品賣點的語義表示計算bilinear similarity。

定義一個矩陣M去連接用戶側向量 ,商品側向量 ,公式如下:

其中

為相似度矩陣。這相當於將user側的輸入映射為 :

由於此時M是可訓練的,這樣就可以更好的將user側和item側的空間靠近,提升相似度的準確性。

線上實驗結果表明,兩個層次的相似度疊加使用的ctr要優於單獨使用。

三. 圖文型清單生成

一個圖文型清單一般都有一個明確的主題,圍繞這個主題進行相應的文本描述和商品推薦。針對這個特徵,我們的解決方案包括以下幾個部分:

1.主題。這個主題可以由外界(運營)輸入,也可以基於我們主題發現所沉澱的主題庫進行選擇。

2.選品。確定了主題之後,我們根據這個主題從精品庫中選取和主題相關性高且質量不錯的商品,然後以一定的目標組合成一個個的清單(一般一個清單包含6-10個商品)。

3.商品推薦理由生成。為每個清單的商品生成一段40-80個字的推薦理由。

4.標題生成。根據清單內的商品信息,給清單取一個概括主題又吸引用戶點擊的標題。清單標題要求相對簡短,一般不長於20個字。例如:「懶人沙發椅,沉溺初秋慵懶美時光」。

3.1 Deep Generation Network

圖文型清單生成中的兩個模塊,商品推薦理由的生成和標題生成,我們把他們歸類為自然語言生成(NLG)問題,都可以定義為依賴輸入信息的文本生成問題。其中,商品推薦理由生成問題中,輸入的是商品的信息,而清單標題中輸入的是商品集合的信息。於是,我們採用了最近比較流行的Encoder-Decoder深度神經網路模型框架來解決,基於Attention based Seq2Seq[5-6]的base model,最終形成了我們的Deep Generation Network。

下面介紹幾個比較主要的部分。

3.1.1 樣本

樣本的質量和數量是模型效果的基礎,我們基於淘寶上的人工編寫的商品推薦理由數據和清單標題數據進行了清洗,篩選得到符合我們目標的樣本集數據。

3.1.2 coverage attention model[8]

在推薦理由生成中經常會出現多個內容重複描述同一個輸入信息的情況,或者是對於輸入信息在推薦理由中沒有涉及。這個問題類似於機器翻譯問題中「過譯」和「漏譯」的問題。在傳統的統計機器翻譯方法中,有coverage set的概念,去記錄輸入source文本哪些已經被翻譯過了,而之後的模型主要考慮將沒有翻譯過的文本進行翻譯。在深度學習中,是通過coverage model的方式和attention model做結合,達到這樣的效果。

原來attention的計算方式如下:

3.1.3 context gate[9]

在推薦理由的輸出當中,模型的主體是基於RNN的seq2seq架構,那麼在decoder的輸出端的輸出,主要受2部分影響:

1. 一部分是encoder的輸入

2. 另一部分是當前step的前一個step的輸出。

那麼對於不同的輸出,兩部分的影響應該是不同的,比如說,當前一個輸入詞是虛詞時,主要的信息應該由encoder影響,但是如果前一個詞和當前詞明顯有相關性時,當前詞的主要應該由前一個詞影響。所以,我們考慮加入context gate,對這種情況進行建模。

公式如下:

3.1.4 Beam Search

在前文中提到用RNN生成語句時,在每個時刻取輸出結果中概率最大的詞作為生成的詞,是比較greedy的做法,沒有考慮詞的組合因素,因此,我們在seq2seq的實驗中也嘗試了beam search。beam search只在predict的時候使用,舉個例子,當beam search size=2時,每個時刻都會保留當前概率最大的兩個序列。

beam search在實踐過程中很有用,它提供了一種很好的對生成序列進行干預的基礎,一方面你可以對beam search的候選集的選擇以及最終序列的選擇做定製化的處理,比如你的選擇目標,另一方面,對一些模型還不能完全保證解決的bad case(例如重複詞出現等),可以在beam search中進行處理。

3.1.5 CNN

對於我們生成清單標題的問題,由於輸入是多個商品的文本內容,商品文本之間並沒有真正的序列關係,反而更需要一個類似主題特徵抽取的部分,從而能根據主題進行標題的生成。而CNN在句子分類已經有不錯的應用[7]了,於是我們在清單標題生成問題中,採用了CNN作為Encoder,實驗結果也表明CNN比LSTM在標題生成的主題準確率上要高。

3.1.6 Reinforcement Learning

我們在訓練和預測的時候會碰到下面2個問題:

1. 訓練和預測的環境是不同的,訓練在decoder的每次的輸出,依賴的是前一個位置的ground truth的輸入,而預測的時候是前一個位置predict的輸出,原因是訓練時候如果就依賴predict的結果的話,會造成損失累計,訓練非常難收斂。

2. 我們的評價目標是BLEU[11]值,這是整個句子生成之後和樣本之間的對比,而我們在訓練的時候是對於每一個位置的predict label計算loss,那麼造成了評價和訓練目標的差別,並且BLEU是一個整體目標,相當於是個延遲的reward。

綜上所述非常適合利用reinforcement learning的方式[10]來解決。對於這樣一個強化學習問題,首先我們定義這個問題的3個要素:

1. action:每一個timestep選擇的候選詞

2. state:每一個timestep的hidden state

3. reward:最終的BLEU值

演算法流程如下:

1. warm start:依舊利用原來的方法去訓練模型,達到相對收斂的狀態。

2. 逐漸在decode的末尾加入強化學習的方式,例如從倒數第一個位置加入強化學習,當收斂較好了,再從倒數第二個位置開始加入。

Loss定義如下:

3. 選擇的action的時候,使用的是KNN的方式。本文是使用REINFORCE演算法,是policy gredient的方式,並且文本的action空間非常大,所以比較難收斂。我們使用原來的predict方式打分,分數高的N個詞作為候選詞。然後這些詞和policy gredient選出的詞,做KNN,距離是embedding後的距離,選擇距離最近的作為action。

4. 最終,除了第一個timestep還保留著期望的輸入,其餘都將是強化學習的方式。

3.2 效果展示

這裡展示部分在測試集上生成的標題和推薦理由,給大家一些直觀的感覺:

清單標題

  • 衛衣,穿出你的青春活力
  • 加絨牛仔褲,讓你的冬天更有范
  • 牛仔外套,穿出帥氣的你
  • 羊羔毛外套,溫暖整個冬天
  • 穿上格子裝,讓你秒變女神
  • 職場新人,職場穿搭指南
  • 穿上白襯衫,做個安靜的女子
  • 穿上蕾絲,做個性感的女子

商品推薦理由

  • 這件針織款連衣裙採用了v領的設計,露出性感的鎖骨,性感顯優雅,衣身的撞色拼接,豐富了視覺效果,更顯時尚感。
  • 簡約的圓領設計,修飾頸部線條,中長款的設計,顯得優雅又大方,乾淨素雅,展現出清新的文藝風格,在端莊中流露出一股優雅的氣質。
  • 假兩件的設計,讓你的身材更加的修長,寬鬆的版型,穿著舒適,不挑身材,時尚百搭,輕鬆穿出時尚感。

四. 展望

智能寫手在雙十一的智能利益點和圖文清單生成上拿到了初步的效果,但是仍然還存在很多問題待解決,後續我們將在如下方面繼續探索和優化:

1. 效果評估。現在採用BLEU、覆蓋率、準確率、人工評測結合的方法來評估效果,但BLEU和實際目標不完全一致,人工評測成本又較高,需要有更好的評價方案。

2. 更豐富的輸入信息。引入包括商品圖像、用戶評價等在內的信息,除了可以解決輸入輸出的不一致外,還能給用戶提供更有價值的內容。

3.語言生成理解。通過模型的可視化,可以分析bad case的根源,優化模型。

4. 機器生成方面目前還有描述的準確度、多樣性問題需要解決,另外考慮到很多缺少足夠樣本的業務也有生成的需求,模型是否能具備遷移能力也是一個可能的方向。

五. 關於團隊

阿里巴巴推薦演算法團隊目前主要負責阿里電商平台(包括淘寶、天貓、Lazada等)的商品及feeds流推薦,其中用戶導購場景個性化,首頁首圖個性化、猜你喜歡、購買鏈路等場景每天服務數億用戶,涉及智能文本生成、流量效率提升、用戶體驗、提高商家及達人參與淘寶的積極性,優化商業生態運行機制。

歡迎熱愛演算法,對業務有好奇心,有合作精神的同學一起工作、成長。簡歷可投郵箱:

shaoyao@taobao.com

或者guli.lingl@taobao.com

或者jinxin.hjx@alibaba-inc.com

西湖湖畔,翹首以盼,等你來信~

六. 參考文獻

[1] Severyn A, Moschitti A. Learning to rank short text pairs with convolutional deep neural networks[C]//Proceedings of the 38th

International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM, 2015: 373-382.

[2] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin.

Attention is all you need. arXiv preprint arXiv:1706.03762,2017.

[3] Dauphin Y N, Fan A, Auli M, et al. Language modeling with gated convolutional networks[J]. arXiv preprint arXiv:1612.08083,2016.

[4] Luo W, Li Y, Urtasun R, et al. Understanding the effective receptive field in deep convolutional neural networks[C]//Advances in

Neural Information Processing Systems. 2016: 4898-4906.MLA

[5] Neural Machine Translation by Jointly Learning to Align and Translate

[6] Rush A M, Chopra S, Weston J. A neural attention model for abstractive sentence summarization[J]. arXiv preprint arXiv:1509.00685, 2015.

[7] Kim Y. Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.

[8] Tu Z, Lu Z, Liu Y, et al. Modeling coverage for neural machine translation[J]. arXiv preprint arXiv:1601.04811, 2016.

[9] Tu Z, Liu Y, Lu Z, et al. Context gates for neural machine translation[J]. arXiv preprint arXiv:1608.06043, 2016.

[10] Sequence Level Training with Recurrent Neural Networks, ICLR 2016.

[11] Kishore Papineni, Salim Roukos, Todd Ward, and Wei-Jing Zhu. Bleu: A method for automatic evaluation of machine translation.

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎


推薦閱讀:

旋轉數組的最小數字
調整數組順序使奇數位於偶數前面
矩陣中的路徑
包含min函數的棧

TAG:演算法 |