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