大眾點評資訊流基於文字生成的創意優化實踐

美團技術團隊發表於2019-03-15

1. 引言

資訊流是目前大眾點評除搜尋之外的第二大使用者獲取資訊的入口,以優質內容來輔助使用者消費決策並引導發現品質生活。整個大眾點評資訊流(下文簡稱點評資訊流)圍繞個性化推薦去連線使用者和資訊,把更好的內容推薦給需要的使用者。資訊流推薦系統涉及內容挖掘、召回、精排、重排、創意等多層機制和排序。本文主要圍繞創意部分的工作展開,並選取其中重要的文字創意優化做介紹,分為三個部分:第一部分闡述幾個重點問題,包括創意優化是什麼,為什麼做,以及挑戰在哪裡;第二部分講述領域內的應用及技術進展;第三部分介紹我們創意優化的實踐,最後做個總結。

什麼是創意優化

創意是一個寬泛的概念,它作為一種資訊載體對受眾展現,可以是文字、影象、視訊等任何單一或多類間的組合,如新聞的標題就是經典的創意載體。而創意優化,作為一種方法,指在原有基礎上進一步挖掘和啟用資源組合方式進而提升資源的價值。在網際網路領域產品中,往往表現為通過優化創意載體來提升技術指標、業務目標的過程,在資訊流中落地重點包括三個方向:

  1. 文字創意:在文字方面,既包括了面向內容的摘要標題、排版改寫等,也包括面向商戶的推薦文案及內容化聚合頁。它們都廣泛地應用了文字表示和文字生成等技術,也是本文的主要方向。
  2. 影象創意:影象方面涉及到首圖或首幀的優選、影象的動態裁剪,以及影象的二次生成等。
  3. 其他創意:包括多類展示理由(如社交關係等)、元素創意在內的額外補充資訊。

核心目標與推薦問題相似,提升包括點選率、轉化率在內的通用指標,同時需要兼顧考量產品的閱讀體驗包括內容的導向性等。關於“閱讀體驗”的部分,這裡不作展開。

圖1 創意優化的整體應用

為什麼要做文字生成

首先文字創意本身為重要的業務發展賦能。在網際網路下半場,大眾點評平臺(下稱點評平臺)通過內容化去提升使用者停留時長,各類分發內容型別在不停地增加,通過優化創意來提升內容的受眾價值是必由之路。其次,目前很多內容型別還主要依賴運營維護,運營內容天然存在覆蓋少、成本高的問題,無法完全承接需要內容化改造的場景。最後,近幾年深度學習在NLP(Natural Language Processing,自然語言處理)的不同子領域均取得了重大突破。更重要的是,點評平臺歷經多年,積澱了大量可用的內容資料。從技術層面來說,我們也有能力提供系統化的文字創意生成的解決方案。

對此,我們從文字創意麵向物件的角度定義了兩類應用形態,分別是面向內容的摘要標題,以及面向商戶的推薦文案與內容化聚合頁。前者主要應用資訊流各主要內容場景,後者則主要應用在資訊流廣告等內容化場景。這裡提前做下產品的簡單介紹,幫助大家建立一個立體化的感知。

  • 摘要標題:顧名思義,就是針對某條分發內容生成摘要作標題展示。點評內容源非常多樣,但超過95%內容並沒有原生標題,同時原生標題質量和多樣性等差異也極大。
  • 商戶文案:生成有關單個商戶核心賣點的描述,一般形式為一句話的短文案。
  • 內容聚合:生成完整的內容頁包括標題及多條文案的短篇推薦理由,不同於單商戶文案的是,既需要考慮商戶的相關性,又要保證理由的多樣性。

圖2 文字創意的應用場景

最後需要明確的是,我們做文字創意優化最大的初心,是希望通過創意這個載體顯式地連線使用者、商戶和內容。我們能夠知道使用者關注什麼,知道哪些內容說什麼,如何引導使用者看,知道哪些商戶好、好在哪裡,將資訊的推薦更進一步。而非為了生成而生成。

面臨的挑戰

文字創意優化,在業務和技術上分別面臨著不同的挑戰。首先業務側,啟動創意優化需要兩個基礎前提:

  • 第一,銜接好創意優化與業務目標,因為並不是所有的創意都能優化,也不是所有創意優化都能帶來預期的業務價值,方向不對則易蹚坑。
  • 第二,創意優化轉化為最優化問題,有一定的Gap。其不同於很多分類排序問題,本身相對主觀,所謂“一千個人眼中有一千個哈姆雷特”,創意優化能不能達到預期的業務目標,這個轉化非常關鍵。

