欧美在线专区-欧美在线伊人-欧美在线一区二区三区欧美-欧美在线一区二区三区-pornodoxxx中国妞-pornodoldoo欧美另类

position>home>Blogs

貝殼商業(yè)化算法中臺(tái)架構(gòu)實(shí)踐

[導(dǎo)讀]隨著貝殼流量的貝殼日漸增長(zhǎng),貝殼商業(yè)化細(xì)分場(chǎng)景越來(lái)越豐富,商業(yè)公司對(duì)業(yè)務(wù)迭代和效果優(yōu)化的化算效率有了更高的要求,貝殼商業(yè)化策略算法中臺(tái)的法中架構(gòu)也在不斷的進(jìn)行調(diào)整和升級(jí)。本文將圍繞貝殼商業(yè)化策略算法中臺(tái)的臺(tái)架架構(gòu)演進(jìn)過(guò)程,介紹貝殼在商業(yè)化策略算法中臺(tái)架構(gòu)方面的構(gòu)實(shí)探索和實(shí)踐。重點(diǎn)探討貝殼商業(yè)化算法模型落地、貝殼架構(gòu)設(shè)計(jì)、商業(yè)服務(wù)治理以及性能優(yōu)化方面的化算問(wèn)題,以及如何增強(qiáng)系統(tǒng)的法中穩(wěn)定性和擴(kuò)展性。

分享嘉賓:彭克煉 貝殼 資深工程師

貝殼商業(yè)化算法中臺(tái)架構(gòu)實(shí)踐

編輯整理:馬瑤

出品平臺(tái):DataFunTalk

導(dǎo)讀:隨著貝殼流量的臺(tái)架日漸增長(zhǎng),貝殼商業(yè)化細(xì)分場(chǎng)景越來(lái)越豐富,構(gòu)實(shí)公司對(duì)業(yè)務(wù)迭代和效果優(yōu)化的貝殼效率有了更高的要求,貝殼商業(yè)化策略算法中臺(tái)的商業(yè)架構(gòu)也在不斷的進(jìn)行調(diào)整和升級(jí)。本文將圍繞貝殼商業(yè)化策略算法中臺(tái)的化算架構(gòu)演進(jìn)過(guò)程,介紹貝殼在商業(yè)化策略算法中臺(tái)架構(gòu)方面的探索和實(shí)踐。重點(diǎn)探討貝殼商業(yè)化算法模型落地、架構(gòu)設(shè)計(jì)、服務(wù)治理以及性能優(yōu)化方面的問(wèn)題,以及如何增強(qiáng)系統(tǒng)的穩(wěn)定性和擴(kuò)展性。

01

貝殼商業(yè)化簡(jiǎn)介

1. 業(yè)務(wù)場(chǎng)景

首先我們看一下業(yè)務(wù)場(chǎng)景,用戶通過(guò)貝殼找房APP可以找到自己想買的房子,或者想要租的房子,在進(jìn)入房源詳情頁(yè)的時(shí)候,房源詳情頁(yè)會(huì)有一個(gè)房源經(jīng)紀(jì)人的展示,這個(gè)經(jīng)紀(jì)人在后臺(tái)實(shí)際上是通過(guò)實(shí)時(shí)競(jìng)價(jià)之后才會(huì)出現(xiàn)的,而實(shí)時(shí)競(jìng)價(jià)是各種經(jīng)紀(jì)人,通過(guò)金貝平臺(tái),購(gòu)買商業(yè)化產(chǎn)品的平臺(tái),去進(jìn)行小區(qū)的投放,以及進(jìn)行出價(jià),形成訂單,這個(gè)過(guò)程會(huì)由商業(yè)化這邊會(huì)做一個(gè)定向推薦,出價(jià)建議,以及訂單投放之后的投放診斷,當(dāng)用戶和經(jīng)紀(jì)人發(fā)生IM對(duì)話時(shí),也就是想要咨詢房子的情況,我們就會(huì)對(duì)貝殼經(jīng)紀(jì)人的貝殼幣進(jìn)行扣費(fèi),所以大家可以看出來(lái),我們和一般互聯(lián)網(wǎng)公司不一樣的地方是廣告主是經(jīng)紀(jì)人。

2. 競(jìng)價(jià)排序

