RTB(Real Time Bidding)是目前計(jì)算廣告技術(shù)中最新的階段,從效率和效果上是遠(yuǎn)遠(yuǎn)領(lǐng)先網(wǎng)盟和流量平臺(tái)。RTB業(yè)務(wù)上包括DSP、Ad Exchange帘营、DMP三大產(chǎn)品形態(tài),技術(shù)上涉及到機(jī)器學(xué)習(xí)逐哈、大數(shù)據(jù)處理芬迄、流式系統(tǒng)、高并發(fā)系統(tǒng)四個(gè)部分昂秃,是目前尖端計(jì)算機(jī)工程技術(shù)和算法應(yīng)用和驗(yàn)證的核心領(lǐng)域薯鼠。
新的工程技術(shù)通常很難找到技術(shù)方案或資料,需要自己做大量的實(shí)驗(yàn)械蹋、摸索,踩無數(shù)的坑羞芍,閱讀國(guó)外大量的資料哗戈,往往才能穩(wěn)定、高性能地使用起來荷科,算法模型更是唯咬,往往是facebook纱注、google、criteo這樣的公司掌握了最新的科研成果胆胰,國(guó)內(nèi)使用的算法模型普遍晚1-3年狞贱,模型部分做的好的國(guó)內(nèi)也就百度了,目前瑞獅網(wǎng)絡(luò)使用的預(yù)測(cè)引擎和反作弊引擎是與交通大學(xué)APEX實(shí)驗(yàn)和UCL計(jì)算機(jī)系聯(lián)合研發(fā)的蜀涨,有理論上的高地優(yōu)勢(shì)瞎嬉,下面簡(jiǎn)單的介紹一下各個(gè)部分的入門知識(shí)。
大數(shù)據(jù)處理:目前瑞獅Vlion綜合使用CDH集群厚柳,分在線業(yè)務(wù)集群和離線業(yè)務(wù)集群,組件上包括HBase氧枣、Spark、HDFS别垮、HIVE等便监。
CDH集群主要用來進(jìn)行離線批處理,基于HDFS進(jìn)行MR碳想、HIVE處理廣告數(shù)據(jù)和營(yíng)銷點(diǎn)數(shù)據(jù)烧董。Spark主要用于一些實(shí)時(shí)查詢,HBase用于存儲(chǔ)基于HDFS的有實(shí)時(shí)特性的中間數(shù)據(jù)胧奔。從傳統(tǒng)行業(yè)程序員過來主要得學(xué)習(xí)Map Reduce的基本原理逊移,學(xué)習(xí)HBase列存儲(chǔ)的原理,熟悉hive的思考方式葡盗。學(xué)習(xí)過程中要注意多看報(bào)錯(cuò)日志螟左,這樣才能慢慢學(xué)會(huì)調(diào)優(yōu)性能。
高性能系統(tǒng):目前瑞獅網(wǎng)絡(luò)Vlion 的競(jìng)價(jià)服務(wù)器QPS達(dá)到25萬觅够,單機(jī)QPS達(dá)到8000胶背。技術(shù)架構(gòu)使用Go和ngx-lua混合模式,使用go之前是用的c語言喘先,綜合比較下來如下:
ngx_lua采用“one-coroutine-per-request”的處理模型钳吟,對(duì)于每個(gè)用戶請(qǐng)求,ngx_lua會(huì)喚醒一個(gè)協(xié)程用于執(zhí)行用戶代碼處理請(qǐng)求窘拯,當(dāng)請(qǐng)求處理完成這個(gè)協(xié)程會(huì)被銷毀红且。每個(gè)協(xié)程都有一個(gè)獨(dú)立的全局環(huán)境(變量空間),繼承于全局共享的涤姊、只讀的“comman data”暇番。所以,被用戶代碼注入全局空間的任何變量都不會(huì)影響其他請(qǐng)求的處理思喊,并且這些變量在請(qǐng)求處理完成后會(huì)被釋放壁酬,這樣就保證所有的用戶代碼都運(yùn)行在一個(gè)“sandbox”(沙箱),這個(gè)沙箱與請(qǐng)求具有相同的生命周期。
? 得益于Lua協(xié)程的支持舆乔,ngx_lua在處理10000個(gè)并發(fā)請(qǐng)求時(shí)只需要很少的內(nèi)存岳服。根據(jù)測(cè)試,ngx_lua處理每個(gè)請(qǐng)求只需要2KB的內(nèi)存希俩,如果使用LuaJIT則會(huì)更少吊宋。所以ngx_lua非常適合用于實(shí)現(xiàn)可擴(kuò)展的、高并發(fā)的服務(wù)颜武。
流式系統(tǒng):目前瑞獅網(wǎng)絡(luò)Vlion 使用flume+kafka+storm的技術(shù)框架來構(gòu)建的流式系統(tǒng)璃搜,Storm集群?jiǎn)螜C(jī)處理20000條/秒。
n Flume agent不能過多占用宿主服務(wù)器的計(jì)算性能盒刚,推薦使用內(nèi)存模式腺劣,用內(nèi)存換CPU,多個(gè)agent建議不能直接導(dǎo)向kafka因块,而是先合并到一臺(tái)日志服務(wù)器橘原,再?gòu)脑摲?wù)器統(tǒng)一flume到kafka。
n Storm 的輸出一般需要自己構(gòu)建和管理緩存涡上,topology要有異常日志輸出趾断,方便排查錯(cuò)誤。
機(jī)器學(xué)習(xí):目前瑞獅網(wǎng)絡(luò)Vlion 在動(dòng)態(tài)創(chuàng)意優(yōu)化DCO吩愧、反作弊芋酌、競(jìng)價(jià)策略、CVR預(yù)測(cè)雁佳、Audience Segmentation五個(gè)部分應(yīng)用了機(jī)器學(xué)習(xí)技術(shù)脐帝。
n 動(dòng)態(tài)創(chuàng)意優(yōu)化綜合使用了基于標(biāo)簽tag的推薦和Slope One協(xié)同過濾推薦,主要應(yīng)用在電商的重定向投放中使用糖权;
n 反作弊使用了SVM模型和規(guī)則引擎堵腹,目前過濾了接近60%的流量。
n 競(jìng)價(jià)決策使用了Direct functional optimization星澳,競(jìng)價(jià)函數(shù)如下:
n CVR預(yù)測(cè)主要基于Star Tree和GBDT,AUC大概在82%疚顷,目前正在spark集群上嘗試FTRL模型。
n 受眾細(xì)分針對(duì)不同的客戶采用了不同的模型禁偎,如游戲客戶采用k-means腿堤,電商行業(yè)采用SMO。
以上僅是簡(jiǎn)單介紹如暖,后續(xù)會(huì)陸續(xù)推出更詳細(xì)的介紹~