其次,在技術層面,業界不同的應用都面臨不一樣的挑戰,並且嘗試和實踐對應的解決方案。對文字創意生成來說,我們面臨的最大的挑戰包括以下三點:

  • 帶受限的生成 生成一段流暢的文字並非難事,關鍵在於根據不同的場景和目標能控制它說什麼、怎麼說。這是目前挑戰相對較大的一類問題,在我們的應用場景中都面臨這個挑戰。
  • 業務導向 生成能夠提升業務指標、貼合業務目標的內容。為此,對內容源、內容表示與建模上提出了更高的要求。
  • 高效穩定 這裡有兩層含義,第一層是高效,即模型訓練預測的效果和效率;第二層是穩定,線上系統應用,需要具備很高的準確率和一套完善的質量提升方案。

2. 文字生成問題綜述

我們整體的技術方案演進,可以視作近兩年NLP領域在深度學習推動下發展的一個縮影。所以在展開之前,先談一談整個領域的應用及技術進展。

2.1 相關領域應用

在學界相關領域,文字生成被稱為NLG,其相關任務目標是根據輸入資料生成自然語言的文字。而我們在NLP領域使用更多的一般是NLU(Nature Language Understanding 自然語言理解)類任務,如文字分類、命名實體識別等,NLU的目標則是將自然語言文字轉化成結構化資料。NLU和NLG兩者表向上是一對相反的過程,但其實是緊密相連的,甚至目前很多NLU的任務都受到了生成式模型中表示方法的啟發,它們更多隻在最終任務上有所區別。

文字生成也是一個較寬泛的概念,如下圖所示,廣義上只要輸出是自然語言文字的各類任務都屬於這個範疇。但從不同的輸入端可以劃分出多種領域應用,從應用相對成熟的連線人和語言的NMT(神經機器翻譯),到2019年初,能續寫短篇故事的GPT2都屬於Text2Text任務。給定結構化資料比如某些資訊事件,來生成文字比如賽事新聞的屬於Data2Text類任務,我們的商戶文案也屬此類。另外還有Image2Text等,這塊也逐漸在出現一些具有一定可用性又讓人眼前一亮的應用,比如各種形式的看圖說話。

圖3 從輸入端劃分文字生成的領域應用

2.2 相關技術與進展

文字生成包含文字表示和文字生成兩個關鍵的部分,它們既可以獨立建模,也可以通過框架完成端到端的訓練。

文字生成

文字生成要解決的一個關鍵問題,是根據給定的資訊如何生成一段文字句子。這是一個簡單輸入複雜輸出的任務,問題的複雜度太大,至今在準確和泛化上都沒有兼顧的非常好的方法。2014年提出的Seq2Seq Model,是解決這類問題一個非常通用的思路,本質是將輸入句子或其中的詞Token做Embedding後,輸入迴圈神經網路中作為源句的表示,這一部分稱為Encoder;另一部分生成端在每一個位置同樣通過迴圈神經網路,迴圈輸出對應的Token,這一部分稱為Decoder。通過兩個迴圈神經網路連線Encoder和Decoder,可以將兩個平行表示連線起來。

另外一個非常重要的,就是Attention機制,其本質思想是獲取兩端的某種權重關係,即在Decoder端生成的詞和Encoder端的某些資訊更相關。它也同樣可以處理多模態的問題,比如Image2Text任務,通過CNN等將圖片做一個關鍵特徵的向量表示,將這個表示輸出到類似的Decoder中去解碼輸出文字,視訊語音等也使用同樣的方式(如下圖所示)。

圖4 Seq2Seq結構圖示

可見Encoder-Decoder是一個非常通用的框架,它同樣深入應用到了文字生成的三種主流方法,分別是規劃式、抽取式和生成式,下面看下這幾類方法各自的優劣勢:

  • 規劃式:根據結構化的資訊,通過語法規則、樹形規則等方式規劃生成進文字中,可以抽象為三個階段。巨集觀規劃解決“說什麼內容”,微觀規劃解決“怎麼說”,包括語法句子粒度的規劃,以及最後的表層優化對結果進行微調。其優勢是控制力極強、準確率較高,特別適合新聞播報等模版化場景。而劣勢是很難做到端到端的優化,損失資訊上限也不高。
  • 抽取式:顧名思義,在原文資訊中抽取一部分作為輸出。可以通過編碼端的表徵在解碼端轉化為多種不同的分類任務,來實現端到端的優化。其優勢在於:能降低複雜度,較好控制與原文的相關性。而劣勢在於:容易受原文的束縛,泛化能力不強。
  • 生成式:通過編碼端的表徵,在解碼端完成序列生成的任務,可以實現完全的端到端優化,可以完成多模態的任務。其在泛化能力上具有壓倒性優勢,但劣勢是控制難度極大,建模複雜度也很高。

