深度學習在搜狗無線搜索廣告中的應用

編者:本文來自搜狗資深研究員舒鵬在攜程技術中心主辦的深度學習Meetup中的主題演講,介紹了深度學習在搜狗無線搜索廣告中的應用及成果。關注攜程技術中心微信公號ctriptech,可獲知更多技術分享信息。文末可下載演講PPT。算法

圖片描述

搜索引擎廣告是用戶獲取網絡信息的渠道之一,同時也是互聯網收入的來源之一,經過傳統的淺層模型對搜索廣告進行預估排序已不能知足市場需求。近年來,深度學習在不少領域獲得普遍應用並已取得較好的成果,本次演講就是分享深度學習如何有效的運用在搜狗無線搜索廣告中。微信

本次分享主要介紹深度學習在搜狗無線搜索廣告中有哪些應用場景,以及分享了咱們的一些成果,重點講解了如何實現基於多模型融合的CTR預估,以及模型效果如何評估,最後和你們探討DL、CTR 預估的特色及將來的一些方向。網絡

1、深度學習在搜索廣告中有哪些應用場景

比較典型的深度學習應用場景包括語音識別、人臉識別、博奕等,也能夠應用於搜索廣告中。首先介紹下搜索廣告的基本架構,以下圖:架構

![圖片描述

一、首先用戶查詢。
二、查詢詞給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作封裝最後展現給用戶。框架

以上過程當中可應用到深度學習的場景以下:工具

圖片描述

2、基於多模型融合的CTR預估

2.1 CTR預估流程學習

CTR預估的流程圖以下:大數據

圖片描述

一、Data是原始數據,包括點擊及查詢日誌,從這些原始數據裏抽出一些特徵。
二、Feature包括查詢特徵、廣告特徵、匹配特徵。優化

查詢特徵是和查詢詞相關的特徵,查詢發生的地域、時間等。廣告特徵是指廣告自己的信息,例如:來自哪一個客戶,是哪一個行業的,它的關鍵詞是什麼,它的標題、描述、網址是什麼等各類信息。匹配特徵是指查詢詞和廣告的匹配關係。搜索引擎

三、而後會進行模型的訓練,包括線性和非線性。
四、模型在線下訓練完後會到線上,線上Server會實時作特徵抽取並預估。

例如:線上實時收到查詢請求後,就會知道查詢詞是什麼。前面講的Retriever server,它會召回一系列廣告,並抽出相關信息,好比廣告的標題、關鍵詞、描述等信息,有了這些信息後會利用加載的模型給出預估CTR,最終會進行Rank排序,從而篩選出知足指定條件的一些廣告進行展現。

2.2 特徵設計

一、離散特徵

離散特徵是指把東西分散出來表示,好比OneHot,很是直觀,例如用戶當天所處的時間段,他和最終點擊率有關係,那麼我把一天24小時分紅24個點,他在哪一個小時就把哪一個點點亮置1,這個特徵就設計完了。它的刻畫比較細緻,設計比較簡單,但他的特徵很是稀疏,咱們線上特徵空間很是大,有上十億,但任何一個請求場景到來,它真正有效的特徵大概只有幾百個,絕大部分都是空的。由於特徵量很是大,不能設計太複雜的模型,不然沒法用於線上。

離散特徵總結:容易設計,刻畫細緻,特徵稀疏,特徵量巨大,模型複雜度受限。

二、連續特徵

仍是以時間舉例,離散特徵會把它變成24個點,連續特徵就會變成一個值,好比一、二、三、四、5一直到24,它只會佔一個位置。須要仔細設計,很難找到一個直接的方法來描述查詢詞中包括哪些東西。它是定長的,因此一個請求場景到來,它有多少特徵是固定的。不像離散特徵是不定長,查詢詞不同,有的是兩個特徵或三個特徵,對於特徵點可能有兩個或三個,這對於咱們後面的工做也有必定的影響。連續特徵比較稠密,每一個位置都會有值,它特徵量相對較小,若是用連續特徵設計的話可能須要幾百維就能夠,所以可使用多種模型來訓練。

連續特徵總結:須要仔細設計,定長,特徵稠密,特徵量相對較小,可使用多種模型訓練。

2.3 模型類別

一、線性
優勢:簡單、處理特徵量大、穩定性好,缺點:不能學習特徵間的交叉關係,須要本身去設計。比較典型的如Logistic Regression,有開源的工具包,部署簡單且效果不錯。

二、非線性
優勢:可以學習特徵間非線性關係,缺點:模型複雜、計算耗時。

好比LR模型就算特徵再多,它只是查表加在一塊兒作指數運算就出來了,像DNN、GBDT就會很是複雜,致使計算過程比較慢。

總結:Logistic Regression即能處理連續值又能處理離散值。DNN幾乎不能處理離散值,除非作特殊的預處理。

2.4 模型融合

前面講過每一個模型都有本身的特色:Logistic Regression 處理特徵量大,大概在2010年先後開始大量應用於業界,很難有模型能徹底超越它;DNN能夠挖掘原來沒有的東西。咱們就想這兩個模型能不能將優勢進行融合,揚長避短,從而獲得更好的結果。

第一種方案:CTR Bagging

有多個模型,將多個模型的輸出CTR加權平均。
實現方法簡單,模型之間不產生耦合。
可調參數有限,只能調Bagging權重的參數,不能調其餘東西,因此改進空間相對較小。

第二種方案:模型融合

任一模型的輸出做爲另外一模型的特徵輸入,彼此進行交叉。
實現方法複雜,模型之間有依賴關係,因依賴關係複雜,風險也比較高。
好處是實驗方案較多,改進空間較大。

咱們選了後一種方案,由於單純CTR Bagging太過簡單粗暴了。

2.5 模型融合的工程實現

目標
可支持多個不一樣模型的加載和計算
可支持模型之間的交叉和CTR的bagging
可經過配置項隨時調整模型融合方案
避免沒必要要的重複操做,減小時間複雜度
解決方法(引入ModelFeature的概念)
模型自己也看作一個抽象特徵
模型特徵依賴於其餘特徵,經過計算獲得新的特徵
模型特徵輸出可做爲CTR,也可做爲特徵爲其餘模型使用
限定ModelFeature的計算順序,便可實現bagging模型交叉等功能

2.6 模型融合

模型融合流程圖以下:

圖片描述

一、首先線下,將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完成最終輸出。此架構通過生產系統的檢驗,運轉正常。

2.7 模型效果評估

期間咱們會作不少實驗,好比DNN訓練比較耗時,線上也比較耗時,所以咱們會進行多種優化和評估。那麼就涉及到一個問題,如何評估一個模型的好壞?線下指標主要採用AUC,定義以下圖所示:

圖片描述

咱們來分析下這個圖,選定一系列閾值將對應一系列點對,造成一條曲線,曲線下方的面積總和就是AUC的值:紅線就是純隨機的結果,對應的AUC是0.5;模型越好,曲線離左上角就越近。這個值在咱們模型評估裏用得很是多,該值考察的是模型預估的排序能力,它會把模型預估排序結果和實際結果進行比對運算。該值很難優化,通常而言,AUC高,模型的排序能力就強。

線下指標AUC很重要,但咱們發現單純靠這指標也是有問題的,不必定是咱們的線上模型出了問題,多是其餘的問題。作廣告預估,AUC是線下指標,除此以外,最核心的指標是上線收益,有時這兩個指標會有不一致的地方,咱們也嘗試去定位,可能的緣由主要有:

一、Survivorship bias問題:線下訓練時全部的數據都是線上模型篩選過的比較好的樣本,是咱們展現過的比較好的廣告,一次查詢三條左右,但實際上到了線上以後,面臨的場景徹底不同。前面講過RS篩選出最多近千條廣告,這些廣告都會讓模型去評判它的CTR大概是多少,但實際上訓練的樣本只有最終的三條,對於特別差的廣告模型實際上是沒有經驗的。若是一個模型只適用於對比較好的廣告進行排序,就會在線上表現不好,由於歷來沒有見過那些特別差的廣告是什麼樣的,就會作誤判。

二、特徵覆蓋率的問題,例如:咱們有個特徵是和這個廣告自身ID相關的,該信息在在線下都能拿到,但真正到了線上以後,由於廣告庫很是大,不少廣告是未展現過的,相關的信息可能會缺失,原有的特徵就會失效,線上該特徵的覆蓋率比較低,最終將不會發揮做用。

2.八、並行化訓練

作DNN會遇到各類各樣的問題,尤爲是數據量的問題。你們都知道模型依賴的數據量越大效果越好,由於能知道更多的信息,從而提高模型穩定性,因此咱們就會涉及到並行化訓練的事情。

一、加大數據量,提高模型穩定性

咱們作搜索廣告有一個重要指標:覆蓋率,是指此狀況下是否須要顯示廣告。覆蓋率高了,用戶可能會不滿意,並且多出來那些廣告多半不太好;但若是覆蓋率很低,又等於沒賺到錢。這個指標很重要,因此咱們但願融合模型上到線上後覆蓋率是可預測的。

咱們發現這個融合模型會有本身的特色,上到線上以後會有些波動。例如:今天咱們剛把模型覆蓋率調好了,但次日它又變了。而後咱們分析,多是由於數據量的問題,須要在一個更大的數據集上訓練來提高模型的穩定性。

二、加大數據量,提高模型收益

其實就是見多識廣的意思,模型見得多,碰到的狀況多,在遇到新問題的時候,就知道用什麼方法去解決它,就能更合理的預估結果。

咱們調研了一些方案,以下:

Caffe只支持單機單卡
TensorFlow不支持較大BatchSize
MxNet支持多機多卡,底層C++,上層Python接口

MxNet咱們用得還不錯,基本能達到預期的效果。

3、若干思考

3.1 Deep Learing的強項

輸入不規整,而結果肯定。

例如:圖像理解,這個圖像究竟是什麼,人很難描述出究竟是哪些指標代表它是一我的臉仍是貓或狗。但結果很是肯定,任何人看一眼就知道圖片是什麼,沒有爭議。

具體到咱們的廣告場景,廣告特徵都是有具體的含義。例如:時間信息,說是幾點就是幾點,客戶的關鍵詞信息,它寫的是什麼就是什麼,文本匹配度是多少,是高仍是低,都有肯定的含義。

3.2 CTR預估

輸入含義明確,場景相關,結果以用戶爲導向。

例如:一個查詢詞,出現一條廣告,你們來評判它是好是壞,其實它的結果是因人而異的,有人以爲結果很好,而有人卻以爲通常,它沒有一個客觀度量的標準。因此咱們認爲CTR預估跟傳統的DL應用場景不太同樣。

咱們DNN用到線上後,收益大概提高了百分之五左右,但相對Deep Learing在其餘場景的應用,這個提高仍是少了些。語音輸入法很早就有人作,由於準確率的問題一直沒有太大應用,但Deep Learing出來後,好比訊飛及咱們搜狗的語音輸入法,用起來很不錯,準確率相比以前提升了一大截。

3.3 將來方向

Deep Learing既然有這些特性,咱們會根據特定的業務場景進行應用,好比在某些狀況下把它用上去效果會很好,咱們還想作一些模型融合的事情。

咱們作實驗發現把DNN和LR融合後,最好的結果相比LR自己,AUC大概高不到一個百分點。咱們也嘗試過直接把DNN模型用到線上去,效果不好,就算在線下跟LR可比,但到線上後會有一系列問題,無論是從覆蓋率仍是從最終收益都會有較大的差別,這是咱們在搜狗無線搜索數據上得出的實驗結論,你們在各自的業務場景下可能有所區別。

若是大家沒有足夠經驗去手工作各類交叉特徵的設計,直接用DNN可能會有好的成果。若是在很是成熟的模型上作,可能須要考慮下,收益預期不要過高。

(本文由攜程技術中心餘清蘭整理)

演講PPT下載:

深度學習在搜狗無線搜索廣告中的應用

聲明:本文由攜程技術中心原創,如需轉載請郵件niuq#ctrip.com(#改成@)。

深度學習Meetup系列:

深度學習在攜程攻略社區的應用

深度學習在搜狗無線搜索廣告中的應用

知識庫上的問答系統:實體、文本及系統觀點

用戶在線廣告點擊行爲預測的深度學習模型

知識圖譜中的推理技術及其在高考機器人中的應用

相關文章
相關標籤/搜索