天天看點

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

自從去年“魯班”AI設計師完成了1秒8000張海報的壯舉,阿裡巴巴團隊的小夥伴們開始思考如何讓海報變得更加美觀豐富。其中一部分同學開始做商家版的智能設計,取名“鹿班”,為千千萬萬的商家設計更加精美的圖檔;而另一部分推薦團隊的同學嘗試用AI産出更加豐富的圖文内容,成為陳列師、内容營運的好幫手,這部分工作,取名“滴搭”。

前言

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

滴搭,是圖文算法平台化運維的一次大膽嘗試和穩定落地。它以深度學習網絡為基礎,以開放式的生産平台為載體,賦能營運、賦能達人,支撐以多商品搭配形式為主的圖文内容生産。從2017年2月開始,滴搭的算法技術陸續在淘寶、天貓的多個業務上落地,橫跨多個行業,并在大促中承擔使命;輔助數萬名達人生産搭配幾千萬套,覆寫商品數百萬,服務商家數十萬。

滴搭在三個方面做出了貢獻:

1、内容化生産:以深度學習網絡為基礎,廣泛收集商品資訊、使用者資訊、營運知識作為輸入,協助内容生産,生成品質和達人相當。圖文算法應用到多個行業的多個業務中。

2、平台賦能:算法和工程結合,營運可在滴搭平台選品、生成搭配、個性化投放,一站式管理。

3、效率提升:全站達人日均生産幾千套搭配,算法小時生産百萬套搭配,生成效率數量級提升。算法搭配擴充了投放總池子,使得個性化效果得到提升。

下面,我們來詳細地介紹滴搭平台。

一、滴搭平台簡介

滴搭是營運前台、算法平台、合圖平台、個性化投放等等多個平台和算法的統一稱謂。

營運在前台做完選品,經過深度圖像處理和搭配算法,學習出可搭配商品的特征表示。當一件或多件商品作為觸發請求搭配時,可以從百萬級的商品庫中找出與之可搭配的、符合一定營運規則的其它商品,并根據觸發商品和産出商品的資訊,生成描述性标題。最後經過智能排版技術,合成符合視覺審美的展現形式。生成好的搭配經過推薦算法,個性化地投放給使用者。以下為滴搭背景的部分效果展示:

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

滴搭平台經曆了幾次較大的算法改版,現在基于淘内的優質搭配已經學習出了一套比較成熟的算法。除了保證一套搭配中的個體風格、顔色、配飾等等做到貼合,滴搭還吸取了營運、達人的經驗,嚴格按照成套規則進行産出,例如在服飾領域,上衣+下衣是合理的,但是下衣+裙裝是不合理的;在登山場景,帳篷+手電筒+登山服是一個合理的組合,而燒烤架不是必須。

接下來,我們将重點介紹滴搭的算法。由于我們涉及的行業很廣,圖文算法的應用業務非常多,為了更好地聚焦于算法本身,以下介紹若無特别說明,将以服飾行業的搭配業務為例。

二、滴搭算法

滴搭需要完成搭配圖檔生成、搭配描述生成兩部分工作,是以我們分别在圖、文上設計算法架構。底層的資料是公用的,包括商品圖檔、商品标題、營運輸入以及其他side information。在這個資料之上,我們先完成搭配圖檔的生成,再對該搭配進行文本描述。

在圖搭配的算法中,我們用CNN(Convolutional Neural Networks)進行圖檔預處理,以DSSM(Deep Semantic Similarity Model)作為基本架構,在此基礎上嘗試了兩種搭配邏輯算法:第一種是基于LSTM(Long Short Term Memory)的序列化搭配生産,第二種是基于DAN(Deep Aggregated Network)的無序列化搭配生産。在産出圖搭配後,我們将産出結果結合文案輸入語料,輸入文案描述模型CPGN(Context aware Pointer-Generator Networks),産出文本描述。最終的結果裡包含圖文内容,是搭配的整體化描述。

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

以下我們将分别介紹圖文算法。

2.1 圖搭配算法

2.1.1 相關工作