目前的主流的評估方法主要基於資料和人工評測。基於資料可以從不同角度衡量和訓練目標文字的相近程度,如基於N-Gram匹配的BLUE和ROUGE等,基於字元編輯距離(Edit Distance)等,以及基於內容Coverage率的Jarcard距離等。基於資料的評測,在機器翻譯等有明確標註的場景下具有很大的意義,這也是機器翻譯領域最先有所突破的重要原因。但對於我們創意優化的場景來說,意義並不大,我們更重要的是優化業務目標,多以線上的實際效果為導向,並輔以人工評測。

另外,值得一提的是,近兩年也逐漸湧現了很多利用GAN(Generative Adversarial Networks,生成對抗網路)的相關方法,來解決文字生成泛化性多樣性的問題。有不少思路非常有趣,也值得嘗試,只是GAN對於NLP的文字生成這類離散輸出任務在效果評測指標層面,與傳統的Seq2Seq模型還存在一定的差距,可視為一類具有潛力的技術方向。

文字表示

前文提到,在Encoder端包括有些模型在Decoder端都需要對句子進行建模,那如何設計一個比較好的模型做表示,既可以讓終端任務完成分類、序列生成,也可以做語義推理、相似度匹配等等,就是非常重要的一個部分。那在表示方面,整個2018年有兩方面非常重要的工作進展:

  • Contextual Embedding:該方向包括一系列工作,如最佳論文Elmo(Embeddings from Language Models),OpenAI的GPT(Generative Pre-Training),以及谷歌大力出奇跡的BERT(Bidirectional Encoder Representations from Transformers)。解決的核心問題,是如何利用大量的沒標註的文字資料學到一個預訓練的模型,並通過通過這個模型輔助在不同的有標註任務上更好地完成目標。傳統NLP任務深度模型,往往並不能通過持續增加深度來獲取效果的提升,但是在表示層面增加深度,卻往往可以對句子做更好的表徵,它的核心思想是利用Embedding來表徵上下文的的資訊。但是這個想法可以通過很多種方式來實現,比如ELMo,通過雙向的LSTM拼接後,可以同時得到含上下文資訊的Embedding。而Transformer則在Encoder和Decoder兩端,都將Attention機制都應用到了極致,通過序列間全位置的直連,可以高效疊加多層(12層),來完成句子的表徵。這類方法可以將不同的終端任務做一個統一的表示,大大簡化了建模抽象的複雜度。我們的表示也經歷了從RNN到擁抱Attention的過程。

圖5 GPT ELMo BERT模型結構

  • Tree-Based Embedding:另外一個流派則是通過樹形結構進行建模,包括很多方式如傳統的語法樹,在語法結構上做Tree Base的RNN,用根結點的Embedding即可作為上下文的表徵。Tree本身可以通過構造的方式,也可以通過學習的方式(比如強化學習)來進行構建。最終Task效果,既和樹的結構(包括深度)有關,也受“表示”學習的能力影響,調優難度比較大。在我們的場景中,人工評測效果並不是很好,仍有很大繼續探索的空間。

3. 探索與實踐

該部分介紹從2017年底至今,我們基於文字生成來進行文字創意優化的一些探索和實踐。

3.1 內容源

啟動文字生成,首先要了解內容本身,資料的數量和質量對我們的任務重要性無須贅述,這是一切模型的基礎。目前我們使用到的資料和大致方法包括:

  • 平臺渠道:使用者評價、使用者筆記、Push、攻略、視訊內容、榜單、團單等等。
  • 第三方渠道:合作獲取了很多第三方平臺的內容來補缺,同時運營側輔助創意撰寫和標註了大量內容,他們同樣貢獻了可觀的資料量。
  • 標註資料:最稀缺的永遠是標註資料,尤其是符合業務目標的標註。為此,我們在冷啟動階段設計了E&E(Explore and Exploit,探索與利用)機制,有意識地積累線上標註,同時儘量引入更多第三方的標註源。

但這些內容的不同特點,也帶來了不同的挑戰:

  • 內容多樣:前面提到的這些內容的結構化程度各不相同,長短差異也極大,對內容表示提出了很高的要求。
  • 質量不一:源內容非常豐富,但事實上質量、質感遠遠沒有達到理想的標準。尤其是佔絕對大頭的UGC的內容,不做好兩端的質控將極大影響業務目標的優化,甚至會造成體驗問題。
  • 聚焦商戶:平臺99%以上的內容,都以商戶作為核心載體,這個對商戶的理解和表示同樣提出了很高的要求,尤其是在內容化升級的場景下。
  • 場景差異:不同的場景、不同的應用,對模型能力的側重和優化目標不一樣。比如內容和商戶,前者要求要有很高的準確率,同時保證優化線上效果;後者更多的是要求有較強的泛化性,並對質感進行優化。

圖7 雙平臺內容特點與挑戰

3.2 基礎能力模組