接下來(lái)我們看一下競(jìng)價(jià)排序的方法,這個(gè)和計(jì)算廣告類似的,通過(guò)eCPM進(jìn)行經(jīng)紀(jì)人的排序的,eCPM是通過(guò)經(jīng)紀(jì)人的出價(jià)和CVR的轉(zhuǎn)化進(jìn)行預(yù)估,兩者相乘得到一個(gè)eCPM,這里CVR的話是預(yù)估未來(lái)7天商機(jī)轉(zhuǎn)委托的概率,相信同學(xué)在之前的分享中聽(tīng)過(guò)商機(jī)這個(gè)詞,用戶和經(jīng)紀(jì)人進(jìn)行一次對(duì)話,我們稱為一個(gè)商機(jī),發(fā)生對(duì)話后,用戶會(huì)把自己的電話委托給經(jīng)紀(jì)人,讓經(jīng)紀(jì)人幫他/她找房子,這個(gè)過(guò)程我們稱之為委托。所以我們預(yù)估就是未來(lái)7天商機(jī)轉(zhuǎn)委托的概率。

3. 貝殼的商業(yè)化場(chǎng)景

為了讓大家更好的理解貝殼的商業(yè)化場(chǎng)景,我這里舉例來(lái)做一個(gè)對(duì)比。我們通過(guò)門(mén)戶網(wǎng)站和貝殼進(jìn)行對(duì)比:

  • 從流量角度來(lái)看,門(mén)戶網(wǎng)站針對(duì)用戶瀏覽頁(yè)面,用戶發(fā)生點(diǎn)擊行為稱為流量,而貝殼是用戶點(diǎn)擊IM(商機(jī))稱為是流量。

  • 從用戶定向來(lái)看,一般的互聯(lián)網(wǎng)公司在做用戶定向的時(shí)候,對(duì)用戶做各種分析,比如他/她的年齡、性別、地域等,而貝殼主要是針對(duì)用戶感興趣的房源進(jìn)行定向,用戶一般會(huì)看某套房子才會(huì)咨詢經(jīng)紀(jì)人,所以證明用戶對(duì)這套房子是非常感興趣的,用房源來(lái)做定向的話,可以說(shuō)是非常精準(zhǔn)的。

  • 從支付方式來(lái)看,廣告主就是各區(qū)域的經(jīng)紀(jì)人,支付方式的話,我們用的不是金錢,而是貝殼幣,貝殼幣是我們牽引經(jīng)紀(jì)人完成任務(wù)的抓手,平時(shí)我們會(huì)給經(jīng)紀(jì)人下發(fā)各種任務(wù),經(jīng)紀(jì)人完成任務(wù)之后會(huì)獲得貝殼幣,有了貝克幣之后就可以購(gòu)買我們的商業(yè)化產(chǎn)品了,對(duì)于經(jīng)紀(jì)人來(lái)說(shuō),獲得貝殼幣來(lái)說(shuō)就是獲得商機(jī),通過(guò)這種方式我們可以牽引經(jīng)紀(jì)人去完成各種任務(wù),更好的服務(wù)我們的客戶。

  • 從結(jié)算方式來(lái)看,很多門(mén)戶網(wǎng)站都是通過(guò)CPM/CPC的方式進(jìn)行結(jié)算的,而我們是通過(guò)CPA方式進(jìn)行結(jié)算,我們對(duì)CPA也進(jìn)行了加強(qiáng),必須是用戶和經(jīng)紀(jì)人發(fā)生三次有效對(duì)話之后才會(huì)進(jìn)行扣費(fèi),這樣也是更好的保證經(jīng)紀(jì)人的權(quán)益。

4. 商業(yè)化展示

目前我們已經(jīng)有了眾多的商業(yè)化產(chǎn)品,因?yàn)槲覀冏钪匾囊粋€(gè)展位就是在貝殼APP里面會(huì)有很多的曝光,曝光之后就會(huì)產(chǎn)生商機(jī),我們重要的兩個(gè)商業(yè)化產(chǎn)品:

  • 效果廣告,也稱為商機(jī)直通車,其實(shí)跟淘寶直通車是非常類似的,也是通過(guò)實(shí)時(shí)競(jìng)價(jià)的方式進(jìn)行投放,

  • 合約廣告系統(tǒng),目前是有潛課包/小區(qū)吊頂/會(huì)員/新房CPS等。

當(dāng)然了,我們也推出了自然流量,就是通過(guò)展位模型的方式給經(jīng)紀(jì)人推薦,比如在首付計(jì)算/經(jīng)紀(jì)人列表推薦等等,所以眾多商業(yè)化產(chǎn)品的話,總結(jié)一點(diǎn)就是我們是給用戶推薦經(jīng)紀(jì)人的。