服飾類搭配在近些年的學術圈有了比較快速的發展。生成一套搭配,總體上有兩種思路:一是利用傳統圖像處理方法,将圖像底層切割,利用專家知識構成細粒度的、可解釋的搭配關系;二是基于深度學習方法,利用圖像和文本技術做深層抽取和表示,用深層網絡去隐式地學習搭配關系。在這些工作中,[1]試圖給一套搭配打分,使用基于深度學習的多模态、多執行個體作為特征,品質分作為标簽。[2]用雙向LSTM網絡模拟搭配的序列化過程,可以生産搭配、或者給一套搭配打分。[3]雖然不是服務于搭配業務,但它将圖像和文本結合起來,利用搭配裡商品風格相近的原則,學習出商品的風格表示。[4]用到了蒸餾網絡的方法,将Teacher-Student網絡巧妙地嫁接在特征表示後,使得搭配能夠遵循知識圖譜規約。這些文章在學術上都給予我們很多啟發,但是目前,據我們所知,在電商平台還沒有一個完全智能化的搭配平台,可以線上實時地産出内容并進行投放。線上生産的難點,一是資料量非常龐大,二是對于可投放的品質要求極高。滴搭吸取了前人工作的優點,并在網絡核心(DAN)和向量對齊(DSSM)兩方面做出了獨創性的工作。這兩個網絡在拿到更好效果的同時,也解決了資料龐大和線上效果保證兩大難題。

滴搭的整體架構是第二種方法。我們選擇深度學習方法作為模型基礎的原因是,深度學習的發展使得網絡的高層特征已經能夠比較詳盡地涵蓋圖檔的多種資訊。比如我們對白底圖的CNN高維向量進行K-means聚類,會發現相同形狀和風格的圖檔聚在一起。這使得我們有信心可以利用深度學習網絡的高層特征直接進行計算。另一方面,滴搭不是專門為某一行業定制的平台,專家知識無法跨行業通用,且目前除了幾個大行業之外,很多行業并沒有開源出足夠豐富的知識圖譜。為了滿足線上業務要求,滴搭又融合了專家知識作為限制條件,是以對于結果具有部分解釋性。

2.1.2 準備工作

資料

我們最開始的訓練資料來源于Polyvore網站,該網站下有大量使用者送出的搭配樣例,并且提供其他使用者點贊和評論。在遷入淘内業務後,我們收集了淘内達人産出的幾十萬套優質搭配,對訓練資料進行了重新整理。

特征表示

首先,我們需要對商品進行表示化。最直接能展現一個商品資訊的來源是其圖檔,我們依靠魯班千萬級的白底圖庫,對進入商品池的商品抽取特征。這裡我們用的是CNN技術,具體模型為inception v3。具體做法如下:

以類目作為label,對pre-trained模型進行fine-tune,抽取倒數第二層的向量表達作為該商品的圖檔表征。

将第一步的所有圖檔的向量表示進行帶類目限制的K-means聚類。考慮到搭配中的類目關系以及不同類目下商品數量分布的不同,我們針對性地對K-means做了優化,使得聚類結果更加集中且分布平衡。一個類目下會有多個聚類結果,聚類結果用cluster表示。該步驟後,每個商品都被聚類到其中一個cluster下。

将第二步得到的cluster作為label,重新用inception v3進行fine-tune,抽取高維向量表達作為最終的圖檔特征。

在CNN的基礎上增加K-means的原因在于,我們希望圖像上相似的圖檔能在向量表示上有更加接近的距離。而CNN在K-means之後的分類結果也的确比最開始得到了提升,視覺上更加相似。聚類後結果部分展示如下:

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

此外,由于圖檔有時候并不能涵蓋所有資訊,我們加入了side information作為資訊補充。目前加入的side information包括商品的類目和風格。

2.1.3 模型一:基于LSTM的序列化搭配生産

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言
  • 首先,我們将準備工作中通過CNN得到的高維向量,和side information的向量,經過embedding和stacking的變換,作為模型的輸入層。
  • 其次,輸入向量經過一層MLP,分成兩路:一路進入LSTM網絡進行序列化學習,一路進入進入DSSM網絡進行向量對齊。

LSTM網絡:我們将搭配的構成看成一個時序過程,每件搭配物品的産生為一個時序步驟。從第一件商品開始,每一件新産生的商品需要和之前的所有商品有相關性。LSTM網絡天然的時序關系使之成為可能。LSTM是RNN(Recurrent Neural Network)的一種衍生,它增加了功能門,能更好地捕捉長期依賴。令S表示一套搭配,xt是第t個商品的CNN特征表示,則S=x1,x2,...,xN表示一個搭配序列。根據最大似然估計原理,我們期望最大化:

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

DSSM網絡:我們希望可搭配的商品在向量空間上具有更接近的距離,于是參考了DSSM網絡的方法。我們從線上日志和優質搭配兩方面擷取正向樣本,即收集日志裡點選率高的搭配和達人高品質的搭配樣例,拆成pair對,作為DSSM網絡的正向樣本;同時将線上點選率低的搭配作為負向樣本。從圖中看出,當一個(或多個)商品組合經過MLP之後,我們先拿到所有商品在進入LSTM之前的向量表示。當LSTM每一步産出商品X時,我們将X也經過一個MLP變換,和每個進入LSTM之前的其他商品進行距離計算,其他商品的正樣本樣例表示為Y+,負樣本樣例表示為Y−。我們希望正向樣本之間的距離小,負向樣本之間的距離大,是以loss表示為:

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