所以,文字創意優化要在業務側落地產生效果,還需應用到NLP領域諸多方向的技術。下圖是抽象的整個文字生成應用的基礎能力模組,包括用於源和端質量控制的文字質量層,構建Context表示的文字表示層,以及面向業務優化的端到端模型層,其中很多技術應用了公司其他兄弟團隊包括內容挖掘組、NLP中心、離線計算組的出色成果。如針對負面內容過濾的情感分析,多項針對性的文字分類,針對商戶表示的標籤挖掘等,在這裡特別向他們表示感謝。

圖8 文字生成應用的基礎能力模組

3.3 資訊流標題實踐

雙平臺的內容需要在資訊流分發,在創意上最先優化的就是標題,這是使用者僅能看到兩個要素之一(另一個為首圖),而我們超過95%的內容並沒有原生標題,同時原生標題也存在諸如多樣性差非場景導向等問題,還有二次優化的空間。

但是,有兩點比較大的挑戰,在不同任務上具象可能不一樣。它們的本質並沒有改變,部分也是業界難點:

  • 1. 兩個受限條件:第一,需要以線上點選率轉化率為優化目標,線上沒效果,寫的再好意義都不大;第二,需要與原文強相關,並且容錯空間極小,一出現就是Case。
  • 2. 優化評估困難:第一,模型目標和業務目標間存在天然Gap;第二,標註資料極度稀缺,離線訓練和線上實際預測樣本數量之間,往往差距百倍。

對此,我們通過抽取式和生成式的相結合互補的方式,並在流程和模型結構上著手進行解決。

抽取式標題

抽取式方法在使用者內容上有比較明顯的優勢:首先控制力極強,對源內容相關性好,改變使用者行文較少,也不容易造成體驗問題,可以直接在句子級別做端到端優化。對此,我們把整個標題建模轉變為一箇中短文字分類的問題,但也無法規避上文提到兩個大挑戰,具體表現在:

  • 在優化評估上,首先標題創意衡量的主觀性很強,線上Feeds的標註資料也易受到其他因素的影響,比如推薦排序本身;其次,訓練預測資料量差異造成OOV問題非常突出,分類任務疊加噪音效果提升非常困難。對此,我們重點在語義+詞級的方向上來對點選/轉化率做建模,同時輔以線上E&E選優的機制來持續獲取標註對,並提升線上自動糾錯的能力。
  • 在受限上,抽取式雖然能直接在Seq級別對業務目標做優化,但有時候也須兼顧閱讀體驗,否則會形成一些“標題黨”,亦或造成與原文相關性差的問題。對此,我們抽象了預處理和質量模型,來通用化處理文字創意內容的質控,獨立了一個召回模組負責體驗保障。並在模型結構上來對原文做獨立表示,後又引入了Topic Feature Context來做針對性控制。

整個抽取式的流程,可以抽象為四個環節+一個線上機制:

圖9 抽取式生成標題流程

  1. 源資料在內容中臺完成可分發分析後,針對具體內容,進行系統化外掛式的預處理,包括分句拼句、繁簡轉換、大小寫歸一等,並進行依存分析。
  2. 而後將所有可選內容作質量評估,包括情感過濾、敏感過濾等通用過濾,以及規則判別等涉及表情、冗餘字元處理與語法改寫的二次基礎優化。
  3. 在召回模組中,通過實體識別+TF-IDF打分等方式來評估候選內容標題基礎資訊質量,並通過閾值召回來保證基礎閱讀體驗,從而避免一些極端的Bad Case。
  4. 最後,針對候選標題直接做句子級別的點選/轉化率預估,負責質感、相關性及最終的業務目標的優化。為此,我們先後嘗試了諸多模型結構來解決不同問題,下面重點在這方面做下介紹。

我們第一版Bi-LSTM+Attention整個結構並不複雜。我們的輸入層是PreTrain的Word Embedding,經過雙向LSTM給到Attention層,Dropout後全連線,套一個交叉熵的Sigmod,輸出判別,但它的意義非常明顯,既可以對整句序列做雙向語義的建模,同時可以通過注意力矩陣來對詞級進行加權。這個線上上來看,無論是對體感還是點選轉化率都較召回打分的原始版本,有了巨大提升。而後,我們還在這個Base模型基礎上,嘗試新增過ELMo的Loss,在模型的第一層雙向LSTM進行基於ELMo Loss的Pre Train作為初始化結果,線上上指標也有小幅的提升。

圖10 Bi-LSTM+Attention

但是上述這個結構,將中短文字脫離原文獨立建模,顯然無法更好地兼顧原文受限這個條件。一個表現,就是容易出現“標題黨”、原文不相關等對體驗造成影響的問題。對此,我們在原文與候選標題結合的表示建模方面,做了不少探索,其中以CNN+Bi-LSTM+Attention的基模型為代表,但其在相關性建模受原文字身長度的影響較大,而且訓練效率也不理想。

圖11 CNN+Bi-LSTM+Attention

