很多同學(xué)認(rèn)為外賣是線上下單、線下送餐的業(yè)務(wù),商業(yè)模式簡單,這種想法正確但是理解片面,它不僅需要技術(shù),而且要用深度學(xué)習(xí)來解決。那么,外賣為什么需要技術(shù)?為什么需要深度學(xué)習(xí)技術(shù)? 深度學(xué)習(xí)對于送餐的價值,大家簡單了解一下外賣業(yè)務(wù)的場景和特點,就能理解其中需要通過技術(shù)方式來解決的難點了。 從業(yè)務(wù)場景上劃分,是團(tuán)購、點評、預(yù)訂和外賣: 團(tuán)購,像過去的美團(tuán)、大眾點評,當(dāng)然這兩家公司現(xiàn)在合作了,還有之前的窩窩、拉手以及百度糯米。 外賣,像美團(tuán)外賣、餓了么。 點評,像經(jīng)典的以信息平臺的方式給用戶提供信息決策的大眾點評。 預(yù)訂,美團(tuán)在做的點餐相關(guān)的很多業(yè)務(wù)。 事實上,外賣上的 O2O 線下場景及其業(yè)務(wù)模式,要遠(yuǎn)比上圖所表達(dá)的要復(fù)雜。 而整個外賣行業(yè)的發(fā)展非???,我們 2014 年的訂單才剛突破 100 萬,但是到今年 6 月份的時候,我們的訂單量已經(jīng)突破了 1200 萬。 外賣業(yè)務(wù)相比團(tuán)購、電商的平臺有四個業(yè)務(wù)特點:電商化、運(yùn)營化、本地化、場景化。 首先說電商化,外賣的交易能夠閉環(huán)。這一點跟電商在淘寶京東的模式比較類似,但是不一樣的地方在于它是線上線下結(jié)合,所有提供服務(wù)的店鋪都是實體的,不管餐飲還是非餐飲。
接下來是運(yùn)營化的特點,一個是內(nèi)容形式的多元化,包括商家,餐飲的、非餐飲的,餐飲有很多套餐的組合;內(nèi)容形態(tài)上能看到產(chǎn)品的形態(tài),目前這一塊還不明顯。 另外是運(yùn)營能力,包括商家自運(yùn)營的能力、BD 自運(yùn)營的能力、騎手的運(yùn)營能力,這些都不是完全一樣的。 另外一個特點是本地化。對于用戶來講,他一般只能消費(fèi)到綠色區(qū)域商家提供的服務(wù),這就決定了它的供需關(guān)系是受約束的。 還有一塊是供需關(guān)系的動態(tài)變化。動態(tài)變化首先商家不是 24 小時營業(yè)的,另外是商家的配送距離也是動態(tài)變化的。 從技術(shù)角度滿足整個服務(wù)的動態(tài)變化,就需要個性化的數(shù)據(jù),這是一個很大的挑戰(zhàn)。 最后一個是場景化。上圖是外賣訂單按一天24小時的分布曲線圖,有兩個高峰,一個是午餐高峰,另外一個就是晚餐高峰。這個是時間的一個時段化。對于基本吃的場景來講,用戶吃的地域性或者本地化的差異比較大。 綜合這幾個業(yè)務(wù)特點來看,一個是個性化程度很高,另外一塊精細(xì)化的需求很大。 我們在時間場景上、地域場景上,甚至更細(xì)的業(yè)務(wù)場景上,要把精細(xì)化程度做深;另外一塊是多元化的特點,形態(tài)多元、內(nèi)容多元包括供給單位的多元;還有實時化程度很重要,配送這一塊的距離在實時變化,我們需要做實時監(jiān)控。 針對這些業(yè)務(wù)的特點,我們要去解決這些技術(shù)挑戰(zhàn)需要什么樣的基礎(chǔ)工具? 下面簡單介紹一下美團(tuán)點評的整個大數(shù)據(jù)平臺。 美團(tuán)點評的大數(shù)據(jù)平臺架構(gòu) 美團(tuán)點評大數(shù)據(jù)平臺的架構(gòu),最底層是美團(tuán)的基礎(chǔ)設(shè)施,美團(tuán)有自己的云平臺,所以所有的服務(wù)器都在云平臺上。 云平臺之上是基礎(chǔ)的 HDFS 這樣的服務(wù),像 Hbase 這些相關(guān)的基礎(chǔ)設(shè)施。上面一層是機(jī)器學(xué)習(xí)平臺,非線性數(shù)目性的工具都有相應(yīng)的部署。 最上面是美團(tuán)點評幾個大的業(yè)務(wù)群,包括酒店、旅游的業(yè)務(wù),包括娛樂這樣綜合的業(yè)務(wù),包括整個公司的廣告平臺。 在主架構(gòu)之上有一個 Log 平臺,因為業(yè)務(wù)很多,所以業(yè)務(wù)產(chǎn)生的數(shù)據(jù),不管是 B 端還是 C 端,很多數(shù)據(jù)都會統(tǒng)一落到 Log 平臺上,由 Log 平臺對接到頂層業(yè)務(wù)平臺上。 另外一個就是監(jiān)控平臺,服務(wù)監(jiān)控、數(shù)據(jù)監(jiān)控以及業(yè)務(wù)調(diào)度。 美團(tuán)點評的深度學(xué)習(xí)應(yīng)用實踐 接下來,給大家簡要介紹美團(tuán)點評深度學(xué)習(xí)的兩個關(guān)鍵應(yīng)用場景。 應(yīng)用場景1:圖像技術(shù) 美團(tuán)平臺上的技術(shù)內(nèi)容多樣化,包括圖像和文字,尤其用戶在手機(jī)上面,會做很多決策的時候,圖像對他的決策影響至關(guān)重要。 在圖像這塊,我們做了兩個關(guān)鍵事情,一個是圖像質(zhì)量的技術(shù),另一個是 OCR 技術(shù)。 圖像質(zhì)量技術(shù)有什么應(yīng)用場景?如上圖所示,左側(cè)這個圖明顯看著比較舒服,右側(cè)圖就看著亂七八糟,這個很難主觀描述,就是人的直觀感覺。 具體來說,左側(cè)兩個圖片的清晰度可能高一點,或者完整度高一些。在用戶做決策的時候,如果我們在平臺上面分的是質(zhì)量比較高的圖片,用戶整個點擊會比較快。 對商家來講,用戶很容易發(fā)生需求匹配的轉(zhuǎn)化。但是右側(cè)這個圖來講,整個體驗轉(zhuǎn)化的能力上會相對比較弱。 基于這個背景,我們對圖像質(zhì)量進(jìn)行判斷,發(fā)現(xiàn)存在一些關(guān)鍵的難點和挑戰(zhàn),主要有三個關(guān)鍵點: 標(biāo)準(zhǔn)評判很難,包括定義它的清晰度、完整度還有圖片里面的構(gòu)成,整個行業(yè)也沒有對圖像質(zhì)量的標(biāo)準(zhǔn)定義。 用戶的關(guān)注點不一樣,有些用戶可能關(guān)注圖片是否清晰,有些用戶關(guān)注圖片是不是完整,有沒有關(guān)鍵的信息給切走。 人工標(biāo)注成本高。 怎么解決這幾個問題?我們引入了建模的方式,一個像美學(xué)的課程,另一個是圖像基礎(chǔ)的特征,并在樣本標(biāo)注上采用自動化標(biāo)注的方式。 我們?nèi)タ磮D片的來源,直觀的理解是用戶自動上傳的圖片,也就是 UGC 的圖片,質(zhì)量相對差一些。我們專業(yè)的人員開設(shè)的圖片質(zhì)量會好一些,可以做一些基本的標(biāo)注。 另外一塊是基于用戶行為來看,我們會展示給用戶點擊比較多的圖片,可能是用戶感興趣或者質(zhì)量比較好的圖片;點擊比較少的圖片,我們認(rèn)為它是質(zhì)量比較差的圖片,這樣可以通過自動化的方式把樣本標(biāo)注出來。 在圖片輸入上,我們沒有直接給每個圖片識別它是高質(zhì)量、中質(zhì)量還是低質(zhì)量的圖片,基本上采用的是一個學(xué)習(xí)的方式,比如圖片的美感,通過 DNN 方式來判斷圖片,包括它的品類,屬于快餐、西餐還是簡餐之類。 另外一塊是基礎(chǔ)特征,圖像的色彩,包括圖像的對比度。 這些基礎(chǔ)特征也可以用來做整個建模,還有一塊是整個在深度學(xué)習(xí)上面,我們有直接去做,通過 KOS 的方式判斷哪一個圖像質(zhì)量比較好,哪一個圖像質(zhì)量比較差,最主要是從一堆圖片里面選擇比較好的圖片展示給用戶。 涉及到的數(shù)據(jù)比較商業(yè)化,整體來講,建模做完了之后,我們用戶體驗式得到了提升。 應(yīng)用場景2:OCR技術(shù) 前面是整個圖像質(zhì)量的一個技術(shù),接下來說說 OCR 的技術(shù)。OCR 是做數(shù)據(jù)的檢測,OCR 在美團(tuán)外賣有哪些比較關(guān)鍵的應(yīng)用呢? 比較大的方面是自動審核,為了保證給用戶提供可靠的服務(wù)或者優(yōu)質(zhì)的服務(wù),我們需要審核商家的牌照,商家的經(jīng)營許可證,商家的產(chǎn)品質(zhì)量,這一塊如果用人工審核的話,人力成本會很高。 另外一塊是自動錄入,商家入住到外賣平臺之后,要把菜錄入到上面去,尤其商家要不斷的改菜單,不斷的錄入菜單,這一塊是自動錄入的過程,這是我們基本應(yīng)用上的兩個需求點。 圖像有很多成像的方式,另外一塊文字很復(fù)雜,很多圖片上的文字不是標(biāo)準(zhǔn)的楷體,各種各樣亂七八糟的字體會有,甚至還有變形的字體,圖像的背景很復(fù)雜,或者說人看到都很難區(qū)分這種場景,這對整個 OCR 提出了技術(shù)難點的挑戰(zhàn)。 怎么解決這些問題呢? OCR 識別的技術(shù)是我們發(fā)現(xiàn)比較關(guān)鍵的技術(shù),文字的檢測首先從圖片開始,比如我們檢測哪一些是圖片里面的文字,哪一些是圖片本身。 另外一塊是文字的識別,我們檢測到圖片之后,怎么把里面的文字識別出來,這一塊整體采用的是 CNN 方式,加入 BLSTM 的模式,考慮了整個序列建模的能力,最后一塊是 CTC 的序列識別模型。 我們整個過程由原來人工審核變成了自動化的過程,整個運(yùn)營效率得到了很大的提升。 美團(tuán)點評DNN在評估模型中的應(yīng)用 接下來詳細(xì)介紹一下 DNN 在預(yù)估模型上面的應(yīng)用,包括前面也講了會涉及到很多預(yù)估,預(yù)估在整個算法領(lǐng)域用的非常多,比如說廣告里面涉及到的 CTR 的預(yù)估。如果我們優(yōu)化目標(biāo)可能是 CTR 那就是 CTR 的預(yù)估,還有很多 ROI 的預(yù)估。 最近幾年,國內(nèi)外互聯(lián)網(wǎng)大公司都在研究基于 DNN 的模型,怎么把原來傳統(tǒng)的模型可能存在的一些缺點進(jìn)行改進(jìn),這是我們在做的一些相應(yīng)的探索。 首先簡單介紹一下我們的業(yè)務(wù)模型。前面介紹了業(yè)務(wù)的特點,基于業(yè)務(wù)特點,用戶的模型是什么樣的,有幾個關(guān)鍵的步驟,用戶做決策時看到了相關(guān)的信息之后,這個是不是用戶的目標(biāo)需求,決定了用戶的消費(fèi)決策。 先點擊,點擊之后進(jìn)入到商家的點菜頁里面,可以加菜或者減菜,之后用戶可以提交訂單,提交之后用戶有一系列的輸入、地址等,之后就是支付了,最后就進(jìn)入到商家系統(tǒng)。 整個流程像一個漏斗,在這個漏斗里面每一場都有相應(yīng)的轉(zhuǎn)化,我們可以去做預(yù)估,也可以對整個鏈路做一個完整的預(yù)估。 另外一塊是在這樣一個預(yù)估模型里面,我們通過多個維度的特征表述這個樣本,我們采用某一種學(xué)習(xí)模型,得到最終的預(yù)制結(jié)果。 在外賣的場景上,特征的維度更復(fù)雜,前面提到用戶的特征這是最基本的,另外一塊包括場景層面地點的特征,不同的建筑物類型,用戶需求的不同,包括時間也涉及到配餐的特征,用戶肯定傾向于配送比較快的結(jié)果。 這個又分不同的業(yè)務(wù)場景,比如說吃午飯 12 點餐,你可能希望十分鐘送過來,你想吃水果你可以等三個小時。 什么是特征組合? 另外一個就是商家的特征,最主要是商家提供的商品,采用直營的模式,每一個實體的飯店,包括飯店的質(zhì)量和整體的轉(zhuǎn)化能力,其中經(jīng)營能力有很多的特征,還有商品的特征。 從這個角度來看,整個定特征的過程中,特征很多,這么多的維度都可以切出來不同的模式,怎么去定義特征,怎么組合特征的過程成本很高,這個過程依賴于人工經(jīng)驗,在整個行業(yè)里面?zhèn)€性化推薦效果比較好,為什么效果比較好呢? 除了技術(shù)比較好之外,在業(yè)務(wù)這一塊做了很多特征的定義,除了技術(shù)本身要深入的理解,業(yè)務(wù)上也有很多的特征和經(jīng)驗。另外一塊是特征選擇很大,特色比較多了之后做特色選擇成本是很高的,怎么樣把有價值的選出來。 剛才提到幾個關(guān)鍵點是 DNN 比較擅長的能力,為什么我們會嘗試很多的 DNN 呢? 一方面是傳統(tǒng)的模型已經(jīng)研究了很多年了,另外一塊在傳統(tǒng)的模型上面,它有一些不足。 它的優(yōu)點是速度很快,基本上是線性模型,我們用千億級的特征,但是它的缺點在于因為它是線性的,所以非線性的能力是比較弱的。但是實際的場景里面不是簡單的線性化,而是非線性化,甚至更復(fù)雜的構(gòu)成。 另外一塊因為是線性的,所以最基本的邏輯認(rèn)為它是單維的,需要我們每個人手動的組合特征,組合特征就涉及到如果人工安排,我們?nèi)绻麥?zhǔn)備三個就三個,如果多個就很復(fù)雜,所以特征組合的成本很高。 樹模型的應(yīng)用 樹模型可以解決特征組合的問題。同時還能解決整個樹空間的問題,把整個空間做了一個多維度,不是簡單的通過線性的切分方式,所以它的解決就是線性能力受限的問題。 比如說前面提到的有業(yè)務(wù)的類型,有快餐、簡餐、西餐;另外一塊是文本特征,這一塊樹模型上面不是那么擅長的,所以基于此我們嘗試多個 DNN 的模型。 整個系統(tǒng)的架構(gòu)架構(gòu)分為兩個大的層次,首先是基本的數(shù)據(jù)層,包括用戶來了之后在 APP 上面,包括我們的 API、很多業(yè)務(wù)的數(shù)據(jù),上面分兩塊,一個是離線的數(shù)據(jù)處理,一個是在線實時的數(shù)據(jù)處理。 離線數(shù)據(jù)有幾個關(guān)鍵的步驟,另外一個在線的整個邏輯上比較類似,核心的邏輯部分就是包括端達(dá)到 API,API 到后來的 Service,這個用戶是使用技術(shù)還是某一個線,這個按照業(yè)務(wù)特點的規(guī)則要做一個排序的。 再看一下整個在外賣上面關(guān)鍵特征的體系,一個是用戶維度,一個是商戶維度。 我們從用戶畫像來看,一個是基本用戶是男生還是女生,或者是它的行業(yè)是學(xué)生還是白領(lǐng),有哪一些偏好,他喜歡吃粵菜還是北京菜,還有另外購買能力,一頓飯吃一百塊還是 20 塊錢,另外還有優(yōu)惠的偏好很多的信息。 商戶這一層包括商戶的基本信息,也有商家用的第三方的配送,也有用的美團(tuán)點評,所以在配送的時效性這一塊有很大的差別,這個是單獨的特征,另外還有各種組合特征和關(guān)聯(lián)特征。 比如說一個用戶瀏覽次數(shù)是多少,點擊次數(shù)是多少,下單次數(shù)是多少,以及對應(yīng)的點擊率是多少,有很多交叉的特征。 熟悉了政策體系之后,首先我們嘗試了 Google 經(jīng)典的 Deep Model,分成兩塊,特征進(jìn)去之后做最后的一個預(yù)測得到相應(yīng)的結(jié)果。 接下來簡要介紹一下,Wide 這一塊可以輸出單一的特征,又可以輸出組合的特征,需要把特征轉(zhuǎn)到一個 Model 空間里面去,在 Deep 這一塊可以根據(jù)業(yè)務(wù)的特點是去試用或者調(diào)參數(shù)。 另外一塊是做特征時,雖然它是高維的,但是可以把高維轉(zhuǎn)到低維空間里面,這一塊是更詳細(xì)的一個圖,這個圖里面我們把特征做了分層,也可以做的比較靈活一些,可以在不同的廠商,或者有的廠商可以介入到最終的邏輯回歸那一層。 在做模型的過程中,關(guān)鍵的就是離線,離線一個是樣本處理,包括樣本的清洗還有爬蟲過濾,爬蟲現(xiàn)在不少,這些爬蟲的數(shù)據(jù)對整個的效果影響很大。 另外還有無效的加載,材料的優(yōu)化,怎么調(diào)價樣本還是副樣本都很關(guān)鍵,我們采用用戶的點擊設(shè)想給它。 在業(yè)界里面用的比較多的,甚至他是新用戶使用優(yōu)惠才點,這個是表述它的興趣的內(nèi)容,我們做了一些篩選,選出來相對一定頻度的用戶,或者是商品作為整個的樣本空間,準(zhǔn)確的來做數(shù)據(jù)。 前面提到的 Model 把不同的特征做了不同層次的劃分,不同層次的劃分在不同模型上使用,特征能力用的比較強(qiáng),但是大家也看到,前面模型使用特定的特征,沒有考慮到實序的特征。 實際上用戶進(jìn)入到一個場景,不管是電商的產(chǎn)品還是外賣產(chǎn)品的時候,用戶肯定會有一系列的行為。 比如說在最終下單之前,還有就是去構(gòu)建實際的序列,同時把實際的序列作為每個時段的輸入,同時每個時段去做相應(yīng)特征的項目,最終做一個完整的預(yù)測得到相應(yīng)的結(jié)果。 這里面是使用經(jīng)典 RNN 的模型,大家可以嘗試一下長短序列機(jī)的模型。 這一塊因為涉及到用戶的實時架構(gòu),所以簡要介紹一下我們實時系統(tǒng)的架構(gòu)。基本上,首先是用戶的個人行為的數(shù)據(jù),進(jìn)入序列之后,根據(jù)數(shù)據(jù)做相應(yīng)的梳理。 從整個 KV 結(jié)構(gòu)里面,同時去做多層指標(biāo)的監(jiān)控,監(jiān)控這個數(shù)據(jù)是不是正常的,我們怎么樣對日常的數(shù)據(jù)做一些相應(yīng)的處理。 接下來簡單介紹一下用戶的信息,一個是輸入,以不同的應(yīng)用場景去選擇,實際上在點擊用戶場景里面可以點擊用戶觀看,同時它的每一個輸入需要做相應(yīng)的 one—hot 這種輸入。 輸出的也可以做一個序列,這個序列可以根據(jù)實際的場景控制,序列里面根據(jù)概率我們?nèi)ミx擇的時候,按照一定概率的排序去給用戶一個相應(yīng)的序列結(jié)果,精準(zhǔn)的標(biāo)識用戶的需求。 在這里面,關(guān)鍵點是序列的長度。序列的長度根據(jù)不同的業(yè)務(wù)方式去調(diào)整,序列太長了,一方面可能會很稀疏,另外一方面計算的時間很高。 序列太短的情況下,用戶的信息不會被充分的挖掘,需要按照一定的時間窗做相應(yīng)的選擇。最終的收益是我們給用戶推薦結(jié)果的精準(zhǔn)度提升了很多,提升了整個平臺的轉(zhuǎn)化效果和收益。 結(jié)語 對外賣來講,業(yè)務(wù)很關(guān)鍵,如何把最終的效果做好?不但要從技術(shù)的角度上理解,我們還需要對業(yè)務(wù)有更深入的理解,理解業(yè)務(wù)之后決定采用什么樣的技術(shù)來解決這個問題。 另外在算法選擇上,在整個算法里,一下子找到牛逼的方法需要做很多的嘗試,我們需要嘗試很多的模型,同時需要做總結(jié),在什么樣的場景,什么樣的問題上用什么樣的策略方式是比較合適的。 |
|