其中,sim函數采用的是cosine相似度,θ表示參數,目标是最大化Δ。在GPU上,我們用mini-batch SGD來優化θ。

2.1.4 模型二:基于DAN的無序化搭配生産

我們在LSTM模型一的基礎上完成了第一版的投放,效果還是不錯的。在後續的研究中,我們發現了一個更好的子產品:DAN,在以上的架構圖中,它僅僅将LSTM子產品做了替換,其他部分保持不變。我們看到了更低的loss和更好的輸出結果。

D

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

AN的核心在于,它将搭配看成一個組合模式,而不是序列模式。在日常生活中,我們會給上衣搭配褲子,也會給褲子搭配上衣,是以在訓練LSTM網絡的時候,我們其實需要構造兩條不同順序的訓練資料:上衣+褲子,褲子+上衣。而在DAN網絡中,上衣和褲子是無序列差别的輸入,它們以組合的形态輸入網絡中。

如下圖所示,同一套搭配的訓練資料在經過CNN和side-information embedding之後,輸入到DAN網絡。首先經過非線性變化,變化後的向量進入池化層。我們嘗試了sum-pooling和max-pooling,發現sum-pooling有更好的結果。

DAN網絡在訓練的過程中,獲得了比LSTM更低的loss。且在訓練資料構造中,不再需要考慮全排列,而隻需要組合資料就夠了。訓練資料的減少大大縮減了訓練時間,使得周期性疊代模型成為可能。

2.1.5 基于context graph的預測過程

怎樣稱為一套搭配?營運往往有不同的定義。女裝的營運可能認為,上衣+下衣+鞋是一套完整搭配,裙裝+配飾+包是一套完整搭配,而連衣裙和牛仔褲是一定不能同時出現的。又或者,家居的營運希望,一個卧室的場景裡需要有床、床頭櫃、燈具、壁畫,缺了其中一個都不是一個合格的卧室搭配。實際上線過程中,營運往往還有場景氛圍的需求,對于風格、季節等等有額外的限制。如何将營運的訴求傳遞給搭配算法,我們設計了context graph來解決這個問題。

context graph是結構化的營運規約,包括類目搭配的限制、風格的限制、季節的限制,等等。在搭配預測階段,所有商品池的商品和它們的side-information經過Embedding、Stacking和全連接配接之後,存入商品池(item pool)。以DAN網絡為例,當一個活動發起請求時,作為觸發的商品經過DAN網絡,如果不考慮限制,則我們會将MLP的輸出結果到商品池中去做向量檢索(sim search),擷取下一個商品。如果考慮限制,則根據context graph的規約,先在向量檢索的基礎上做一層過濾,僅讓滿足營運規約的商品作為預測結果的候選集,再在候選集裡挑出TopK。在每産出一個搭配商品之後,算法重新計算目前滿足的搭配限制情況,推動下一個商品的産生及圈定新的候選集。

我們将context graph打包到模型裡,是以搭配的預測過程是完全實時的。context graph保證了成品率,即每一套産出的搭配都符合營運的輸入條件,降低了人工篩選的成本。

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

2.2 文本算法

2.2.1 相關工作

随着深度網絡的發展,文本應用在近兩年有着非常迅速的落地。在機器翻譯、閱讀了解、摘要生成等文本工作中,sequence-to-sequence的架構被廣泛應用,為不同應用目的而設計的attention網絡也蓬勃發展。我們将文案生成看成一個摘要生成問題,原始輸入語料可以是商品原始标題、商品其他資訊等等,而文案需要在原始語料中抽取出關鍵資訊,進行總結甚至拓展描述。Pointer-Generator網絡(PGN)[6]做到了這一點。它本質上是一個encoder-decoder加attention的混合模型,但通過一個平衡參數,使得模型既可以從原始語料中抽取文字(pointing),也可以生成原始語料中沒有的新詞(generator)。[7]同樣采用了encoder-decode加attention的基本架構,但是通過蒙特卡洛采樣縮小了目标詞庫,提升效果的同時也加快了預測速度。

在我們的場景下,除了從原始語料中生成,營運往往還會增加一些額外需求。比如營運希望文案的描述中有偏向性,突出風格,突出顔色,或者突出利益點,我們稱為搭配tag。是以這部分我們也作為輸入,加入到attention網絡中。