02
貝殼商業(yè)化架構(gòu)演進(jìn)歷程
1. 貝殼商業(yè)化歷史進(jìn)程
2018年,貝殼找房成立,啟動(dòng)CPT等合約廣告產(chǎn)品開(kāi)發(fā)。

2019年,隨著流量增大,對(duì)流量進(jìn)行精細(xì)化分類,探索效果廣告。

2020年,我們已經(jīng)有了眾多的商業(yè)化產(chǎn)品,結(jié)算方式也有了CPA/CPM/CPT/CPS等等。

2018年架構(gòu)產(chǎn)品的業(yè)務(wù)形態(tài)

這時(shí)的架構(gòu)是非常粗獷的,對(duì)接方主要有兩個(gè),一個(gè)是金貝平臺(tái),這是一個(gè)商業(yè)化產(chǎn)品購(gòu)買平臺(tái),

另外一個(gè)是adx,這是一個(gè)流量分發(fā)的平臺(tái),經(jīng)紀(jì)人在金貝平臺(tái)購(gòu)買了商業(yè)化產(chǎn)品之后,會(huì)在CPT上產(chǎn)生訂單數(shù)據(jù),通過(guò)mysql2hive的方式進(jìn)入hive表,然后就進(jìn)行離線分配了。而adx的話,是通過(guò)redis數(shù)據(jù)庫(kù)進(jìn)行一個(gè)流量的獲取,經(jīng)紀(jì)人的推薦。

2019年架構(gòu)產(chǎn)品的業(yè)務(wù)形態(tài)

2019年金貝平臺(tái)開(kāi)始售賣效果廣告,所有金貝平臺(tái)形成效果廣告的數(shù)據(jù),而adx的話,不僅對(duì)接到合約廣告,還有實(shí)時(shí)競(jìng)價(jià),所以我們起了一套python服務(wù),這項(xiàng)服務(wù)因?yàn)樾枰獙?duì)CVR,也就是剛才提到的eCPM進(jìn)行預(yù)估,因此我們要進(jìn)行一個(gè)模型的訓(xùn)練,會(huì)去收集到日志數(shù)據(jù),業(yè)務(wù)數(shù)據(jù),形成樣本和特征,經(jīng)過(guò)模型訓(xùn)練,進(jìn)行在線預(yù)估。Python服務(wù)的話,我們考慮到開(kāi)發(fā)效率,所以直接用了python的tornado來(lái)進(jìn)行線上的web服務(wù)。

2020年架構(gòu)產(chǎn)品的業(yè)務(wù)形態(tài)

等到2020年的時(shí)候,我們的產(chǎn)品就已經(jīng)非常多了,鉆展CPT,會(huì)員,效果廣告,合約廣告等等都接入我們的平臺(tái),ADX不僅接入了效果廣告,合約廣告,也接入了新房CPS,自然展位等眾多的平臺(tái)接入進(jìn)來(lái),還是通過(guò)python進(jìn)行一個(gè)在線服務(wù)的提供,這時(shí)就暴露出幾個(gè)問(wèn)題,一個(gè)是python服務(wù)出現(xiàn)超時(shí),而且超時(shí)越來(lái)越嚴(yán)重,第二個(gè)是hive表在進(jìn)行離線計(jì)算的時(shí)候,代碼都是耦合在一起的,第三個(gè)是我們?cè)诔薪有碌臉I(yè)務(wù)時(shí),會(huì)出現(xiàn)業(yè)務(wù)接入費(fèi)時(shí)的情況,我們算法的小伙伴都在進(jìn)行業(yè)務(wù)的接入,而沒(méi)有沉下心來(lái)對(duì)模型進(jìn)行深入的探究。

2. 過(guò)程中的問(wèn)題與解決方法

  • 第一個(gè)是穩(wěn)定性差,性能低,監(jiān)控薄弱的問(wèn)題。

  • 第二個(gè)是數(shù)據(jù)冗余的問(wèn)題。

  • 第三個(gè)是業(yè)務(wù)接入費(fèi)時(shí)的問(wèn)題,隨著這三個(gè)問(wèn)題越來(lái)越嚴(yán)重,我們的產(chǎn)品接入方也越來(lái)越多,整個(gè)過(guò)程就形成了惡性循環(huán)。


這時(shí)系統(tǒng)重構(gòu)迫在眉睫,于是,在年初的時(shí)候,我們就誕生了一個(gè)想法,對(duì)整個(gè)的系統(tǒng)架構(gòu)進(jìn)行重建,出現(xiàn)了商業(yè)化策略算法中臺(tái)的架構(gòu)。

