天天看點

一場變美盛宴後面的大資料故事

小紅唇和阿裡雲大資料平台的牽手要從2016年5月份說起。随着小紅唇業務的發展,使用者量和内容量不斷增加,迫切需要推出個性化功能,增加使用者的使用時長和使用者粘度。對于一個沒有大資料/機器學習經驗和技術儲備,并且開發人員有限的年輕團隊,在業務快速發展的情況下,如何在非常有限的開發資源和不影響正常業務開發的前提下,快速建立起自己的推薦系統,成為擺在小紅唇技術團隊面前一個不小的挑戰。

小紅唇的技術團隊在收到産品關于個性化推薦的需求後,開始了技術調研,其中包括了主流的開源技術棧和阿裡雲在2016年年初釋出的數加平台。兩位毫無大資料技術背景和經驗的工程師并行化工作,都希望能快速切入到大資料的核心并快速産出。于是小紅唇和大資料的第一次邂逅就這樣不期的開始了,如同相親,在衆多的對象中,怎麼找到合适的那一位一定是故事裡精彩的部分。在這第一次邂逅的比賽中,調研阿裡雲數加平台的工程師隻用了一天時間,就利用阿裡雲數加平台的推薦引擎搭建起了推薦系統,該系統使用了業界流行的協同過濾算法,基于最新的使用者對短視訊的行為,計算出推薦清單。而另一位工程師還在熟悉陌生的大資料技術棧和程式設計語言。這第一次與阿裡雲大資料平台的邂逅堪稱完美,在對僅用一天時間就搭建起來的推薦系統稍作修改,并設計了如何嵌入到自身業務系統中後,個性化推薦就和其他普通業務需求一樣,在産品提出需求後的第一個發版中就快速上線了。整個推薦系統中資料采集,資料清洗,推薦計算以及結果擷取如下圖1所示。

一場變美盛宴後面的大資料故事

圖1. 推薦系統架構圖

在這個架構中,我們選擇了非常流行的開源

etl 工具來對使用者行為,物品,使用者等推薦系統依賴的資料進行清洗,并按照推薦引擎要求的格式同步到大資料計算服務中。由持續內建工具

jenkins 觸發資料的清洗和上傳到

這個架構簡單清晰,但也有着很多不完美的地方,特别在資料的采集和清洗方面,還顯得比較初級和脆弱,首先使用者行為資料完全依賴了在app中的埋點,而埋點的最初的設計也存在了一些問題導緻資料缺失。另外,推薦引擎沒有一個很好的觸發機制,通過外部的持續內建工具

jenkins 的觸發,在初期有時會遇到推薦引擎系統不穩定的問題,導緻離線計算失敗,使用者的推薦清單沒有得到及時的更新。

随着推薦系統的上線,小紅唇也開啟了大資料之旅,得益于數加平台完整的大資料計算和應用設計,小紅唇的技術團隊在熟悉和上線推薦系統的過程中,也逐漸收獲了大資料的核心理念,對大資料完整技術棧也有了更深的認識。

2016年是小紅唇快速發展的一年,随着業務的不斷增長,各種産品、市場營運活動的設計和決策也需要有各種各樣的資料作為支撐了。于是在快速上線了推薦系統之後,擺在小紅唇面前的另一個大資料挑戰就是搭建自己的資料倉庫。

在推薦系統的建設中,小紅唇技術團隊也意識到阿裡雲數加平台在普惠大資料理念上的前瞻性,整個數加平台産品線的布局對于像小紅唇這樣的初創公司,在大資料實踐上是容易實作彎道超車的。

小紅唇基于數加平台的資料倉庫搭建分成了兩個階段。第一階段由于主要的業務伺服器并沒有部署在阿裡雲上,使得資料的采集和清洗變得比較麻煩,跨網的資料傳輸和備份,各種周期任務比較複雜。如圖2所示。

一場變美盛宴後面的大資料故事

圖2. 第一階段數倉架構

在第一階段的數倉建設中我們已經在計劃業務伺服器向阿裡雲搬遷了,是以把資料需求最緊要的資料做了向

odps 的同步(同步方式也有用

datax 和

odps 的

tunnel),在資料開發ide中對資料進行etl和olap,産出bi報表。

另外還有一些資料會應用到業務系統中,我們通過

rds 進行存儲。

在資料倉庫第一階段的建設和使用中,我們已經在積極的籌備業務系統向阿裡雲的搬遷。随着搬遷的完成,我們也迅速開始了第二階段的改造。同時更多的數加産品也在不斷的内測和釋出中,借助于新的産品和上下遊的不斷打通,我們的架構也進行了演進,如圖3所示。

一場變美盛宴後面的大資料故事

圖3. 第二階段數倉架構

第二階段與第一階段主要的差別就在于資料采集和清洗部分是否直接納入在數加平台内部,而對于資料倉庫的建設而言,這兩個環節又是非常重要的部分。在第二階段中,我們的業務資料庫已經在阿裡雲的rds上了,通過dataide

就可以友善的把需要的資料同步到大資料開發平台中,這也是小紅唇目前的架構。在把資料采集,資料清洗,資料開發和資料應用形成完整閉環後,小紅唇在大資料領域的各種嘗試和産出得到了巨大的發展:

第二,流計算的引入,提高了小紅唇業務的實時表達能力而又沒有增大開發成本。對某些業務還起到了異步,解耦和降級的作用,大大降低了對線上已有的複雜業務的影響,因而降低了開發和維護成本。

第三,與機器學習算法平台pai的對接也幫助了小紅唇技術團隊在機器學習等高難度領域大資料應用的探索,比如我們嘗試了訓練回歸模型對使用者上傳視訊的打分,還有對文本的處理聚類等。

第四,基于統一的資料存儲和計算,我們通過對使用者的特征抽取,開發了自己的一套基于内容的推薦模型(通過使用者對内容的行為,在odps中通過sql/mr的計算生成使用者特征,通過

datax 存儲在

ots 中,在實時的計算中擷取并對使用者進行基于興趣的内容推薦),和阿裡雲推薦引擎一起,為使用者提供個性化内容,也取得了不錯的效果。同時也在智能搜尋方面做了初步的嘗試。

技術的不斷進化和更新需要比對業務的水準和規模,對于小紅唇這樣的初創企業,背靠阿裡雲強大的平台,能夠快速應用新技術并得到價值的轉化,實作彎道超車,并不斷完善自身技術架構和能力,在不斷的創新中得到發展。

繼續閱讀