2.2.2 準備工作

我們用達人搭配的幾十萬搭配描述作為訓練資料。訓練資料的輸入為商品的标題、搭配tag,訓練資料的輸出為達人撰寫的标題。我們将詞作為基本機關。

2.2.3 CPGN模型

在PGN的基礎上,我們加入了營運輸入資訊,使得文案、商品、營運要求三者之間建立強關聯,是以新方法命名為CPGN,其算法架構如下:

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

整個架構由encoder-decoder構成。自底向上看,首先,我們對原始語料(x1, x2, ..., xn)和營運輸入(z1, z2, ..., zn)分别做encode,其中原始語料逐詞進入單層、雙向LSTM網絡,隐層向量表示為hi

;營運輸入可以是連續的一句話,也可以是關鍵詞,若為前者,則仍然用LSTM處理,若為後者,則直接對關鍵詞做embedding,用ri表示。以i表示第i個輸入,以t表示decode的步數,則attention的分布at和context向量h∗t,r∗t表示如下:

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

其中,η是一個以tanh為激活函數的多層MLP,st表示第t步decoder的狀态。attention分布可以看作是decode産生過程中,對encode每個源詞的重視機率。h∗t和r∗t是對attention分布的帶權求和,是目前步下從源語句獲得的資訊的表達。在此基礎上,我們得到下一個詞在整個詞典上的機率分布:

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

其中,

g為兩層全連接配接。這樣我們就得到了generate部分的機率。如何平衡pointing和generator呢?我們設計一個參數pgen∈[0,1],它是一個機率軟開關,和目前decoder的狀态st、context向量h∗t,r∗t、以及decoder輸入yt−1相關。我們既可以在詞典中generate下一個詞,也可以利用attention的權重在輸入中copy下一個詞。假設從Pvocab中得到詞典中每個詞的預測機率為Pvocab(w),則:

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

其中σ是sigmoid函數。現在的P(w)不但包括整個詞典,還包括某些在輸入中出現、但不在詞典中的詞,是以緩解了OOV的問題。在訓練階段,假設第t

個目标詞為w∗t,則loss表示為:

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

最後,我們加入了coverage算法解決重複詞問題。在每一步decode中,我們對之前步的所有attention分布求和,記為ct。ct

表現了目前為止,原輸入中的詞被attention展現出來的覆寫程度,它被帶入到ei中進行計算,是以目前步的decoder将被通知并避免重複之前出現過的詞。此外,loss的計算中也引入covloss,它是ai和ci的最小值之和。coverage算法不僅作用在原始語料hi上,也作用于營運輸入ri上。由于我們的算法直接投放到線上,在做過算法的去重之後,我們在工程上最後還加了一層正則比對,確定萬無一失。

三、滴搭工程平台

3.1 算法平台XTF

為了能讓整個滴搭平台真正面向營運,我們需要一個穩定、能支援快速疊代和實時計算的機器學習平台來支撐我們訓練模型以及線上輸出。為此,我們參與了工程團隊的共建工作——基于Porsche blink的分布式Tensorflow訓練及線上打分平台,我們稱該平台為XTensorflow,簡稱XTF。在這個平台上,滴搭涉及到的LSTM模型、CNN模型、CPGN模型、DAN模型天級别地訓練與更新,快速響應訓練資料的變化;線上預測過程中,共建了CNN的實時打分、context graph的實時查詢、DSSM的實時檢索,使得業務的實時響應成為可能。

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

3.2 智能排版平台

算法生成的搭配最終投放給使用者,圖檔的美觀非常重要。這裡面急需解決多商品的排版問題,包括大小比例、順序、頁面留白等等。魯班團隊在合圖工程上有着多年的經驗,我們共建了搭配商品的排版工作,完成了成圖的最後一步。

滴搭布局算法支援設計師上傳模闆,也可以根據積累的模闆進行合圖比對。

四、滴搭業務執行個體

滴搭的圖文算法本身是很底層且通用的,它可以應用于所有擁有多商品邏輯關系的行業,可以投放于所有有場景定義的業務中。我們在日常業務和大促業務中都有過很多次的合作與嘗試,接下來将重點介紹幾個。

4.1 iFashion搭配

iFashion是一個以搭配為主要心智的場景。無論是在内容品質本身,還是視覺呈現,iFashion都很好地承接了圖文算法的産出。我們周期性地為iFashion的選品産出圖搭配和文字描述,極大地補充了原僅有達人搭配的池子。算法搭配和達人搭配在瀑布流中混排,個性化地推薦給使用者。算法搭配參與生産的優勢包括成本低、成品效果好、轉化資料高等等。

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

