深度學習在搜狗無線搜尋廣告中的應用
本文來自搜狗資深研究員舒鵬在攜程技術中心主辦的深度學習Meetup中的主題演講,介紹了深度學習在搜狗無線搜尋廣告中的應用及成果。重點講解了如何實現基於多模型融合的CTR預估,以及模型效果如何評估。
搜尋引擎廣告是使用者獲取網路資訊的渠道之一,同時也是網際網路收入的來源之一,通過傳統的淺層模型對搜尋廣告進行預估排序已不能滿足市場需求。近年來,深度學習在很多領域得到廣泛應用並已取得較好的成果,本次演講就是分享深度學習如何有效的運用在搜狗無線搜尋廣告中。
本次分享主要介紹深度學習在搜狗無線搜尋廣告中有哪些應用場景,以及分享了我們的一些成果,重點講解了如何實現基於多模型融合的CTR預估,以及模型效果如何評估,最後和大家探討DL、CTR預估的特點及未來的一些方向。
深度學習在搜尋廣告中有哪些應用場景
比較典型的深度學習應用場景包括語音識別、人臉識別、博奕等,也可以應用於搜尋廣告中。首先介紹下搜尋廣告的基本架構,如下圖:
- 首先使用者查詢。
- 查詢詞給Bidding Server處理,Bidding Server主要負責業務邏輯。例如某種廣告在什麼情況下不能展現,或這個客戶同一個廣告在什麼時間段什麼地域展現。
- Bidding Server請求Retriever Server,Retriever Server主要負責召回,廣告庫很龐大(搜狗的廣告庫大概在幾十億這個規模),因為資料量非常大,所以需要根據一些演算法從中找出和當前查詢詞最相關的一批廣告,這就是Retriever Server做的事情。
- Retriever Server處理完後,會把這些比較好的廣告回傳給Quality Server,Quality Server主要負責點選率預估和排序,此時的候選集數量相對較少,Quality Server會採用複雜的演算法針對每條廣告預估它當前場景的點選率,並據此排序。
- Quality Server將排序結果的top回傳給Retriever Server。
- Retriever Server回傳給Bidding Server。
- Bidding Server做封裝最後展示給使用者。
以上過程中可應用到深度學習的場景如下:
基於多模型融合的CTR預估
CTR預估流程
CTR預估的流程圖如下:
- Data是原始資料,包括點選及查詢日誌,從這些原始資料裡抽出一些特徵。
- Feature包括查詢特徵、廣告特徵、匹配特徵。
查詢特徵是和查詢詞相關的特徵,查詢發生的地域、時間等。廣告特徵是指廣告本身的資訊,例如:來自哪個客戶,是哪個行業的,它的關鍵詞是什麼,它的標題、描述、網址是什麼等各種資訊。匹配特徵是指查詢詞和廣告的匹配關係。 - 然後會進行模型的訓練,包括線性和非線性。
- 模型線上下訓練完後會到線上,線上Server會實時做特徵抽取並預估。
例如:線上實時收到查詢請求後,就會知道查詢詞是什麼。前面講的Retriever Server,它會召回一系列廣告,並抽出相關資訊,比如廣告的標題、關鍵詞、描述等資訊,有了這些資訊後會利用載入的模型給出預估CTR,最終會進行Rank排序,從而篩選出滿足指定條件的一些廣告進行展示。
特徵設計
離散特徵
離散特徵是指把東西分散出來表示,比如OneHot,非常直觀,例如使用者當天所處的時間段,他和最終點選率有關係,那麼我把一天24小時分成24個點,他在哪個小時就把哪個點點亮置1,這個特徵就設計完了。它的刻畫比較細緻,設計比較簡單,但他的特徵非常稀疏,我們線上特徵空間非常大,有上十億,但任何一個請求場景到來,它真正有效的特徵大概只有幾百個,絕大部分都是空的。因為特徵量非常大,不能設計太複雜的模型,否則無法用於線上。
離散特徵總結:容易設計,刻畫細緻,特徵稀疏,特徵量巨大,模型複雜度受限。
連續特徵
還是以時間舉例,離散特徵會把它變成24個點,連續特徵就會變成一個值,比如1、2、3、4、5一直到24,它只會佔一個位置。需要仔細設計,很難找到一個直接的方法來描述查詢詞中包括哪些東西。它是定長的,所以一個請求場景到來,它有多少特徵是固定的。不像離散特徵是不定長,查詢詞不一樣,有的是兩個特徵或三個特徵,對於特徵點可能有兩個或三個,這對於我們後面的工作也有一定的影響。連續特徵比較稠密,每個位置都會有值,它特徵量相對較小,如果用連續特徵設計的話可能需要幾百維就可以,因此可以使用多種模型來訓練。
連續特徵總結:需要仔細設計,定長,特徵稠密,特徵量相對較小,可以使用多種模型訓練。
模型類別
線性
優點:簡單、處理特徵量大、穩定性好。
缺點:不能學習特徵間的交叉關係,需要自己去設計。比較典型的如Logistic Regression,有開源的工具包,部署簡單且效果不錯。非線性
優點:能夠學習特徵間非線性關係。
缺點:模型複雜、計算耗時。
比如LR模型就算特徵再多,它只是查表加在一起做指數運算就出來了,像DNN、GBDT就會非常複雜,導致計算過程比較慢。
總結:Logistic Regression即能處理連續值又能處理離散值。DNN幾乎不能處理離散值,除非做特殊的預處理。
模型融合
前面講過每個模型都有自己的特點:Logistic Regression處理特徵量大,大概在2010年前後開始大量應用於業界,很難有模型能完全超越它;DNN可以挖掘原來沒有的東西。我們就想這兩個模型能不能將優點進行融合,揚長避短,從而得到更好的結果。
第一種方案:CTR Bagging
有多個模型,將多個模型的輸出CTR加權平均。
實現方法簡單,模型之間不產生耦合。
可調引數有限,只能調Bagging權重的引數,不能調其他東西,所以改進空間相對較小。
第二種方案:模型融合
任一模型的輸出作為另一模型的特徵輸入,彼此進行交叉。
實現方法複雜,模型之間有依賴關係,因依賴關係複雜,風險也比較高。
好處是實驗方案較多,改進空間較大。
我們選了後一種方案,因為單純CTR Bagging太過簡單粗暴了。
模型融合的工程實現
目標
可支援多個不同模型的載入和計算
可支援模型之間的交叉和CTR的bagging
可通過配置項隨時調整模型融合方案
避免不必要的重複操作,減少時間複雜度
解決方法(引入ModelFeature的概念)
模型本身也看做一個抽象特徵
模型特徵依賴於其他特徵,通過計算得到新的特徵
模型特徵輸出可作為CTR,也可作為特徵為其他模型使用
限定ModelFeature的計算順序,即可實現bagging模型交叉等功能
模型融合
模型融合流程圖如下:
- 首先線下,將PV、Click、Session做成一個sample。
- 然後把sample做成特徵,包括OneHot、CTR。
- 分別將OneHot、CTR傳送到各自模組的train,就會得到相應的模型。
- 線上,Bidding Server 會經過 Retriever Server召回廣告。
- 然後傳給Quality Server進行計算,它是通過One Case儲存和這個查詢相關的所有資訊。
- Quality Server會把One Case裡的資訊轉換成One Hot特徵。
- 然後將結果存到特徵池,特徵池包含所有特徵。
- LR模型從特徵池裡讀取資料,而後計算出CTR,還包括其他增量資訊。
- 將這些回送到特徵池。
- 此外DNN模型也會讀取特徵池裡的資訊,並將最終計算結果回傳給特徵池。
- CTR可以從特徵池裡直接取出,然後進行後續的操作。
我們去年將這套框架部署到線上,並持續進行改進,線上上執行了半年多,基本能適用於業務的發展:曾經上線了LR和DNN的交叉,還上線了LR和GBDT的融合。GBDT會將過程資訊回傳給LR,由LR完成最終輸出。此架構經過生產系統的檢驗,運轉正常。
模型效果評估
期間我們會做很多實驗,比如DNN訓練比較耗時,線上也比較耗時,因此我們會進行多種優化和評估。那麼就涉及到一個問題,如何評估一個模型的好壞?線下指標主要採用AUC,定義如下圖所示:
我們來分析下這個圖,選定一系列閾值將對應一系列點對,形成一條曲線,曲線下方的面積總和就是AUC的值:紅線就是純隨機的結果,對應的AUC是0.5;模型越好,曲線離左上角就越近。這個值在我們模型評估裡用得非常多,該值考察的是模型預估的排序能力,它會把模型預估排序結果和實際結果進行比對運算。該值很難優化,一般而言,AUC高,模型的排序能力就強。
線下指標AUC很重要,但我們發現單純靠這指標也是有問題的,不一定是我們的線上模型出了問題,可能是其他的問題。做廣告預估,AUC是線下指標,除此之外,最核心的指標是上線收益,有時這兩個指標會有不一致的地方,我們也嘗試去定位,可能的原因主要有:
Survivorship bias問題:線下訓練時所有的資料都是線上模型篩選過的比較好的樣本,是我們展示過的比較好的廣告,一次查詢三條左右,但實際上到了線上之後,面臨的場景完全不一樣。前面講過RS篩選出最多近千條廣告,這些廣告都會讓模型去評判它的CTR大概是多少,但實際上訓練的樣本只有最終的三條,對於特別差的廣告模型其實是沒有經驗的。如果一個模型只適用於對比較好的廣告進行排序,就會線上上表現很差,因為從來沒有見過那些特別差的廣告是什麼樣的,就會做誤判。
特徵覆蓋率的問題,例如:我們有個特徵是和這個廣告自身ID相關的,該資訊在線上下都能拿到,但真正到了線上之後,因為廣告庫非常大,很多廣告是未展示過的,相關的資訊可能會缺失,原有的特徵就會失效,線上該特徵的覆蓋率比較低,最終將不會發揮作用。
並行化訓練
做DNN會遇到各種各樣的問題,尤其是資料量的問題。大家都知道模型依賴的資料量越大效果越好,因為能知道更多的資訊,從而提升模型穩定性,所以我們就會涉及到並行化訓練的事情。
加大資料量,提升模型穩定性
我們做搜尋廣告有一個重要指標:覆蓋率,是指此情況下是否需要顯示廣告。覆蓋率高了,使用者可能會不滿意,而且多出來那些廣告多半不太好;但如果覆蓋率很低,又等於沒賺到錢。這個指標很重要,所以我們希望融合模型上到線上後覆蓋率是可預測的。
我們發現這個融合模型會有自己的特點,上到線上之後會有些波動。例如:今天我們剛把模型覆蓋率調好了,但第二天它又變了。然後我們分析,可能是因為資料量的問題,需要在一個更大的資料集上訓練來提升模型的穩定性。
加大資料量,提升模型收益
其實就是見多識廣的意思,模型見得多,碰到的情況多,在遇到新問題的時候,就知道用什麼方法去解決它,就能更合理的預估結果。
我們調研了一些方案,如下:
- Caffe只支援單機單卡
- TensorFlow不支援較大BatchSize
- MxNet支援多機多卡,底層C++,上層Python介面
MxNet我們用得還不錯,基本能達到預期的效果。
若干思考
Deep Learing的強項
輸入不規整,而結果確定。
例如:影像理解,這個影像到底是什麼,人很難描述出到底是哪些指標表明它是一個人臉還是貓或狗。但結果非常確定,任何人看一眼就知道圖片是什麼,沒有爭議。
具體到我們的廣告場景,廣告特徵都是有具體的含義。例如:時間資訊,說是幾點就是幾點,客戶的關鍵詞資訊,它寫的是什麼就是什麼,文字匹配度是多少,是高還是低,都有確定的含義。
CTR預估
輸入含義明確,場景相關,結果以使用者為導向。
例如:一個查詢詞,出現一條廣告,大家來評判它是好是壞,其實它的結果是因人而異的,有人覺得結果很好,而有人卻覺得一般,它沒有一個客觀度量的標準。所以我們認為CTR預估跟傳統的DL應用場景不太一樣。
我們DNN用到線上後,收益大概提升了百分之五左右,但相對Deep Learing在其他場景的應用,這個提升還是少了些。語音輸入法很早就有人做,因為準確率的問題一直沒有太大應用,但Deep Learing出來後,比如訊飛及我們搜狗的語音輸入法,用起來很不錯,準確率相比之前提高了一大截。
未來方向
Deep Learing既然有這些特性,我們會根據特定的業務場景進行應用,比如在某些情況下把它用上去效果會很好,我們還想做一些模型融合的事情。
我們做實驗發現把DNN和LR融合後,最好的結果相比LR本身,AUC大概高不到一個百分點。我們也嘗試過直接把DNN模型用到線上去,效果很差,就算線上下跟LR可比,但到線上後會有一系列問題,不管是從覆蓋率還是從最終收益都會有較大的差異,這是我們在搜狗無線搜尋資料上得出的實驗結論,大家在各自的業務場景下可能有所區別。
如果你們沒有足夠經驗去手工做各種交叉特徵的設計,直接用DNN可能會有好的成果。如果在非常成熟的模型上做,可能需要考慮下,收益預期不要太高。
PPT下載:深度學習在搜狗無線搜尋廣告中的應用
本文由攜程技術中心(微信公號:ctriptech)餘清蘭整理,已獲得演講者本人確定及授權刊載,原文發表於攜程技術中心技術部落格。
責編:周建丁(zhoujd@csdn.net)
CCAI 2016中國人工智慧大會將於8月26-27日在京舉行,AAAI主席,多位院士,MIT、微軟、大疆、百度、滴滴專家領銜全球技術領袖和產業先鋒打造國內人工智慧前沿平臺,6+重磅大主題報告,4大專題論壇,1000+高質量參會嘉賓,探討人機互動、機器學習、模式識別及產業實戰。門票限時六折優惠倒數計時10小時。
相關文章
- 深度學習在美團搜尋廣告排序的應用實踐深度學習排序
- 深度學習在視覺搜尋和匹配中的應用深度學習視覺
- 深度學習在攜程搜尋詞義解析中的應用深度學習
- 深度學習在搜尋業務中的探索與實踐深度學習
- Searching with Deep Learning 深度學習的搜尋應用深度學習
- 深度學習在OC中的應用深度學習
- AI在汽車中的應用:實用深度學習AI深度學習
- 【AI in 美團】深度學習在OCR中的應用AI深度學習
- 簡述遷移學習在深度學習中的應用遷移學習深度學習
- 搜狗搜尋推廣平臺下線
- 【深度解讀】App Store搜尋廣告APP
- 【深度學習】深度解讀:深度學習在IoT大資料和流分析中的應用深度學習大資料
- 乾貨 | 深度學習在文字分類中的應用深度學習文字分類
- 雲搜尋服務在APP搜尋場景的應用APP
- 淘寶吳雪軍:自然語言處理技術在搜尋和廣告中的應用自然語言處理
- 深度學習在股票市場的應用深度學習
- 深度學習助力引力波訊號搜尋深度學習
- 深度學習模型在序列標註任務中的應用深度學習模型
- 如何理解雅克比矩陣在深度學習中的應用?矩陣深度學習
- 深度學習利器:TensorFlow在智慧終端中的應用深度學習
- 搜狗與微軟達成合作 釋出英文搜尋及學術搜尋微軟
- 卷積操作的概念及其在深度學習中的應用卷積深度學習
- 深度學習的未來:神經架構搜尋深度學習架構
- 大資料HBase在阿里搜尋中的應用實踐大資料阿里
- 深度學習在醫療領域的應用深度學習
- 深度學習在乳腺癌上的應用!深度學習
- 深度學習在攜程攻略社群的應用深度學習
- 深度學習技術在網路入侵檢測中的應用深度學習
- 【長篇乾貨】深度學習在文字分類中的應用深度學習文字分類
- 深度學習在攝影技術中的應用與發展深度學習
- 深度學習在推薦系統中的應用綜述(最全)深度學習
- 教你在瀏覽器中快速搜尋App Store應用瀏覽器APP
- RecSys提前看 | 深度學習在推薦系統中的最新應用深度學習
- 深度強化學習在時序資料壓縮中的應用強化學習
- 美團演算法團隊:深度學習在美團OCR中的應用!演算法深度學習
- 深度學習在小米電商業務的應用實踐深度學習
- 【AI in 美團】深度學習在文字領域的應用AI深度學習
- 蘋果或將在App Store之外上線搜尋廣告,新聞地圖類應用及Safari均在列蘋果APP地圖