03
貝殼商業(yè)化策略算法中臺(tái)架構(gòu)

1. 設(shè)計(jì)過(guò)程

既然要設(shè)計(jì)一個(gè)新的架構(gòu),肯定要把老的問(wèn)題都解決掉:

  • 針對(duì)性能差的問(wèn)題,我們拋棄了python的代碼,而是使用java進(jìn)行服務(wù)的構(gòu)建,python的GIL機(jī)制,導(dǎo)致python的多線程是一個(gè)偽多線程,而使用python進(jìn)行多進(jìn)程,我們知道進(jìn)程的切換也浪費(fèi)CPU資源的,所以我們干脆用java來(lái)進(jìn)行服務(wù)的重構(gòu)。

  • 針對(duì)穩(wěn)定性差的問(wèn)題,我們打算引入服務(wù)治理的框架,引入服務(wù)治理的框架,保證穩(wěn)定性和可擴(kuò)展性。

  • 針對(duì)業(yè)務(wù)接入費(fèi)時(shí)問(wèn)題,我們是對(duì)微服務(wù)拆分,代碼解耦,服務(wù)統(tǒng)一化,形成單一職責(zé),指定責(zé)任人。

  • 針對(duì)數(shù)據(jù)孤島問(wèn)題,我們對(duì)離線數(shù)據(jù)分層,業(yè)務(wù)邏輯和公共邏輯進(jìn)行拆分和重構(gòu)。針對(duì)監(jiān)控薄弱的問(wèn)題,由于我們引入了服務(wù)治理的框架,因此可以對(duì)服務(wù)過(guò)程進(jìn)行監(jiān)控,模型更新機(jī)制監(jiān)控。

2. 架構(gòu)分層:

解決的以上這些問(wèn)題之后,我們需要對(duì)架構(gòu)進(jìn)行分層,分層的好處就是各層次之間相互獨(dú)立,通過(guò)接口調(diào)用。我們是把架構(gòu)分成了三層:

  • 在線服務(wù)層,主要是根據(jù)業(yè)務(wù)實(shí)際場(chǎng)景提供實(shí)時(shí)、高效、穩(wěn)定的http接口,并靈活的進(jìn)行AB測(cè)試。

  • 近實(shí)時(shí)層,主要是進(jìn)行模型訓(xùn)練、數(shù)據(jù)存儲(chǔ)、訂閱用戶行為數(shù)據(jù)等,從而做到秒針級(jí)別用戶興趣捕捉和線上效果反饋。

  • 離線計(jì)算層,從原始業(yè)務(wù)和日志數(shù)據(jù)進(jìn)行ETL,形成用戶畫(huà)像、經(jīng)紀(jì)人畫(huà)像、房源信息、訓(xùn)練數(shù)據(jù)等。

3. 各層特點(diǎn)與適合任務(wù)的相關(guān)規(guī)定

  • 實(shí)時(shí)層,也就是在線服務(wù)層主要使用的是實(shí)時(shí)+非實(shí)時(shí)的數(shù)據(jù),實(shí)時(shí)性是秒級(jí),特點(diǎn)是響應(yīng)速度快,數(shù)據(jù)實(shí)時(shí)性敏感,計(jì)算復(fù)雜度低,穩(wěn)定性高時(shí)延低,適合的任務(wù)是在線請(qǐng)求。

  • 近實(shí)時(shí)層使用的數(shù)據(jù)是實(shí)時(shí)+非實(shí)時(shí),實(shí)時(shí)性是分鐘級(jí),特點(diǎn)是基于實(shí)時(shí)數(shù)據(jù),計(jì)算復(fù)雜度適中,隊(duì)列可緩沖數(shù)據(jù),適合的任務(wù)是特征實(shí)時(shí)計(jì)算與更新,實(shí)時(shí)算法計(jì)算(相關(guān)性),模型在線更新,指標(biāo)統(tǒng)計(jì)和計(jì)算,日志收集和分析。

  • 離線計(jì)算層使用的數(shù)據(jù)是非實(shí)時(shí)的,實(shí)時(shí)性是小時(shí)級(jí),特點(diǎn)是大數(shù)據(jù)批量計(jì)算,計(jì)算復(fù)雜度高,大容量存儲(chǔ),適合的任務(wù)是ETL任務(wù)(規(guī)則特征樣本),模型的訓(xùn)練。

4. 各層架構(gòu)的特點(diǎn):