4.2 手淘首焦

手淘首焦是一個強營運需求區塊,一張焦點圖背後是一個活動頁,展現内容包括該活動下的商品圖檔以及文案。我們的推薦算法會給使用者千人千面的展現,即在個性化投放中,我們會給每個使用者投放他感興趣活動下的感興趣内容。在圖文算法産生之前,我們僅僅對活動下的單個商品做了個性化,而且文案還是固定不變的。

我們嘗試了服飾行業的多商品搭配,搭配的組合态使得首焦的圖檔展示更加豐富,不再拘泥于單商品的模式。

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

我們也嘗試了多行業的文案生産。以下圖為例,傳統的做法,營運輸入固定文案,包括主文案:運動健身狂歡購,副文案:大牌精選好貨钜惠,以及利益點:搶大額券。固定文案千篇一律,很容易被忽視。在我們的模型中,原始語料是商品标題、描述、屬性等等(該例中,是瑜伽磚頭的相關資訊),營運輸入的是文案詞和利益點(該例中,營運輸入了精選好貨、大牌、狂歡購等等關鍵詞)。最後産出的智能文案,主文案:瑜伽磚頭精選好貨(分别從商品标題和營運輸入中抽詞),副文案:大牌钜惠滿就減(從營運輸入中抽詞,并衍生出了“滿就減”)。由于我們産出的文案能夠和商品、活動一一對應,是以文案上也是千人千面的,不但描述了使用者感興趣的這個商品,還突出了活動的特點,使得個性化的效率得到了提升。

在首焦的圖文生産上,我們在CTR和UCTR上都拿到了超過兩位數的提升。

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

4.3 有好貨

有好貨是首頁流量主力頻道,其主打的“好貨”心智深入人心。目前的版本中,由于排版的限制,達人生産的标題有的太長,顯示不全,有的由于截斷,表述不清,非常影響使用者對商品的資訊讀取。我們和有好貨合作,利用文案算法,對标題進行重新抽取,在限制長度的情況下提取重點資訊,幫助使用者更好地決策。

今天穿什麼?阿裡AI小助手——滴搭告訴你!前言

五、未來工作

我們的算法工作、工程工作是緊跟着業務發展的,是以很多的想法也是深入了解業務之後思考建設起來的。接下來也有一些想要嘗試的方向:

首先,我們希望建設一個端到端的算法模型。現在由于圖像網絡比較重,模型中還是用CNN進行預處理,再到LSTM或者DAN網絡中産出的。我們希望以後圖像的處理網絡能夠融入到整體架構中。

其次,我們希望能夠在個性化上做更多的努力,配合産出更多的UGC内容玩法。

歡迎與我們交流

阿裡巴巴推薦算法團隊目前主要負責阿裡電商平台(包括淘寶、天貓、海外版淘寶、Lazada等)的商品及feeds流推薦,其中手機淘寶首圖個性化、猜你喜歡、購買鍊路等場景每天服務數億使用者,涉及流量效率提升、使用者體驗、提高商家及達人參與淘寶的積極性,優化商業生态運作機制。

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

[email protected]

參考文獻

[1]Li Y, Cao L, Zhu J, et al. Mining fashion outfit composition using an end-to-end deep learning approach on set data[J]. IEEE Transactions on Multimedia, 2017, 19(8): 1946-1955.

[2]Han X, Wu Z, Jiang Y G, et al. Learning fashion compatibility with bidirectional lstms[C]//Proceedings of the 2017 ACM on Multimedia Conference. ACM, 2017: 1078-1086.

[3]Tautkute I, Trzcinski T, Skorupa A, et al. DeepStyle: Multimodal Search Engine for Fashion and Interior Design[J]. arXiv preprint arXiv:1801.03002, 2018.

[4]Song X, Feng F, Han X, et al. Neural Compatibility Modeling with Attentive Knowledge Distillation[J]. arXiv preprint arXiv:1805.00313, 2018.

[5]Gardner A, Kanno J, Duncan C A, et al. Classifying Unordered Feature Sets with Convolutional Deep Averaging Networks[J]. arXiv preprint arXiv:1709.03019, 2017.

[6]See A, Liu P J, Manning C D. Get to the point: Summarization with

pointer-generator networks[J]. arXiv preprint arXiv:1704.04368, 2017.

[7]Wu Y, Wu W, Yang D, et al. Neural Response Generati

on with Dynamic Vocabularies[J]. arXiv preprint arXiv:1711.11191, 2017.

繼續閱讀