經過一段時間的探索分析,在原文受限問題上,最終既通過深度模型來表徵深層的語義,也輔以更多的特徵工程,如屬性、Topic等挖掘特徵我們統稱為Context,來表徵使用者能感知到的淺層資訊,“兩條腿走路”才能被更好的學習,這個在文案生成和標題生成的探索中反過來為抽取式提供了借鑑。

在效率上,我們整體替換了RNN-LSTM的迴圈結構,採用了谷歌那時新提出的自注意力的機制,來解決原文表徵訓練效率和長依賴問題。採用這個結構在效果和效率上又有了較大的提升。主要問題是,我們的Context資訊如何更好地建模到Self-Attention的結構中。它與生成式模型結構非常類似,在下文生成式部分有所介紹。

另外,需要說明的一點是,除非有兩個點以上的巨大提升,一般我們並不會以離線評測指標來評價模型好壞。因為前面提到,我們的標註資料存在不同程度的擾動,而且只是線上預測很小的一個子集,無法避免的與線上存在一定的Gap,所以我們更關注的是模型影響的基礎體驗(人工檢測通過率即非Bad Case率),效率表現(訓練預測的時效)最重要的還是線上實際的業務效果。在我們這幾個版本的迭代中,這三個方面都分別獲得了不同程度的優化,尤其是包括點選率、總點選量等在內的業務指標,都累計獲得了10%以上的提升。

圖13 效果資料

受限生成式標題

抽取式標題在包括業務指標和基礎體驗上都獲取了不錯的效果,但仍有明顯的瓶頸。第一,沒有完全脫離原文,尤其在大量質量欠優內容下無法實現創意的二次優化;第二,更好的通過創意這個載體顯式的連線使用者、商戶和內容,這個是生成式標題可以有能力實現的,也是必由之路。

生成式標題,可以抽象描述為:在給定上文並在一定受限條件下,預估下個詞的概率的問題。在資訊流標題場景,抽取式會面臨的問題生成式全部會繼承,且在受限優化上面臨更大的挑戰:

  • 原文受限,首先只有表示並學習到原文的語義意圖才能更好的控制標題生成,這個本身在NLU就是難點,在生成式中就更為突出;其次,標註資料稀缺,原文+標題對的資料極少,而大部分又存在於長文章。為了保證控制和泛化性,我們初期將標題剝離原文獨立建模,通過Context銜接,這樣能引入更多的非標資料,並在逐步完成積累的情況下,才開始嘗試做原文的深度語義表示。
  • 優化評估,受限生成式對訓練語料的數量和質量要求高很多,首先要保證基礎的語義學習也要保證生成端的質量;其次,生成式本質作為語言模型無法在句子層面對業務目標直接做優化,這中間還存在一道Gap。

在表示上,前面已經提到,我們經歷過目標單獨建模和結合原文建模的過程,主要原因還是在於僅針對Target的理解去構建Context銜接,非常容易出現原文相關性問題。所以我們在描述的泛化性方向也做了不少的嘗試,比如儘可能地描述廣而泛主題。諸如“魔都是輕易俘獲人心的聚餐勝地”,因為只面向上海的商戶,內容符合聚餐主題,泛化能力很強,但仍然不能作為一個普適的方案解決問題。

下圖為我們一個有初步成效的RNN-Base的Seq2Seq模型的整體結構。Encoder端使用的是,包括前面提到的主題(包括商戶資訊)表示以及原文的雙向語義表示,兩部分的拼接構成的Context,輸出給注意力層。Decoder端生成文字時,通過注意力機制學習主題和原文表示的權重關係,這個結構也完整應用到了文案生成,其中控制結構會在文案中展開介紹。

圖14 LSTM Attention Based Seq2Seq模型結構

在序列建模上,我們經歷了一個從RNN到自注意力的過程。簡單介紹下,序列建模一個核心要點是如何建模序列間的長依賴關係。影響它的重要因素是,訊號在網路正向和反向計算中傳遞的長度(也就是計算次數),較長的依賴關係消失越嚴重。而在自注意力結構中,每一層都直接與前一層的所有位置直接連線,因此依賴長度均為O(1),最大程度保留了序列間的依賴關係。

可以看到,Encoder包括兩部分,一部分是Source原文,一部分是基於原文和商戶理解的主題Context,兩者共同組成。為此,我們借鑑了NMT的一部分研究思想,調整了Transformer的結構,在原結構上額外引入了Context Encoder,並且在Encoder和Decoder端加入了Context的Attention層,來強化模型捕捉Context資訊的能力。

圖15 Transformer Based Seq2Seq Model

我們在生成式方向探索過程中,對低質內容的標題生成,線上上獲得了接近10%的效果提升,但仍有很多值得進一步的嘗試和深挖的空間。

抽取與生成Combine

在我們的場景中,有兩種Combine的思路,一個是以業務效果為導向的偏工程化方法,另外一個是我們正在探索的一種Copy方法。