我們來(lái)看一下整體的架構(gòu)情況,每個(gè)層都會(huì)有詳細(xì)的模塊與特有的特征。

下面我們將為大家詳細(xì)介紹下各層:

04
在線服務(wù)層

1. 在線服務(wù)層架構(gòu)

2. 在線服務(wù)層拆分

在線服務(wù)層我們要對(duì)業(yè)務(wù)進(jìn)行拆分,引入服務(wù)治理的框架,不可避免的要對(duì)服務(wù)進(jìn)行拆分,拆分主要有兩個(gè)原則:

  • 橫向拆分,按照不同的業(yè)務(wù)域進(jìn)行拆分,我們這里是拆分成了效果廣告,合約廣告和自然展位三個(gè)業(yè)務(wù)域。

  • 縱向拆分,把一個(gè)業(yè)務(wù)功能里的不同模塊或者組件進(jìn)行拆分,從多個(gè)業(yè)務(wù)角度找共性,將服務(wù)進(jìn)行抽離,確定各個(gè)服務(wù)邊界,清晰職責(zé)。

這里我們看一個(gè)例子,這是兩個(gè)主要的業(yè)務(wù)。一個(gè)是不走商業(yè)化流量的自然展位經(jīng)紀(jì)人推薦,另外一個(gè)是商業(yè)化經(jīng)紀(jì)人推薦。

自然展位經(jīng)紀(jì)人推薦是要經(jīng)過(guò)一個(gè)召回模塊,規(guī)則過(guò)濾,特征處理,排序模型,兜底規(guī)則。商業(yè)化經(jīng)紀(jì)人推薦是不走召回模塊,因?yàn)樗臉I(yè)務(wù)主要是從前端傳過(guò)來(lái)的,就是這個(gè)經(jīng)紀(jì)人有訂單了,就會(huì)直接召回,因?yàn)檎麄€(gè)過(guò)程越激烈,對(duì)我們來(lái)說(shuō)是越有好處的,召回完成之后,會(huì)進(jìn)行預(yù)算控制,這是比較特殊的一點(diǎn),后面會(huì)講,其實(shí)就是對(duì)經(jīng)紀(jì)人做一層過(guò)濾,然后進(jìn)行特征處理,排序模型,融合規(guī)則,融合的話,會(huì)計(jì)算eCPM。

這兩個(gè)過(guò)程有很多相似的地方,所以我們對(duì)這兩個(gè)過(guò)程其中的一些部分進(jìn)行了抽離,比如說(shuō)規(guī)則過(guò)濾和預(yù)算控制過(guò)濾,我們抽離成過(guò)濾模塊,特征處理我們抽離成了特征處理模塊,排序模型我們抽離成了模型模塊,兜底規(guī)則和融合規(guī)則我們抽離成了融合層的服務(wù)。

在線服務(wù)層拆分原則:

我們來(lái)看一下在線服務(wù)層拆分前和拆分后的狀態(tài)。中控主服務(wù)主要包括策略配置,召回階段,特征處理,排序階段,融合階段。

在線服務(wù)層拆分形態(tài)和調(diào)用流程:

我們來(lái)詳細(xì)看一下在線服務(wù)層的各個(gè)部分。請(qǐng)求會(huì)通過(guò)統(tǒng)一網(wǎng)關(guān)進(jìn)入中控主服務(wù),中控主服務(wù)會(huì)調(diào)用下面的各個(gè)子服務(wù),比如召回,過(guò)濾,特征處理,排序,融合。召回里面有很多召回的方式,過(guò)濾里面也會(huì)有很多過(guò)濾的方式。接下來(lái)我會(huì)介紹一下每個(gè)服務(wù)里面設(shè)計(jì)的特點(diǎn)。

3.中控主服務(wù),主要功能:

  • 配置讀取,我們會(huì)對(duì)每個(gè)要調(diào)用的服務(wù)進(jìn)行配置化,有些業(yè)務(wù)需要一種召回方式,有些業(yè)務(wù)需要多種方式進(jìn)行召回,我們都可以通過(guò)配置的方式進(jìn)行更新。

  • 讀取配置后,需要對(duì)微服務(wù)進(jìn)行依次調(diào)度,形成調(diào)用工作流。

  • 會(huì)對(duì)熔斷降解方案的設(shè)定。

4. 策略配置設(shè)計(jì)的過(guò)程

