聊聊机器如何“写“好广告文案?
作者 | 張超
“除非你的廣告建立在偉大的創意之上,否則它就像夜航的船,不為人所注意。”
—— 大衛·奧格威,現代廣告業奠基人
01 引子
創意作為一種信息載體,將廣告主的營銷內容呈現給用戶,輔助用戶消費決策,乃至激發潛在需求。通常,創意可表現為文本、圖片及視頻物料的單一或組合形式,而創意優化旨在提升創意物料的業務價值,本文簡要聊聊針對創意文案自動撰寫的一些探索與實踐,整體分五部分:第一部分簡述廣告文案優化的必要性;第二部分介紹文本生成相關概念及主流方法;第三部分介紹在文案生成方面的探索實踐;第四部分借鑒業界研究成果,探討文案自動生成未來的一些工作思路;最后做下小結。
廣告文案優化的必要性
廣告創意是連接用戶和客戶服務的橋梁,是信息傳遞最重要、最直接的方式,因此創意的質量很大程度決定了用戶需求滿足度和客戶推廣效果。
面對海量的用戶需求,客戶推廣創意的人工運營+維護成本較高,尤其對于中小客戶更難以承擔,導致質量參差不齊,千篇一律,無法實現精細化的業務表達,更無法做到鏈路的閉環優化。
02 文本生成任務
2.1 生成框架及任務分級
文本生成在學術界稱為 NLG(Nature Language Generation),廣義上講,只要輸出為自然語言文本的任務均可劃入文本生成的范疇。盡管 NLG 領域起源較早,但很長一段時間處于停滯狀態,主要原因在于 NLG是一個簡單輸入到復雜輸出的任務,問題復雜度太大,很難有準確高且泛化強的方法,許多場景下甚至低于人工規則。近年來,隨著深度學習理論技術的成熟,NLG 領域特別是機器翻譯、文檔摘要等有了突破性進展。
根據輸入數據的形式,文本生成可細分為文本到文本(Text2Text)、數據到文本(Data2Text)以及圖到文本(Image2Text)的生成。本文重點討論Text2Text,當前業界最主流的解決方案是 Seq2Seq+Attension的序列式生成框架(如下圖)。
其中:
-
編碼端(Encoder):將輸入序列的詞(Token)映射成Embedding向量,借助深度神經網絡學習到整個句子的語境表示(Contextual Representation);
-
解碼端(Decoder):基于輸入序列的語境表示以及已生成的詞,預測當前時間步最可能的詞,最終得到完整的語句;
-
注意力機制(Attention):相比固定編碼端的語境表示,注意力機制通過動態調整不同輸入詞在每一步生成時的貢獻權重,使得解碼器能夠抽取更關鍵有效的信息,進而作出更準確的決策。
Seq2Seq+Attention很好地解決了不定長輸入到序列式輸出的問題,是十分通用的生成方案,被廣泛應用于機器翻譯、摘要生成、自動對話、閱讀理解等主流任務,各項核心指標取得顯著提升。
序列式文本生成框架下,根據編解碼兩側的數據組織形式,分為抽取式和抽象式兩種,結合實踐經驗,總結出各自的優劣勢如下:
-
抽取式(Less open-ended):從原文抽取出關鍵信息,再通過編碼表征和解碼表達完成文本輸出。其優勢在于,降低任務復雜度,可解釋性好,保證與原文較高的相關性;劣勢在于,依賴關鍵信息的提取質量,同時受限于原文,泛化性不足;
-
抽象式(More open-ended):脫離原文的限制,實現完全端到端的生成,泛化能力上具有壓倒式優勢,但建模復雜度高,可解釋性不足,控制難度較大。
2.1 文本表示的常見方法
前面提到,編碼端Encoder 通過對源端輸入進行建模獲取語義表示。實際上解碼端Decoder 生成時,同樣需要獲取已生成序列的語義表示。因此,如何設計模型學習文本的深層語義表示,對于最終任務的效果極為重要。
最初,詞袋模型(BOW)是最常用的文本表示方法。隨著深度神經網絡的興起,人們提出了一種獲得詞向量的詞嵌入(Word Embedding)方法,以解決詞匯表過大帶來的“維度爆炸”問題。詞/句嵌入思想已成為所有基于深度學習的NLP系統的重要組成部分,通過在固定長度的稠密向量中編碼詞和句子,大幅度提高神經網絡處理語句乃至文檔級數據的能力。
詞向量的獲取方式可以大體分為基于統計的方法(如共現矩陣、SVD)和基于語言模型的方法兩類。2013 年Google發布基于語言模型獲取詞向量的word2vec框架,其核心思想是通過詞的上下文學習該詞的向量化表示,包括CBOW(通過附近詞預測中心詞)和Skip-gram(通過中心詞預測附近詞)兩種方法,結合負采樣/層級softmax的高效訓練。word2vec詞向量可以較好地表達不同詞之間的相似和類比關系,被廣泛應用于NLP任務中。
語境表示學習(Contextual Embedding Learning)解決的核心問題是,利用大量未標注的文本語料作預訓練(Pre-training),學習文本的深層語境表達,進而在微調階段(Fine-tuning)輔助監督任務更好地完成目標。
目前,語境表示學習領域代表性的工作包括 ELMO(Embeddings from Language Models)、GPT(Generative Pre-Training)和BERT(Bidirectional Encoder Representations from Transformers)。其中,ELMO模型提出根據上下文動態變化詞向量,通過深層雙向 LSTM 模型學習詞的表示,能夠處理單詞用法中的復雜特性,以及這些用法在不同的語言上下文中的變化,有效解決一詞多義的問題。GPT模型采用Transformer抽取文本特征,首次將Transformer應用于預訓練語言模型,并在監督任務上引入語言模型(LM)輔助目標,從而解決微調階段的災難性遺忘問題(Catastrophic Forgetting)。相比GPT的單向LM,BERT引入雙向 LM以及新的預訓練目標NSP(Next Sentence Prediction),借助更大更深的模型結構,顯著提升對文本的語境表示能力。業務開展過程中,我們的文本表示方法也經歷了從傳統RNN到全面擁抱Transformer的轉變。
下面特別介紹同文本生成任務高度適配的MASS 預訓練框架(Masked Sequence to Sequence pre-training)。我們知道,常規BERT只能用于文本理解(NLU)相關任務,如文本分類、情感識別、序列標注等,無法直接用在文本生成上,因為BERT 只預訓練出一個編碼器用于下游任務,而序列式文本生成框架包含編碼器、解碼器以及起連接作用的注意力機制。對此,微軟團隊提出將BERT升級至 MASS,非常適合生成任務的預訓練。
MASS的整體結構如下,其訓練方式仍屬于無監督。對于一段文本,首先隨機mask其中連續的 K 個詞,然后把這些詞放入Decoder的相同位置,而Encoder中只保留未被mask掉的詞。借助這種學習方式,期望Decoder能綜合利用Encoder的語義表達信息和Decoder前面的詞,來預測這些被mask的詞序列。
有意思的是,BERT和GPT都可視為MASS的特例。當 masked序列長度K=1時,MASS解碼器端沒有任何輸入信息,相當于只用到編碼器模塊,此時MASS就退化成BERT;當 K=句子長度時,MASS編碼器端所有詞都被屏蔽掉,解碼器的注意力機制相當于沒有獲取到信息,此時MASS便退化成GPT,或標準單向LM。
對于為什么MASS能取得比較好的效果?論文給出了以下解釋:
-
Encoder中mask部分tokens,能夠迫使它理解unmasked tokens,提升語義表示能力;
-
Decoder中需要預測masked的連續tokens,這同監督訓練時的序列式解碼相一致;
-
Decoder中只保留masked的tokens,而不是所有的tokens,促使Decoder盡量從Encoder中抽取關鍵信息, Attetion 機制也得到有效訓練。
2.3 怎么評估生成文案的好壞
目前主流的評估方法主要基于機器指標[25]和人工評測。機器指標從不同角度自動衡量生成文本的質量,如基于模型輸出概率判斷是否表達通順的perplexity,基于字符串重疊判斷內容一致性的BLUE/ROUGE、判斷內容多樣性的Distinct-N/Self-Bleu等。基于數據的評測,在機器翻譯、閱讀理解等相對封閉、確定的場景下有很大意義,這也是對應領域最先突破的重要原因。對廣告創意優化場景來說,除選取合適的基礎機器指標作為參考,會更注重業務指向的目標優化,故多以線上實際效果為導向,輔以人工評測。
關于人工評測指標,主要看兩方面:一是生成文案的基礎質量,包括文本可讀性及內容一致性,可讀性主要看字面是否通順、重復及是否有錯別字等,一致性主要看前后語義邏輯是否一致、是否同落地頁內容一致;二是內容多樣性,這直接關系到用戶的閱讀體驗及客戶的產品滿意度。
03 廣告文案生成實踐
3.1 基礎數據來源
“巧婦難為無米之炊”,要開展文本創意生成的工作,業務關聯數據必不可少。當前使用到的文本數據源主要包括:
-
廣告展點日志:客戶自提標題/描述、用戶行為數據
-
廣告主落地頁:落地頁標題、業務描述、知識文章
-
大搜日志: 自然結果展點數據
上述數據來源豐富、數據規模大,也伴隨著如下挑戰:
-
內容多樣:數據長度分布、內容表達形式存在顯著差異,對文本表示提出較高要求;
-
質量不一:雖然數據量大,實際上較大比例的數據質量并不達標,如果源端不做好質量控制,勢必影響業務目標的優化;
-
場景不一:不同的業務場景下,模型優化的側重點也不一樣,對如何利用已有數據達成業務目標提出更高要求。比如廣告標題與廣告描述,除了優化點擊率、轉化率這些核心業務指標,前者更側重內容簡明扼要、準確傳達客戶核心業務,后者側重內容豐富多樣、允許適度做擴展延伸。
3.2 抽取式創意生成
傳統意義上的「抽取式」,類如在文檔摘要任務中,從段落中選出一些重要片段排列組合后作為摘要結果,不產生新信息。這里將抽取式生成表示為:從原文中抽取出一些關鍵信息,進行直接控制型生成(directed generation)。
在創意優化工作的開展初期,我們調研并上線了抽取式的生成策略,取得較好的指標提升。下面介紹抽取式生成在廣告描述上的應用,這一方法突出優勢在于生成的新文本同原文整體契合度高,也具備一定的泛化表達。
-
信息提取:廣告創意中的關鍵信息,一般表現為核心業務/營銷點/品牌詞/專名等,而廣告描述相對標題更長,內容形式更自然,要完整保留原文關鍵信息有一定難度。對此,我們采用由粗到精(coarse-to-fine)的選擇策略:首先通過wordrank選出高權重詞,再以片段為單位,各片段保留次高權重詞/專名詞,并對被切散的品牌詞作策略撈回。
-
生成模型:采用Transform-based Seq2Seq文本生成框架(如下圖),輸入端包含Source和 Context 兩部分,我們將拍賣詞作為 Source,將從描述提取的關鍵詞序列作為Context,Target對應原描述,類似”選詞造句”的方式,指導模型學習將離散詞組合表述成完整語句的能力。
為兼顧生成質量與業務目標的提升,我們構建了以下重要的控制機制:
-
核心業務一致:拍賣詞(bidword)是用戶需求及廣告主業務的表達,而廣告創意普遍包含拍賣詞,通過將拍賣詞作為 Source,在Encoder Source與Decoder Output構建起強約束(Hard Constrained),保證模型生成的內容同核心業務高度一致;
-
業務目標一致:生成模型本質是一個Language Model,訓練目標是最小化詞級別的交叉熵損失,而業務目標主要是優化廣告點擊率,這導致訓練任務和業務目標不一致。對此,采樣的方案是:假設核心指標同創意質量正相關,則可以按照"觸發買詞+觸發類型+廣告位置"進行分桶,分桶目的是盡量降低暴露偏差(Exposure Bias);同一桶內按核心后驗指標排序,取頭部的創意作為訓練語料,從而指導模型學習高質量創意的內容組織與表達方式;
-
信息區分選擇:Context 中關鍵詞序列若全部來自Target,自然也引入了強約束,即輸入詞均將出現在輸出文本中,這種情況下的約束關系同業務目標卻不太契合,首先關鍵信息提取階段容易引入低質噪聲詞,再加上模型受眾主要是低質廣告創意,在其內容整體欠優的情況下,強約束式生成難以保證生成質量。對此,組織訓練數據時通過在 Context中隨機加入一些干擾詞,促使模型具備甄別Context優質信息的能力,緩解強約束式生成帶來的泛化性不足以及質量問題。
3.3 抽象式創意生成
抽取式創意生成在質量和業務指標上均取得較好效果,但也存在明顯瓶頸,即受限于原文,泛化能力有限,同時依賴關鍵信息的抽取質量,尤其原始內容整體欠優時難以完成二次優化。對此,我們嘗試了抽象式的生成策略:一方面去掉Context中原文的關鍵信息,解除同 Target 強約束關系;另一方面,引入業務場景相關的原始文本作為指導,類似情景寫作,給定當前情景的 topic以及前文信息,生成相匹配的后文。只要控制好核心主題以及業務敏感信息,抽象式生成的探索空間比抽取式開放得多,對創意內容的優化潛力顯著提升。
下面介紹抽象式生成策略在廣告標題上的應用。廣告標題是連接用戶與客戶最重要的信息渠道,因此除了優化標題點擊率,用戶體驗同樣重要,即廣告標題(所見)需要同廣告落地頁(所得)保持一致,"掛羊頭賣狗肉”的現象十分有損用戶體驗。最直接的想法,就是將落地頁的文本信息前置到廣告標題中。分析發現,落地頁文本在內容分布與表達方式上同廣告差異較大,直接替換或部分插入的方式不太可取。對此,我們借助抽象式生成策略,將落地頁信息加入Context作為指導,期望生成與之匹配且符合廣告表達形式的文本,模型如下所示。
實踐過程中,發現很多case 生成質量不佳(字面重復、語義不通順),而且沒有包含落地頁的內容,經過分析可能有以下原因:
如前所述,抽象式生成的建模復雜度本身就高,加上訓練數據中兩端文本在內容分布和表達上的顯著差異,進一步加大模型的學習難度;
訓練數據中,Target 端廣告創意包含Context中落地頁信息的占比很小,此外將拍賣詞作為Source(保留核心業務),不可避免地引入強約束,進一步削弱Attention 機制對落地頁信息的關注,最終在解碼輸出時自然難以出現同落地頁相匹配的內容。
針對以上問題,一方面我們引入 MASS 預訓練技術、調大模型結構,另一方面基于信息校驗調整訓練語料,促使落地頁內容更好地融入生成結果。其中,預訓練環節比較有效,一定程度緩解調整后平行語料匱乏的問題,同時賦予編碼端更強的語義刻畫能力、attention機制更好的信息捕捉能力以及解碼端更準確的信息表達能力。評估生成效果,模型能夠更好參考落地頁的內容,結合廣告核心業務,生成體驗一致的優質廣告文案。
04 可借鑒的一些思路
前一節中提到業務開展過程遇到的一些問題,大部分通過模型升級、數據優化及規則校驗能夠得到有效解決,但對于內容一致性、內容多樣性兩個重要方面,解決方案并非最優,仍有較大優化空間,參考學術界相關研究,下面列舉兩個優化思路。
4.1 模型結構改進
目前我們采用的 Seq2Seq 生成框架(如下圖),在輸入端將Source和 Context 連成一個文本序列送入編碼器。整體來看Source 和 Context 在任務中扮演著不同的角色,合并輸入容易對編碼器的語義特征提取造成干擾。比如,Context 文本一般比 Source 長,且Context往往包含一些噪聲,雖然通過訓練數據組織構建了強約束關系(Source拍賣詞普遍出現在 Target 中),但在從模型結構上看,編碼端實際弱化了 Source ,解碼端很難對融合編碼后的信息進行區分,不利于有效生成,甚至會出現業務偏離的夢幻case,尤其對于抽象式地生成,因為該場景下Source 與Context的內容分布通常差異較大。
對此,有研究提出將Source 與 Context 區分開來,在輸入端兩者各自進行編碼(見論文[13]),這樣能夠帶來諸多好處:
-
消除編碼階段不同源數據的相互干擾,有利于改善 Encoder語義特征的提取效果;
-
允許根據具體業務需求,為不同來源的數據實施特有的編碼控制策略,比如文本過長且包含噪聲的 Context容易降低 Encoder 編碼效果,對此可以在self-attention模塊中加入Softmax temperature以影響概率分布計算結果(如下圖),其中 τ 值越大將促使模型更加關注那些得分高的詞,即 Context 中的重要信息
-
Decoder側可根據實際需求,對多源數據的隱層表達實施不同的整合策略(如下圖),其中:策略(a)直接將 Source 與 Context 的編碼向量E(S)與 E?直接 Concat 送入 Decoder 的 Attention 模塊;策略(b)先后對 E?與 E(S)分別作Attention,從而一方面實現 Source 與 Context 的信息交互,更加強了 Source對于解碼輸出的控制,這一策略有助于提升生成文本同 Source 的一致性;策略?在(b)的基礎上,通過多輪交替式的 Attention 進一步加強 Source 與 Context 的信息交互。
-
對Context單獨編碼,便于后續引入更多類型的數據,比如結構化知識、客戶屬性、用戶個性化特征,甚至跨模態的圖片/視頻向量表達。
此外,論文提出一種數據增強策略,實驗論證各項評估指標取得顯著提升,具體是:對于每條訓練數據(表示為 <S, C> -> T),以一定概率構造S->T或者S->C的新語料,前者指導模型生成與 Source 更相關的內容,后者一方面促使編碼器從 Source 提取到與 Context 更相關的信息、另一方面由于 Context 要比 Source 長許多,可視為對解碼器作LM預訓練。
4.2 外部知識增強
無論是抽取式還是抽象式,生成目標都是對輸入信息進行合理準確的擴展與泛化,實際解碼預測時主要基于編碼器對輸入信息的理解表示,輸出概率最大的序列。因此,編碼器是否能夠充分理解輸入文本,決定了最終生成的效果。
在人工評測時發現許多"標題黨"、"萬金油”式的生成文本,比如”XXX,告訴你一個簡單的解決方法”、”XXX是一家集研發、生產、銷售為一體的公司”、”XXX,歡迎點擊咨詢”等,在對話任務中稱這類現象為"general and meaningless response”。出現這種現象主要在于,僅僅依靠 Source/Context 自身文本,在語義編碼階段難以對業務實體、專名等概念類的詞進行充分理解和表示,加之數據驅動的模型容易”偷懶”,從而導致生成文本偏短、偏通用化、業務實體缺失/偏離。
常規解決方法是調整/擴充訓練語料、在Decoder端加入相關控制策略,一定程度上能夠緩解。實際上,Seq2Seq的生成任務普遍存在上述問題,對此,目前業界廣泛研究且驗證有效的方案是引入外部常識性知識(commonsense knowledge),輔助指導模型作出更全面、更準確的決策。對于如何利用外部知識,一類做法是在監督訓練之前,基于知識物料作預訓練,加深模型對實體信息的理解,訓練語料通常是"實體+描述性定義",如”主機游戲,又名電視游戲,包含掌機游戲和家用機游戲兩部分,是一種用來娛樂的交互式媒體”;另一類做法是在監督訓練階段,先從 Source 和 Context 文本中提取出一系列實體詞,將實體詞作為索引從通用知識庫中檢索出對應的Knowledge信息,借助 memory 機制將其融入模型中(如下圖),實現<Source,Context,Knowledge>三者共同作用訓練與生成,具體實現細節見論文[14]。
05 小結
針對文本生成的一系列節點,從模型結構到優化目標,從數據組織到任務遷移,業界不斷涌現出眾多優秀的研究及實踐成果,如大規模預訓練模型(ERNIE/PLATO/T5/BART)、圖譜知識嵌入、Memory機制、跨模態/跨場景聯合建模等等,為技術業務迭代給予很好的借鑒指導,后續有機會再交流,感興趣的同學可參考[15]~[24]相關資料,歡迎討論交流。
————END————
參考資料:
[1]Neural machine translation by jointly learning to align and translate,arXiv:1409.0473
[2]Attention Is All You Need,arXiv:1706.03762
[3]ELMO:Deep contextualized word representations,arXiv:1802.05365
[4]OPAI GPT: Improving Language Understanding by Generative Pre-Training
[5]Bert: Pre-training of deep bidirectional transformers for language understanding,arXiv:1810.04805
[6]MASS: Masked Sequence to Sequence Pre-training for Language Generation,arXiv:1905.02450
[7]Generating sequences with recurrent neural networks,arXiv:1308.0850
[8]Distributed Representations of Words and Phrases and their Compositionally, arXiv:1310.4546
[9]Get To The Point: Summarization with Pointer-Generator Networks,arXiv:1704.04368
[10]Don’t Give Me the Details, Just the Summary! Topic-Aware Convolutional Neural Networks for Extreme Summarization,arXiv:1808.08745
[11]Pre-trained Models for Natural Language Processing: A Survey,arXiv:2003.08271
[12]Do Massively Pretrained Language Models Make Better Storytellers? ,arXiv:1909.10705
[13]Improving Conditioning in Context-Aware Sequence to Sequence Models,arXiv:1911.09728
[14]CTEG: Enhancing Topic-to-Essay Generation with External Commonsense Knowledge
[15]Unified Language Model Pre-training for Natural Language Understanding and Generation,arXiv:1905.03197
[16]Knowledge Diffusion for Neural Dialogue Generation
[17]Coherent Comment Generation for Chinese Articles with a Graph-to-Sequence Model,arXiv:1906.01231
[18]Fast Abstractive Summarization with Reinforce-Selected Sentence Rewriting,arXiv:1805.11080
[19]What makes a good conversation? How controllable attributes affect human judgments,arXiv:1902.08654
[20]The curious case of neural text degeneration,arXiv:1904.09751
[21]Straight to the Gradient: Learning to Use Novel Tokens for Neural Text Generation,arXiv:2106.07207
[22]Towards Facilitating Empathic Conversations in Online Mental Health Support: A Reinforcement Learning Approach,arXiv:2101.07714
[23]ERNIE-GEN: An Enhanced Multi-Flow Pre-training and Fine-tuning Framework for Natural Language Generation,arXiv:2001.11314
[24]PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable,arXiv:1910.07931
[25]Evaluation of Text Generation: A Survey,arXiv:2006.14799
推薦閱讀:
百度工程師教你玩轉設計模式(適配器模式)
百度搜索業務交付無人值守實踐與探索
分布式ID生成服務的技術原理和項目實戰
揭秘百度智能測試在測試評估領域實踐
再添神器!Paddle.js 發布 OCR SDK
視頻中為什么需要這么多的顏色空間?
總結
以上是生活随笔為你收集整理的聊聊机器如何“写“好广告文案?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pwm原理及arduino使用pwm教程
- 下一篇: 不能打印机与计算机,电脑打印机无法打印