工程化的思想非常簡潔,在推薦問題上擴充候選,是提升效果的一個可行途徑,那生成內容即作為新增的候選集之一,參與整體的預估排序。這個方法能保證最終線上效果不會是負向的,實際上也取得了一定的提升。

另一種方法也是學業界研究的子方向之一,即Copy機制,我們也在做重點探索,這裡僅作思路的介紹,不再進行展開。

使用Copy機制的原始目的,是為了解決生成式的OOV(超出詞表範圍)問題。但對於我們的場景來說,大部分的“內容-標題”對資料是來自於抽取式,即我們很多標題資料,其實參考了原文。那如何繼承這個參考機制,針對業務目標學習何時Copy以及Copy什麼,來更優雅地發揮生成式的優勢,就是我們探索Copy方法的初衷。我們的方向是對Copy和Generate概率做獨立建模,其中重點解決在受限情況下的“Where To Point”問題。

業務指標與生成式目標的Gap

我們知道生成式模型其本質是一個Language Model,它的訓練目標是最小化Word級別的交叉熵Loss,而最終我們的需要評價的其實是業務相關的句子級別點選率,這就導致了訓練目標和業務指標不一致。

解決這個問題,在我們的場景中有三個可行的方向,第一是在Context中顯式地標註抽取式模型的Label,讓模型學習到兩者的差異;第二是在預測Decoder的Beam Search計算概率的同時,新增一個打分控制函式;第三則是在訓練的Decoder中,建立一個全域性損失函式參與訓練,類似於NMT中增加的Coverage Loss。

考慮到穩定性和實現成本,我們最終嘗試了第一和第二種方式,其中第二種方式還是從商戶文案遷移過來的,也會在下文進行介紹。線上上,這個嘗試並沒有在Combine的基礎上取得更好的效果,但同樣值得更加深入的探索。

線上E&E機制

最後,介紹一下前面提到過的標題E&E(Explore and Exploit,探索與利用)機制,用來持續獲取標註資料,並提升線上自動糾錯的能力。我們採用了一種貪心的Epsilon Greedy策略,並做了一點修改,類似經典的Epsilon演算法,區別是引入創意狀態,根據狀態將Epsilon分成多級。目的是將比較好的創意可以分配給較大概率的流量,而不是均分,差的就淘汰,以此來提升效率。在初期優化階段,這種方式發揮了很大的作用。

具體我們根據標題和圖片的歷史表現和預設相比,將狀態分成7檔,從上到下效果表現依次遞減,流量分配比例也依次降低,這樣可以保證整個系統在樣本有噪音的情況下實現線上糾偏。

圖17 線上E&E選優

3.4 商戶文案實踐

文案作為一個常見的創意形式,在O2O以商戶為主要載體的場景下有三點需要:第一,賦予商戶以內容調性,豐富創意;第二,通過內容化擴充套件投放的場景;最後,賦能平臺的內容化升級,主要業務目標包括點選率、頁面穿透率等等。

文案生成和標題生成能夠通用整體的生成模型框架,可以歸為Data2Text類任務,最大區別是由文案的載體"商戶"所決定。不同於內容,準確性的要求低很多,複雜度也大大降低,但同時為泛化能力提出了更高的要求,也帶來了與內容生成不同的問題。首先在表示上,對商戶的結構化理解變得尤其關鍵;其次在控制上,有D2T任務特有且非常重要的控制要求。前文也提到了生成一段文字從來不是難點,重要的是如何按照不同要求控制Seq生成的同時,保證很好的泛化性。下文也會分別介紹賣點控制、風格控制、多樣性控制控制等幾個控制方法。實現這樣的控制,也有很多不同的思路。

商戶表示

商戶的表示抽象為Context,如下圖中所示,主要分兩部分。

第一部分來源於商戶的自身理解,一部分則來源於目標文字,兩部分有一定交集。其中商戶理解的資料為賣點或者Topic,在初期,為了挖掘商戶賣點和Topic,我們主要使用成本較低、無需標註的LDA。但是它的準確性相對不可控,同時對產出的賣點主題仍需要進行人工的選擇,以便作為新的標註,輔助後續擴充套件有監督的任務。我們通過Key和Value兩個Field,來對賣點和主題進行共同表達(也存在很多隻有Value的情況),比如下圖這個商戶“菜品”是個Key,“雪蟹”是Value,“約會”則僅是Value。隨著時間的推移,後續我們逐漸利用平臺商戶標籤和圖譜資訊,來擴充套件商戶賣點的覆蓋,以此豐富我們的輸入資訊。該部分在內容挖掘和NLP知識圖譜的相關介紹中都有涉及,這裡不再進行展開。

