編者按:本文是根據ArchSummit北京2015大會上美團網現任技術委員會主席夏華夏的演講《從技術細節看美團架構》整理而成,感謝Emily的整理。
很多人認為,電商都沒有什麼技術含量,電商沒有什麼門檻,入門的門檻並不高,電商很痛苦,需要不停地去掃街,不停地去拜訪各個商家,要在使用者和商家之間拉客接客。國內曾經出現的團購類網站有6400多家,到四年多以後的現在,美團已經是成為國內最大的本地生活服務平臺,不管怎麼說,現在美團在這些電商,至少團購類的電商裡邊是走的比較成功的,如果說電商真的是沒有門檻,那難道說美團走到現在是因為幸運嗎?
那必然不是因為運氣,如果大家知道王興,美團的創始人,他在這個行業內有個非常響亮的外號,叫國內史上最倒黴的連環創業者。因為他之前做過像校內網,做過飯否,最後都是因為一些莫名其妙的原因就沒有做起來,或者發生了很多問題。但是美團現在他做得非常好,那肯定不是因為運氣。其實在我們內部,很多同學也在做思考總結,我們希望找出一些比較好的東西能留下來,然後以後繼續保持,在這其中分析來分析去,其中有一部分很重要的原因,就是我們技術團隊的努力。今天與大家分享的,就是在技術團隊中,不斷追求極致努力的一小部分經驗。
首先第一部分給大家介紹美團的技術架構,架構是如何演變的。第二部分講一講美團的業務架構,在業務方面如何做一些業務流程的優化。最後第三部分介紹O2O技術,如何實現線上和線下都用技術來做優化貫通的。
第一部分首先講一講技術架構,其實在初期的時候,美團的技術架構非常簡單,的確在最初2010年、2011年的時候,技術是沒有門檻的,任何一個人都可以寫一個電商的網站。
這就是一個最初期的架構,一個比較典型的LAMP架構,前端加上Apache/PHP,後端是MySQL,當然我們會有一些運維的工作在裡面。可能大家如果自己寫個網站的話,一開始都是這種架構,這種架構一開始也很好用。然後慢慢的,當業務量大了之後,我們發現整個系統的效能跟不上。那時候我們也只是做一些簡單的優化就夠了,比如說一開始我們是在前端,就是在Nginx和Apache之間加一些Varnish的快取,然後在後端,我們可能用MemCached來減少MySQL的壓力,這些都是快取,整個架構還是沒有太大的變化,還是一個優化了的LAMP架構。
然後到2011年的時候,我們開始做移動端,這時候架構還是沒有太大的變化,只不過是在Apache這種已有服務的API前面,又包了一層。就是我們在提供給PC端的同時,我們也包了一層移動的API,這樣我們可以繼續給手機端的使用者提供服務。
這個時候其實也就是簡單地把LAMP架構做了一點點擴充套件,但是已經可以支撐很多很多的使用者,很多很多的容量了。我們在這種架構的前提下發展,直到我們想去做新的業務。美團一開始起步是個團購公司,後來我們去做一些新的,比如說酒店業務、電影業務,直到現在大家可能使用過的美團外賣的業務。當我們去做很多不同的業務的時候,我們發現做每一個業務似乎需要新增一些新的部分,這樣一個部分、一個部分堆積,對很多技術的同學來說,這是不能容忍的,那我們怎麼去改進它呢?我們希望把中間的很多的公共的東西,與業務無關的東西抽取出來,形成一些公共的技術的元件,這樣可以為很多的不同的業務來使用,發展到現在,形成這樣一個看起來稍微複雜的架構。
在最底層會有云平臺,對內對外都有服務,會有云主機,會有云儲存,也會有虛擬網路,包括一些負載均衡的東西。在雲平臺上面,我們會有一些基礎的元件,這些基礎元件跟業務的邏輯相隔比較遠,它會有比如配置,佇列中心,註冊中心,包括一些SQL和NoSQL的儲存等等,這些技術元件我們在所有的業務裡都會使用,所以我們把它提取出來,作為我們的技術元件提供給業務能用。再往上,確實有一些東西是與業務結合比較多,比如說使用者中心,支付,包括一些搜尋,推薦,還包括,比如說我們會建立使用者的一些地理位置的庫,包括一些風險控制的東西,這些東西是與業務是有互動的。但是我們去分析之後發現在不同的業務裡面,這些元件還是差不多的,所以我們也是把它抽象出來,現在叫業務元件,這些業務元件在所有的業務之間也是共用。
再往上才是我們各個不同的業務的,真正的比較獨特的一些邏輯。在這些業務邏輯前面,是前端的接入,這個前端接入其實對不同的業務也是一樣的,它會有前端的接入和轉發,會有前端內容的過濾,就是一些防抓取,防攻擊這樣的內容過濾。比如說為了做使用者訪問效能的優化,我們會做大量的各種各樣內容的快取,包括CDN也好,包括我們內部不同層次之間,包括一些驗證碼的服務。所以在這種架構下面,當我們再要去做一個新的業務的時候,我們就關注在中間業務邏輯這一塊就可以了,這樣可以很快地去拓展新的業務邏輯,而且每一個人,每一個團隊,只關注真正最有價值的那一部分的軟體的開發。那當然兩邊會有我們的,運維的工作,安全的工作,是在每一層都會涉及的。
但是整個這樣一個邏輯發展到現在,我們是覺得最適合我們美團現在這個階段的一套技術架構,那從一開始的最簡單的LAMP,到現在可能我們分了很多很多個元件、很多很多層,這些架構看起來是非常非常不一樣的。但是我們現在回想起來並不覺得說,原來的就不好,現在的就好。我們覺得在公司發展的不同的階段,一開始就最適合那種最簡單的情況,如果說我們一開始,比如說美團2010年成立的時候就上這種很複雜的架構的話,那可能我們2010年底才把軟體開發完,那時候上線的時候,可能已經有五千多家團購網站在線上了,所以這是不切實際的。所以整體來說,我們覺得在整個技術架構的演變過程中,就是找當前真正能夠滿足我們業務需求的。
另外一個特點,大家也可以看到,在我們的整個的架構裡面,大量應用了一些開源的東西,從最初的LAMP架構的時候,包括MySQL、Apache,到現在我們一些很複雜的架構裡面,比如說搜尋,現在會用到Lucene,會用到Solr,在雲主機、雲平臺這一塊,我們會用到比如說OpenStack的一些個元件,包括比如儲存的Swift等等,用到很多的開源的東西。開源產品拿過來當然會加速我們的這種開發的週期,但是開源產品我們也不僅僅是單單把它拿過來,因為任何一個開源的產品,如果你要拿到一個比較複雜的業務裡,你就會發現它不是那麼匹配的,它總是有些邊邊角角,比如說要與系統的整合,或者很多開源產品,它在大規模的情況下,高併發的情況下,考慮地並不是那麼周到。所以我們在開源的基礎上做了大量的優化,一方面能讓我們的整個系統能做更好地水平的擴充套件、系統的擴充套件、系統的優化,同時也讓整個的使用者體驗能夠更好。
總結下來,就是在技術架構方面,想跟大家分享這麼幾點,一個就是整個技術架構總是在不斷地結合業務在不斷地演化,還有就是至少從美團來說,我們是在開源軟體的基礎上,然後不斷地做整合,不斷地做優化,最後,軟體開發的時候,不管是在對使用者體驗來說,還是對工程師自己的體驗,我們總是在追求一些極致,這樣的情況下,我們的技術架構就自然而然的在不斷地演變了。
第二部分分享一些業務架構方面,我們做的優化。
這個圖是一個比較複雜的圖,我們也不去講它的太多的細節,大概分析一下,上面這一塊其實是剛才給大家看的,對使用者訪問端,它所涉及到的一些元件,一些部分。但是對於電商來說,其實它還有一個很複雜的生產系統,這個生產系統就是說我們怎麼去跟生產商談單,談完之後,我們怎麼把這個單子錄到線上,怎麼去編輯,怎麼去稽核等等,這個單子的生產我們叫生產系統。
除此之外,還有整個公司的運營,一些市場的營銷推廣,我們怎麼去拉動我們新的使用者,怎麼去拉動我們的新的商家等等,所以就涉及到很多的業務的模組。整個的這個框架,細節我們不關注,但是第一感覺肯定是非常複雜,這個複雜的業務架構有一個什麼後果呢?一般來說,它會讓整個流程非常複雜,當流程複雜了,那自然而然帶來的整個效率低下,所以對於技術團隊來說,我們一個努力就是在不斷地去優化我們的業務架構,不斷地讓流程簡單,讓效率更高,那怎麼來優化呢?
我們有一些自己總結出來的方法論,就是讓複雜的事情簡單化。一個很複雜的業務架構,我們希望對它做很多理解和梳理,梳理的過程中,我們就會發現一部分步驟其實是不需要的,可以省略的,這是一種簡化;還有一個就是,當我們梳理完了,發現每一個步驟都需要的時候,我們會盡量地把一個複雜的東西拆成很多比較小塊的,易於把控的一些東西,這就是一個把複雜東西簡單化的一個過程。當把一個複雜的東西拆成了簡單的小的東西之後,我們就容易地去對這個簡單的模組,簡單的功能進行標準化。
所謂的標準化,就是去制訂一個標準,這個東西該怎麼做,應該實現什麼目的,做了之後我們怎麼去衡量。所以這三個是非常重要,就是我要去做什麼,我怎麼做,然後怎麼去衡量。如果把每一個簡單的東西都處理好了之後,這個簡單的東西就成了一個標準的東西,標準的東西在很多時候就比較容易去推廣。這就是標準化的過程,如果整個的標準比較完善了,那我們就希望把這個標準固化下來,固化下來就是說整個的工作就會變成一個很簡單的流程。
招幾個新的員工,然後給他們一個手冊,告訴他們,照著這個手冊一步一步,第一步做什麼,第二步做什麼,第三步做什麼,這就是流程化的東西。如果發展到這個時候,其實複雜的東西已經可以比較高效地往下運作了。但是對於計算機來說,對於搞技術的同學來說,我們知道,其實計算機它最擅長的東西就是處理這種簡單的流程,所以我們如果做到流程化,就有了一個自動化的基礎,我們可以用計算機來把這些固化的流程完成,這樣最終就把複雜的事情能夠儘量地做到自動化。
我來舉一個簡單的例子,尤其是後面流程化和自動化這個東西,大家可能不是那麼理解。就是我們在上單,所謂上單就是一個單子,比如一個餐館售賣的東西,就是本地服務的一個產品,我們叫一個單子。上單的時候,我們的銷售同學和商家談了一個問題,最終要上到我們的整個網站裡邊。我們今年上半年曾經做過一個很大的努力就是,上單的時候我們希望免稽核、免寫、免編輯,為什麼要這麼做呢?給大家介紹一下舊有的流程,在舊有的流程裡邊,銷售團隊可能從簽訂合同開始,還不算他一開始跟商家去談私人關係,去一次一次的溝通,那時候可能要碰很多壁,即使是商家已經同意了要和你合作了,那銷售的同學就可以和商家簽訂合同,從這個時候就進入我們生產流程,然後要到我們的稽核團隊去稽核合同,看這個合同的價格,定價是不是合理,是不是偏高,或者偏低,因為偏高了損害使用者的這個利益,偏低了之後美團要貼錢,所以要去稽核,包括一些法律的東西,是不是合法,一些條款是不是合法,這是稽核,如果稽核不通過,要打回來,重新籤,如果稽核通過了,回到我們的編輯團隊,那編輯的團隊會幹什麼?
會把合同裡的東西輸成文件變成文字,變成一個文字的描述,然後還包括編輯的同學,攝影師的團隊,他們會去每個商家去拍很多菜品的照片,或者商家門頭的照片等等,還要把這些照片再去剪下,包括打上防偽的美團的水印等等,這些就是我們編輯團隊原來要做得,他要把所有的這些東西原材料變成一個網上的單子,上了單子之後,先在一個系統裡給商家看,這是我要給使用者展示的東西,這樣行不行?商家說可以,我們就可以最終給使用者來賣了,那在這個整個的流程,從簽訂合同開始,到最後使用者能夠看到這個單子,這之間的時間是7到10天,這是一個非常非常長的時間,因為7到10天就可以對對商家帶來很多很多流量。我們現在每天的銷售額是幾億人民幣,如果我們每個單子都拖到7到10天的話是不可忍受的。
那技術團隊就會想怎麼去優化這個流程。我們其實做了幾件事情,第一個就是說把業務流程所有的東西儘量線上化,比如說離線執行的東西。有的編輯的同學他本來是去籤一個紙質的合同,紙質的合同寄到我們編審那邊,編審的同學要去一條一條的讀這個紙質的合同,這個是很難容忍的,這個是沒辦法提升的。我們首先就把很多的,比如說合同,儘量在線上來填合同,還有攝影師拍的照片,儘量直接傳到網上,不要通過一個其他的渠道,U盤等等來傳。這樣所有的東西在線上了以後,我們才有了所有用計算機處理的一個基礎。
還有一個就是,我們希望所有的資料結構化。舉一個例子,對於一個餐館來說,我們可能往往會有很多的條款,比如說他這個餐館是幾點到幾點營業,這個單子是幾點到幾點可以用,用的條件包括你可以用包間,或者不可以用包間,以及是否提供停車位,還有一些選單的東西,這些東西在最初的時候,就是我們編輯的同學一條一條對著那個合同把它用手錄成一大段文字,這樣不是結構化的東西。我們結構化的努力,就是我們把每一項條款都變成我們資料裡的一個結構化的單元,比如說你的這個單子在什麼時間可用,星期幾,幾點幾分到幾點幾分可以用,這個本身就是一個數據儲存的專案。
當結構化之後,銷售上單的時候,它就是一個表單,一個表格這麼填寫,最後生成的資料就不是一大段文字了,而是很多結構化的資料。這個資料有什麼好處?比如說我們生成單子的時候,如果要改版,它很容易做一些改版,或者說我們商家要調整一個價格,就只把價格那個專案給商家來做調整就可以了。不用擔心商家改的時候,把一些條款的其他東西改掉。然後還包括,比如說現在會在PC端和這個移動端同時顯示同樣的單子,其實因為顯示器的差別,我們在PC端和移動端的顯示肯定是不一樣的。
只有當我們把它結構化之後,我們才能自動地匹配不同的顯示環境,這就是結構化的一個好處。再比如說,我們會把一切可量化的東西量化,就是價格我們不希望輸入一個字串的幾塊錢,因為這個東西計算機是不容易去理解的,我們希望如果它是數字的,比方說價格,你就填一個價格,如果進價是多少,我賣價是多少,還有可使用時間,就用時間的格式來填,這樣的好處就是我們的稽核就變得非常容易。我們的稽核團隊,它根本不需要人工的去讀這個東西,只要我們把規則制訂好了,那計算機就可以把這個量化的東西一條一條地過一下。
所以當我們做了這些努力之後,我們新的流程變成什麼樣子了呢?銷售團隊同樣還是要去填合同,但是他填寫一個表格的資料,填寫好後這個表格的資料,系統會自動地審查,自動地生成一個單子,然後立刻可以給商家做確認,商家確認之後,就可以上線給使用者了。然後,做了這些努力之後,我們把中間的很多環節和步驟,包括人力都省掉了,我們不需要那麼多編輯的同學,不需要那麼多稽核的同學,而且整個的流程會走地非常順暢,非常快,便捷。
給大家看一下收益是什麼呢?這是從今年1月份到9月份的一個數據,藍線是我們每個月的上單量,從今年1月份,除了2月份,2月份因為是春節,整個的上單量有所下降,其餘幾個月份上單量一直是非常快速的往上漲的,一直到現在,每個月我們美團上的單子有40多萬單不同的消費單,這種單子做一個假設,如果有一個吃喝玩樂的達人,他每天去吃一單美團的單子的,那40萬單夠他吃一千年。假設我們這個單子能持續一千年,我們會提供非常非常豐富的單子給使用者做選擇,上這麼多的單我們的單均成本,我們從原來的很高,現在已經降到了個位數。如果我們沒有做剛才那些努力的話,我們是根本不可能實現這麼多的上單量,我們的成本也不可能降下來。因為我們把成本壓的很低,就可以為商家提供更好的服務,也給使用者提供更好的優惠,這就是技術給我們帶來的一些優勢。
最後第三點,給大家分享一下,在線上線下這兩部分,技術都是可以去做的,我們說O2O,O2O是什麼?就是Online+Offline,就是線下加線上。有一部分同學可能會有一些誤解,可能技術只是在線上的,其實不是那樣,技術它不分線上、線下,它在線上線下都是非常重要的,需要貫穿線上線下。我在這裡給大家舉兩個例子,線上的就不舉了,因為技術都是在優化線上的東西。給大家舉兩個例子,看我們怎麼去用技術來優化線下的一些東西。
第一個就是外賣單子這個流程中,我們做了一個外賣印表機。先給大家介紹一下背景,美團外賣整個下單是怎麼樣的?比如使用者下單,在我們的網站上說,我要買一個砂鍋飯,在哪個餐館買,我要送到什麼地方,我們就需要通知商家,通知商家的時候,要告訴他使用者要買什麼,他地址是什麼,電話是什麼,然後我們的商家的廚師去做菜,小二就要去送餐,使用者完成消費。美團外賣是2013年的11月13日上線的,第一單的時候,最初的時候,我們怎麼處理呢?那個時候真的很原始,當然我們一開始還是做了個手機的APP,使用者在手機的APP上下單,我們會有美團的外賣的這個同學,包括一些客服的同學,也包括一些很多技術的同學也幫忙打電話,我們就打電話通知商家說,某某定了一個什麼單子,然後他的地址是什麼,電話是什麼,告訴商家。
商家怎麼辦?就只能用這個紙筆記下來,交給廚師,說你去做飯,廚師做完了,把小紙條給配送的同學,配送的同學就去給使用者來送東西,這個裡面過程是非常痛苦的。當然那時候大家做的很有熱情,非常喜歡打電話,看到我們有使用者進來,一天從一單十幾單到幾百單,大家打電話打得很興奮。但是很快發現承受不了,因為打一單,對美團的開銷是說,一單哪怕只需要一分鐘去給商家打電話,幾百單的時候還行。一天一個人8小時工作,哪怕你持續不停的給商家打電話,那一分鐘打一個也就四百多單,你可以幫使用者定四百多單。但是當這個單子增長很快的時候,我們就發現我們人力跟不上了,技術的同學都去打電話了,技術同學受不了。商家也很痛苦,因為打電話的時候,很多的資訊是說不準確的,他要記電話號碼,如果記不清的話,他還要再打過來問剛才那個單子電話是什麼,包括地址,有些地址字還比較難寫。
我們為了解放,首先我們解放我們自己,我們不給商家打電話了,我們給商家開發一個APP,每個商家只要安裝了這個APP,他在手機上就可以接到通知。一旦有使用者下單, APP上就會有通知說誰誰下了一個單,這時候老闆根據APP上的資訊,拿張紙,找個筆,把它寫下來,然後給廚師。這個時候你會發現說,至少美團的同學們這個工作就省下來了。但是商家的工作,他雖然抄得準確一點,不用從電話裡抄,直接從APP上抄,但是還是要做大量的工作,包括這個小紙條傳來傳去,有的人寫得筆跡不是那麼清楚。
後來我們再進一步,我們APP接到一個印表機上,這個APP有可能是一個手機的APP,也有可能是電腦上的一個應用程式,這個APP連著印表機,一旦使用者下單,印表機就會打出一個小條來,他拿這個小條,這個資訊就非常準確了。商家不用花時間去寫了,這時候就可以給廚師去做菜,廚師做完了交給配送員去送菜,這個就比較方便了。後來我們還是發現這個也不是很好,一般這個APP總是在老闆那裡的,如果說好幾個人拿著APP會出現問題,好幾個人拿的話,比如老闆和老闆娘都拿著,他們可能都去打,一個定單可能打了兩份;或者說,有時候說老闆拿著這個APP,但是老闆剛好不在,那他就打不了。有的店,他就不得不買一臺電腦放在那,但是電腦對於很多小的外賣店,還是一筆額外的開銷。因為現在手機上網的多,但是電腦上網的人已經很少了,還是對商家有很多不方便的地方。
今年5月份的時候,我們的硬體的團隊,他們就說我們自己來做一個雲印表機。所謂雲印表機就是它自己可以聯網,聯網的時候有很多聯網的方式,比如說我可以插一個手機卡,通過手機的網路來聯網,或者我也可以通過WiFi來聯網,聯網之後,手機下單的時候,我們的美團後臺的伺服器會把這個單子的資訊直接推送到這個雲印表機上,這個雲印表機就像一個POS機那樣,是一個很小的裝置,會自動地打印出單子的資訊,這樣就大大得解放了我們美團的同學和商家的同學。這是一個我們用技術來優化商家端這邊的流程的一個例子。
接下來給大家舉一個,我們怎麼去用技術優化使用者端的例子。我們在使用者端也有很多線下的工作,其中一個工作就是使用者運營。我們有一種需求叫“拉新”運營團隊,他們的任務就是對一些已經註冊了美團的帳號,但是過來逛了一圈,最後沒買東西就走了,可能來逛了好幾次,他還是沒買,這時候美團就急了,美團急了怎麼辦呢?給你10塊錢,你趕緊買一個吧。因為很多使用者的確是這樣,他沒買可能是因為他不知道網上怎麼支付。他支付流程沒做通,或者說他可能就不太習慣,所以我們希望把這些使用者轉化成一個習慣於在網上消費的使用者,讓他體驗一下,可能體驗一下他覺得好,他可以以後接著買。給使用者10塊錢, 20塊錢,做一些優惠活動,吸引使用者完成首次的購買。那其實我們這邊的花銷是真金實銀的,我們是給使用者很多免費,對於美團來說薄利多銷,利很薄,所以我們希望少花錢,多辦事,這個錢能少給就少給,能不給就不給,運營的團隊,就跟我們技術的同學聊,問這個事情能不能優化?
我們就去分析,先去分析這些使用者到底是什麼樣的使用者,發現使用者有很多類,一類是有一些使用者他雖然來逛了一圈,或者逛了幾圈,他還沒買,但是假以時日,可能再過幾天,最後他還是會自動的轉化,所以有一些使用者的這種自動轉化的可能性是比較高的。還有一些使用者,他可能來了幾次,他可能每次就是來逛逛,每次逛逛,就像逛街一樣,雖然他不買,但是逛著也很爽,看著選單他可能口水直流,也覺得挺爽。所以有些使用者,就是你不給他刺激,他就完不成自動的轉化。然後還有一些使用者品質低,所謂品質低就是對美團的品質,我給他券的時候他就過來買個東西,比如我給他10塊錢,他可以過來買個11塊錢的東西,然後轉身就跑了,我不給他券,他就半年不過來,美團又忍不住,又給他10塊錢,他又過來看了看買了個9塊錢的東西就走了。對這種使用者不是說品質低,對美團來說當然我們希望儘量這種薅羊毛式的這種使用者,他來當然我們也歡迎,但是不來我們也就不去拉攏了。
還有一些使用者就是,屬於使用者品質比較高的那些使用者,如果我們一旦幫助他轉化,就是越過了這個首次消費這個坎的話,他可能就成為一個很高頻的,習慣於在美團消費的使用者,我們叫高品質使用者。對於美團來說,我們希望真正運營的物件,真正拉攏的物件就是在這些,我如果不給他刺激,他自己可能轉化不了,然後同時如果他轉化了,他對美團的銷售額的貢獻會比較大。這種使用者,對其他三個象限,比如說第一象限裡邊,這部分使用者我不需要給他發券了,發券就是對美團來說浪費錢了,我們叫浪費,當然也沒浪費。對下面這兩個象限呢,因為使用者本身品質比較低,所以他來和不來至少對美團的最後的獲利來說沒有大的關係,那我們怎麼去找出這部分使用者?這是運營的同學給技術團隊提出了一個要求,那我們怎麼去做呢?
做使用者畫像,在美團其實有大量的使用者的資料。我們可以看到,他什麼時候註冊的美團,他從什麼瀏覽器,從什麼作業系統,然後包括說,他去看了哪些單子,瀏覽了什麼單子,他做了什麼搜尋,他用的是什麼手機,這些資訊我們都有。有大量的資料,那我們從這些資料裡面就給使用者畫像,我們會去判斷使用者的各種屬性,這些屬性有一些是,可能使用者在註冊的時候就會告訴我們了,比如說性別,年齡,包括郵箱,這些可能本身他註冊的時候就會告訴我們,還有一些是需要我們去分析,比如說這個是否結婚了,他的職業是什麼,然後包括他的地理位置,地理位置當然比較好拿,因為很多,現在我們絕大部分使用者是在手機上的,他一旦在手機上做周邊的這種搜尋,我們就可以拿到他的地理位置,地理位置的話,我們就可以知道,比如說他是一個學校的使用者,是學生,還是說一個工業園區的一個白領,還是一個比如金融街的一個比較高大上的一個這個金融界人士。郵箱也很重要,比如說我們發現使用者是qq.com的這種使用者,跟gmail.com的使用者,他是兩類不一樣的使用者,他所關注的東西,感興趣的東西都不一樣。
我們也會去分析使用者的收入水平和消費水平,收入水平就是我們可能根據他的職業,根據他的年齡的工作年限去判斷,他是在一個高收入,還是低收入,然後消費水平相對來說,有可能他雖然收入很高,但是他過來看的單子都是一些比如打折打得很狠,比如吃一頓飯人均20塊錢這種也有。所以收入水平和消費水平我們是分開來判斷,然後會判斷這個使用者是傾向於最優惠的價格,他還是講求比較高的品質,就是訂酒店的時候是99塊錢的酒店,還是說899的五星級酒店等等。
我們會去做一些分析,我們根據使用者他瀏覽的歷史,他去看了哪些單子,他去做了什麼搜尋,我們就可以知道他的品類偏好,他到底是喜歡美食,還是喜歡去看電影,還是喜歡去唱卡拉OK,這種娛樂,這些也可以判斷出來,再加上一些正常的統計的資料,比如說使用者搜尋了多少次了,然後他去瀏覽了多少次,就是來逛街逛了多少次了,他是不是有收藏一些他比較喜歡的一些單子等等,這些很多很多的屬性加起來,我們就建了使用者畫像的這種資料庫,然後有了這些屬性,那我們接到運營同學的需求的時候,我們就會對用我們的使用者畫像裡的資料先做特徵的選擇,做特徵的提取,甚至有一些屬性,比如說年齡這個屬性,我們會做很多特徵的離散化,就是把一個屬性離散成幾百個,甚至幾萬個這種屬性,放到我們的機器學習的模型裡面去訓練一些模型,最後我們用一些分類模型去,其實最後我們選的是SVM,就是支援項連機這種機器學習的演算法,訓練出的模型,它的準確度相對來說,看起來沒有那麼高,但是效果已經很明顯,沃勒準確率是75%,判斷使用者是不是真的在左上角那個象限裡,準確度75%,召回率能達到68%。有了這個技術支撐,最後我們運營的單位成本,比如說我們拉新運營的單位成本就可以降低35%,總共的拉新運營開支就節省了30%。
所以這個就是我們在技術,線上下的使用者運營這邊做的一個努力。大家可以看到剛才舉了兩個例子,一個是在商家端,一個是在使用者端,其實不管怎麼樣,我們線上下技術可以做很多很多的優化,讓我們線下的效率做很多的提升,那正是所有這些一個一個的優化,加起來就可以把美團的整個的生產效率提升上去,把我們的成本降下來,這樣我們最後的獲利就是美團越來越有競爭力。
今天給大家分享的一些小的例子,最後總結一下,把它總結成幾點。第一點,就是的確我們的技術架構是要隨著業務的發展而不斷地變化的,不一定一個複雜的的一個完善的架構就是好的,而是看,我們現在的公司是處在什麼階段,如果是一個初創的公司,那大家還是要小步快跑,一個簡單有效的方案就行了。第二我們是隨著業務發展,在一些開源軟體的技術上不斷的優化,業務流程我們也不斷的做一些標準化,自動化,就是剛才給大家講了我們四個原則,就是把複雜的東西簡單化,簡單的東西標準化,標準的東西流程化,流程的東西再自動化,這是我們在業務流程方面的一個優化的原則。
第三個就是在技術上的,技術不僅僅對線上有用,線上下的每一個操作裡,我們在不停地看我們能做一些什麼樣的優化。最後一句話就是,一個簡單的事情,哪怕像美團這樣,很多人覺得簡單的事情要把它做到極致,就是真正做到極致,也會有足夠多的這種技術挑戰,足夠高的門檻,所以我覺得現在很多O2O的創業的團隊來說,他們做得事情看起來非常簡單,但是隻要大家不斷地優化,不斷地極致,不斷地朝著極致去發展,你就可以在競爭中勝出。這個就是給大家分享的美團的技術團隊,我們做的很多的努力。