左邊是一張mysql的表,我們可以看到這里的字段有召回策略,過(guò)濾策略,排序策略,融合策略等,針對(duì)每個(gè)策略,我們都可以設(shè)定召回策略的參數(shù),排序策略的參數(shù)等等。舉個(gè)例子比如這里有個(gè)展位,我們可以設(shè)定它的召回策略,過(guò)濾策略,排序策略以及融合策略。

5. 中控主服務(wù)的特點(diǎn):

  • 對(duì)外提供HTTP服務(wù),對(duì)內(nèi)微服務(wù)調(diào)用使用RPC或者HTTP。

  • 各微服務(wù)調(diào)用時(shí)間使用動(dòng)態(tài)設(shè)置,一般各模塊實(shí)際超時(shí)時(shí)間=Min(該模塊最大超時(shí)時(shí)間,剩余時(shí)間)。

  • 盡量不包含業(yè)務(wù)邏輯,減少迭代。

6. 在線服務(wù)層中召回模塊

第一個(gè)我們會(huì)做KV召回—主要是業(yè)務(wù)規(guī)則的召回。把計(jì)算好的數(shù)據(jù)放在KV數(shù)據(jù)庫(kù)里面,比如用戶來(lái)了之后,點(diǎn)了某一套房子,然后我們通過(guò)房源召回錄入人,維護(hù)人,有過(guò)帶看的人,有過(guò)交易的人,這樣就可以把經(jīng)紀(jì)人召回來(lái),如果這個(gè)小區(qū)沒(méi)有數(shù)據(jù)的話,就再往上一層,分別來(lái)做兜底,小區(qū)沒(méi)有的話就從商圈的維度去召回經(jīng)紀(jì)人。還有一種就是從經(jīng)紀(jì)人id進(jìn)行召回,這個(gè)主要是金貝平臺(tái),我們需要給經(jīng)紀(jì)人推薦他/她感興趣的小區(qū),她/他(經(jīng)紀(jì)人)肯定會(huì)選擇看有過(guò)帶看的房源,有過(guò)交易的房源。

ES召回

ES召回有一些復(fù)雜的召回,比如用戶id,年齡,性別,各種條件的查詢條件適用于冷啟動(dòng)的問(wèn)題。ES集群還有一些用戶特征,經(jīng)紀(jì)人特征,是從DMP平臺(tái)獲取的。ES的好處是實(shí)時(shí)性更高,集群操作,可以做簡(jiǎn)單計(jì)算和排序。ES里面也支持向量召回,效果也不錯(cuò),我們有一些場(chǎng)景用到了ES的向量召回。

向量召回

這個(gè)在深度學(xué)習(xí)向量檢索的需求非常大,我們之前使用的Facebook開(kāi)源的一個(gè)工具faiss. 將數(shù)據(jù)源離線計(jì)算后,向量數(shù)據(jù)定時(shí)更新,通過(guò)一個(gè)接口索引部分,將結(jié)果向量送入faiss. 另外一個(gè)接口是通過(guò)faiss, 把向量集合送入到搜索部分。

但是faiss有一個(gè)缺點(diǎn)它是單機(jī)部署,沒(méi)有分布式,所以我們使用了另外一個(gè)比較火的向量召回的框架叫Milvus,上面這個(gè)是我從官網(wǎng)上截的一張圖,它的底層架構(gòu)也是基于faiss的,它是使用了負(fù)載均衡,服務(wù)發(fā)現(xiàn),對(duì)底層的數(shù)據(jù)進(jìn)行分片,來(lái)保證穩(wěn)定性和高性能。

embedding向量生成的原理

這里我們有多種模型生成embedding,主要是通過(guò)node2vec。也就是說(shuō)用戶在瀏覽APP的時(shí)候,會(huì)生成很多的房源序列,根據(jù)房源序列我們可以抽象出一張圖,這跟我們使用的word2vec是非常類似的,生成一張圖之后,會(huì)做隨機(jī)游走,之后將結(jié)果輸入到word2vec,生成embedding的向量。

7. 如何去做線上的serving

線上serving目前沒(méi)有比較好的開(kāi)源的解決方案,公司都會(huì)有一套線上自己的serving服務(wù)。而我們主要有兩種方式,一種是PMML格式的文件進(jìn)行線上serving, 這個(gè)主要用在一些比較簡(jiǎn)單的模型,比如樹(shù)模型、線性模型進(jìn)行多線程的調(diào)用,這里主要是用spark平臺(tái),python平臺(tái),我們可以通過(guò)模型訓(xùn)練之后,使用JPMML插件,形成PMML模型文件,然后把這種文件放在數(shù)據(jù)庫(kù)或文件系統(tǒng)中,最后可以通過(guò)java服務(wù)進(jìn)行線上推斷。