第二部分目標文字來源,特意新增這部分進入Context,主要有三方面原因:

  • 第一,僅僅依靠商戶理解的Context,在訓練過程中Loss下降極慢,並且最終預測生成多樣性不理想。本質原因是,目標文字內容與商戶賣點、主題間的相關性遠遠不夠。通過不同商戶的集合來學習到這個表示關係,非常困難。
  • 第二,拓寬可用資料範圍,不受商戶評論這類有天然標註對的資料限制,從商戶銜接擴充套件到賣點銜接,引入更多的泛化描述資料,比如各類運營文案等等。
  • 第三,這也是更為重要的一點,能夠間接地實現賣點選擇的能力,這個會在下文進行介紹。

圖18 商戶表示

控制端實現

控制,在解碼端表現為兩類,一類我們稱之為Hard Constrained(強控制),即在資料端給定(或沒有給定)的資訊,一定要在解碼端進行(或不進行)相應描述,這個適用於地域類目等不能出錯的資訊。比如這家商戶在上海,生成時不能出現除上海以外的地域資訊,否則容易造成歧義。另一類稱之為Soft Constrained(弱控制),不同於NMT問題,在文案生成上即便是完全相同的輸入,不同的輸出都是允許的,比如同一商戶,最終的文案可以選擇不同的賣點去描述不同的內容。

這類同屬受限優化的問題,前文提到過有兩個思路方向:第一,通過構建機制來讓模型自己學習到目標;第二,在Decoder的Beam Search階段動態地加入所需的控制目標。我們使用兩者相結合的方法,來完成最終的不同控制的實現。

  • 兩端機制設計:在具體機制實現上,主要依賴在Input Context和Output Decoder兩端同時生效,讓Context的Hard Constrained來源於Output,從而使Model能夠自動學習到強受限關係;而Soft Constrained則通過貝葉斯取樣的方法,動態新增進Context,從而幫助Model提升泛化能力。
  • Decoder控制:簡單介紹下Beam Search,前面提到過,文字生成的預測過程是按Word級進行的,每輪預測的候選是整個詞彙空間,而往往一般的詞表都是十萬以上的量級。如果生成序列序列長度為N,最終候選序列就有十萬的N次方種可能,這在計算和儲存上絕不可行。這時候,就需要使用到Beam Search方法,每一步保留最優的前K(K一般為2)個最大概率序列,其他則被剪枝,本質上可以視作一個壓縮版的維特比解碼。

我們在預測Beam Search階段,除了計算模型概率外,額外增加下圖中綠色部分的Fuction。輸入為之前已生成的序列,具體計算邏輯取決於控制目標,可以自由實現。

圖19 Decoder Beam_Search控制

下面簡單介紹兩個重要的控制實現:

  • 賣點控制:這是最重要的一個控制機制,我們整理了涉及到Hard Constrained的賣點和實體,重要的如地域、品類等,在目標理解過程中直接加入Context。對於Soft Constrained,我們通過賣點的共現計算一個簡單的條件概率,並將賣點依此條件概率隨機新增進Context中,從而讓模型通過注意力學習到受限關係。最後在Decoder fuction部分,我們新增了一個Hard&Soft Constrained的匹配打分項,參與最終的概率計算。最終的實際結果,也非常符合我們的預期。
  • 風格控制:實現方法和賣點控制非常相似,只是這裡的風格,其實是通過不同內容之間的差異來間接進行實現。比如大眾點評頭條、PGC類的內容與UGC類的的寫作風格,就存在極大的差異。那麼在文案上,比如聚合頁標題上可能更需要PGC的風格,而聚合頁內容上則需要UGC的風格。這樣的內容屬性,即可作為一個Context的控制訊號,讓模型捕獲。

3.5 內容聚合

多樣性控制

多樣性,在文案生成上是一個比較重要和普遍的問題,尤其對於同一個店鋪、同一個賣點或主題同時生成N條內容的聚合頁來說,更為突出。本質原因是,在解碼預測Beam Search時永遠選擇概率最大的序列,並不考慮多樣性。但是如果預測時採用Decoder概率Random Search的方法,則在通順度上會存在比較大的問題。

對此,我們直接對全域性結果進行優化,在預測時把一個聚合頁Context放到同一個batch中,batch_size即為文案條數,對已經生成序列上進行實體重複檢測和n-gram重複檢測,將檢測判重的加一個懲罰性打分,這個簡單的思想已經能非常好的解決多樣性問題。

圖20 聚合頁多樣性控制

4. 動態創意

目前,很多搜尋推薦等排序優化場景,都會將創意資訊作為特徵工程一部分新增進精排或召回模型。那如果把創意優化近似為一個內容級創意排序問題,也可以無縫銜接常用的Wide&Deep、DNN、FNN等CTR預估模型。但是這之前,需要明確一點非常重要的問題,即它與推薦精排模型的差異,它們之間甚至可能會相互影響,對此,提供下我們的思考。