另外一種在線服務(wù)的方式,tfserving---貝殼模型serving平臺(tái)run once。上面是一個(gè)架構(gòu)圖。支持比如說(shuō)Tensorflow, Pytorch等一些在線serving。

過(guò)濾服務(wù)

  • 預(yù)算控制,經(jīng)紀(jì)人會(huì)在金貝平臺(tái)生成訂單,然后他/她會(huì)先把錢充到賬戶里面,那么我們肯定需要平穩(wěn)的對(duì)經(jīng)紀(jì)人的預(yù)算進(jìn)行消耗。

  • 頻率控制,我們不想讓用戶看到同樣的廣告次數(shù)太多,我們會(huì)對(duì)這些廣告進(jìn)行過(guò)濾,但是我們這里會(huì)對(duì)廣告主進(jìn)行頻率控制,也就是經(jīng)紀(jì)人作業(yè)經(jīng)歷有限,如果我們一次給他/她的商機(jī)也就是用戶太多的話,她/他會(huì)處理不過(guò)來(lái),所以我們會(huì)對(duì)經(jīng)紀(jì)人的頻率進(jìn)行控制。

  • 業(yè)務(wù)方規(guī)則,可以通過(guò)RPC的方式調(diào)用業(yè)務(wù)方的接口進(jìn)行過(guò)濾。

微服務(wù)的技術(shù)選型

業(yè)務(wù)方會(huì)通過(guò)SpringCloud Gateway進(jìn)入到服務(wù)里面,公司的服務(wù)會(huì)統(tǒng)一到Eureka 平臺(tái)進(jìn)行注冊(cè),每個(gè)微服務(wù)是通過(guò)Feign進(jìn)行通信,通過(guò)Ribbon進(jìn)行服務(wù)的負(fù)載均衡,中間也用到很多開(kāi)源的組件,比如接口鑒權(quán)(OpenAM),異常診斷(hawk),鏈路追蹤(KeTrace),熔斷限流(Sentinal),配置(Appolo),服務(wù)診斷(arthas),監(jiān)控Prometheus+grafana界面來(lái)實(shí)時(shí)監(jiān)控。

05
近實(shí)時(shí)層

1. 近實(shí)時(shí)層架構(gòu)圖


2. 近實(shí)時(shí)層數(shù)據(jù)收集

近實(shí)時(shí)層大多數(shù)公司的架構(gòu)可能差不多。我們這里主要是會(huì)存儲(chǔ)各種各樣的數(shù)據(jù),比如mysql數(shù)據(jù),redis數(shù)據(jù),向量數(shù)據(jù),另外一個(gè)就是會(huì)對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行收集,比如用戶訪問(wèn)貝殼網(wǎng)站,鏈家網(wǎng)站,貝殼App之后,會(huì)留下數(shù)據(jù),后臺(tái)會(huì)進(jìn)行埋點(diǎn),然后通過(guò)kafka進(jìn)入實(shí)時(shí)計(jì)算的模塊,最后會(huì)計(jì)算出一些規(guī)則的數(shù)據(jù),記錄到mysql,redis,進(jìn)行一些向量的計(jì)算,進(jìn)入milvus,進(jìn)行向量搜索,我們也會(huì)把數(shù)據(jù)進(jìn)入到ES里面做一些報(bào)表,還有做一些ELK的分析,以及HDFS的備份。

06
離線層

1. 離線層架構(gòu)圖

2.離線層分層:

離線層在這個(gè)框架里面是一些功能,但是我們也對(duì)離線層進(jìn)行了分層:基礎(chǔ)數(shù)據(jù)層、特征工程層、基礎(chǔ)數(shù)據(jù)層。

基礎(chǔ)數(shù)據(jù)層,我們會(huì)從DMP平臺(tái)獲取到用戶的畫(huà)像,經(jīng)紀(jì)人畫(huà)像和業(yè)務(wù)數(shù)據(jù)(樣本,曝光,商機(jī)等),在這之上會(huì)生成客源特征,經(jīng)紀(jì)人特征,房-人特征,我們這里主要是給用戶推薦經(jīng)紀(jì)人,所以在使用的過(guò)程中我們發(fā)現(xiàn)使用房的特征做推薦對(duì)房的成交量作用并不大,我們就弱化了房的特征,關(guān)注經(jīng)紀(jì)人特征和人的特征,因?yàn)槲覀儼l(fā)現(xiàn)用戶在看這套房子,和最后成交的房子關(guān)系并不大,而經(jīng)紀(jì)人和用戶建立聯(lián)系之后,經(jīng)紀(jì)人會(huì)給用戶推薦各種各樣的房子,最后成交的并不一定是這個(gè)用戶看的,再上面一層是模型層,包括模型訓(xùn)練,離線效果評(píng)估,以及模型更新。

3. 離線訓(xùn)練部分

這是離線訓(xùn)練的部分。主要是使用特征進(jìn)行離線模型訓(xùn)練,我們用到了LR,Li ghtGBM, WideDeep, DeepFM等等。

4. 架構(gòu)重構(gòu)之后的效果:

  • 穩(wěn)定性,由97%升高到99.99%。

  • 性能提升—滿足同樣QPS情況下,機(jī)器由原來(lái)的36個(gè)8核12g實(shí)例減少到24個(gè)4核6g實(shí)例。成本上有了大的減少。

  • 人效方面的提升,可以通過(guò)hawk隨時(shí)查看訪問(wèn)數(shù)據(jù),異常實(shí)時(shí)報(bào)警,通過(guò)IM告知給具體的責(zé)任人,通過(guò)界面化方式配置微服務(wù)的熔斷降級(jí)方案。

這里是我們通過(guò)界面的方式配置熔斷限流策略,微服務(wù)的熔斷策略,之前要修改這些配置需要改代碼,現(xiàn)在需要界面就可以了。

當(dāng)有新的接入方,我們可以打開(kāi)城市、策略配置,做AB實(shí)驗(yàn)/各模塊策略的配置,也可以對(duì)業(yè)務(wù)進(jìn)行召回,過(guò)濾,排序等一些策略的設(shè)定,策略靈活設(shè)置,分鐘級(jí)上線、生效。

這是一個(gè)效果的指標(biāo)看板。可以看到CPA轉(zhuǎn)化情況,商機(jī)的情況,轉(zhuǎn)委托的情況,也能看到AB實(shí)驗(yàn)的結(jié)果,就是具體每個(gè)策略的轉(zhuǎn)化結(jié)果是什么樣的,這里也能看到詳細(xì)的情況。

07
總結(jié)與展望


主要有四個(gè)方面:

  • 貝殼商業(yè)化平臺(tái)計(jì)劃要打造AI算法中臺(tái),容納更多業(yè)務(wù)。不局限于商業(yè)化的業(yè)務(wù),還會(huì)有圖像,估價(jià)之類的。

  • 兼容多語(yǔ)言。之前有些系統(tǒng)可能是python, go語(yǔ)言,我們都可以去對(duì)接他們的業(yè)務(wù)。

  • 服務(wù)性能優(yōu)化,使用性能更高的RPC框架,進(jìn)一步提升內(nèi)部性能。

  • 探索更多模型。比如在深度學(xué)習(xí)方面更多的模型以及線上的部署。

今天的分享就到這里,謝謝大家。

特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒(méi)關(guān)注的小伙伴,可以長(zhǎng)按關(guān)注一下:

長(zhǎng)按訂閱更多精彩▼

如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

Popular articles

主站蜘蛛池模板: 黑人性片| 你是我的女人中文字幕高清| 97sese电影| 国产精品9999久久久久仙踪林| 丁香狠狠色婷婷久久综合| 野花社区在线观看www| 啊灬啊别停灬用力啊岳| 男生和女生一起差差的视频30分| 欧美美女一区| 久久电影网午夜鲁丝片免费| 边吃奶边插下面| 大ji巴c死你h| 思思久久99热只有频精品66| 天天操夜夜操天天操| 国产特黄一级片| 污网站视频在线观看| 国产精品无码久久久久| 韩国三级最新理论电影| 啊轻点灬大ji巴太粗太长了h| 岛国大片免费在线观看| 欧美人善交videosg| 久久4k岛国高清一区二区| 欧美一级免费观看| 最近中文字幕大全免费版在线| 亚洲私人影院| 久久一本精品久久精品66| 我要看a级毛片| 中文字幕avdvd| 新婚熄与翁公试婚小说| 久久本网站受美利坚法律保护| 91在线国内在线播放老师 | 久久精品人人做人人爽电影蜜月| 伊人影院在线视频| 女人让男人直接桶| 国产成人一区二区在线不卡| 成人3d动漫网址在线观看| 风间由美性色一区二区三区| 2022国产精品最新在线 | 亚洲成a人片在线观看中文| 日本无遮挡漫画| 在线天堂bt种子|