與精排模型的差異

  • 第一,精排模型能否一併完成創意的排序,答案顯然是肯定的。但它的複雜度決定了能Cover候選集的上限,效能上往往接受不了叉乘創意帶來的倍數增長。但此非問題的關鍵。
  • 第二,創意層排序在精排層之前還是之後,直接影響了創意模型的複雜度,也間接決定了其效果的上限,以及它對精排模型可能的影響程度,從而可能帶來全域性的影響。此沒有最佳實踐,視場景權衡。
  • 第三,精排模型與創意排序業務目標一致,但實現方式不同。精排模型通過全域性排序的最優化來提升業務指標,而創意優化則是通過動態提升內容受眾價值來提升業務指標。

最後,我們回到使用者視角,當使用者在瀏覽資訊流時,其實看到的只有創意本身(標題、圖片、作者等資訊),但使用者卻能從中感知到背後的諸多隱含資訊,也就是CTR預估中的重要內容/商戶類特徵,諸如類目、場景、商戶屬性等。這個現象背後的本質在於,創意可以表徵很多高階的結構化資訊。

基於這一點,在創意優化的特徵工程上,方向就很明確了:強化User/Context,弱化Item/POI,通過創意表徵,來間接學習到弱化的資訊從而實現創意層面的最優排序。該部分工作不僅僅涉及到文字,在本文中不再展開。

使用者興趣與文字生成結合的可能性

動態創意為文字生成提供了全新的空間,也提出了更高的要求。動態創意提升受眾價值,不僅僅只能通過排序來實現,在正篇介紹的最後部分,我們丟擲一個可能性的問題,供各位同行和同學一起思考。也希望能看到更多業界的方案和實踐,共同進步。

5. 總結與展望

整個2018年,大眾點評資訊流在核心指標上取得了顯著的突破。創意優化作為其中的一部分,在一些方面進行了很多探索,也在效果指標上取得了較為顯著的收益。不過,未來的突破,更加任重而道遠。

2018年至2019年初,NLP的各個子領域湧現了非常多令人驚喜的成果,並且這些成果已經落地到業界實踐上。這是一個非常好的趨勢,也預示著在應用層面會有越來越多的突破。比如2019年初,能夠續寫短篇小說的GPT2問世,雖然它真實的泛化能力還未可知,但讓我們真切看到了在內容受限下高質量內容生成的可能性。

最後,回到初心,我們希望通過創意的載體顯式地連線使用者、商戶和內容。我們能瞭解使用者關注什麼,知道某些內容表達什麼,獲知哪些商戶好,好在哪裡,將資訊的推薦更進一步。

參考資料

  • [1] Context-aware Natural Language Generation with Recurrent Neural Networks. arXiv preprint arXiv:1611.09900.
  • [2] Attention Is All You Need. arXiv preprint arXiv:1706.03762.
  • [3] Universal Transformers. arXiv preprint arXiv:1807.03819.
  • [4] A Convolutional Encoder Model for Neural Machine Translation. arXiv preprint arXiv:1611.02344.
  • [5] Don’t Give Me the Details, Just the Summary! Topic-Aware Convolutional Neural Networks for Extreme Summarization. arXiv preprint arXiv:1808.08745.
  • [6] Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.
  • [7] ELMO:Deep contextualized word representations. arXiv preprint arXiv:1802.05365.
  • [8] openAI GPT:Improving Language Understanding by Generative Pre-Training.
  • [9] Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473.
  • [10] Tensor2Tensor for Neural Machine Translation. arXiv preprint arXiv:1803.07416.
  • [11] A Convolutional Encoder Model for Neural Machine Translation. arXiv preprint arXiv:1611.02344.
  • [12] Sequence-to-Sequence Learning as Beam-Search Optimization. arXiv preprint arXiv:1606.02960.
  • [13] A Deep Reinforced Model For Abstractive Summarization. arXiv preprint arXiv:1705.04304.
  • [14] SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient. arXiv preprint arXiv:1609.05473.
  • [15] Generating sequences with recurrent neural networks. CoRR,abs/1308.0850.

作者簡介

  • 憶純,2015年加入美團點評,演算法專家,目前負責點評資訊流內容創意工作。
  • 楊肖,博士,2016年加入美團點評,高階演算法專家,點評推薦智慧中心內容團隊負責人。
  • 明海,2016年加入美團點評,美團點評研究員,點評推薦智慧中心團隊負責人。
  • 眾一,2016年加入美團點評,演算法研發工程師,目前主要負責點評資訊流創意相關演算法研發工作。
  • 揚威,2018年初加入美團點評,演算法研發工程師,目前主要負責點評資訊流動態創意相關演算法研發工作。
  • 鳳陽,2016年加入美團點評,演算法研發工程師,目前主要負責點評資訊流內容運營演算法優化的工作。

大眾點評資訊流基於文字生成的創意優化實踐

相關文章