99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀一場變美盛宴后的大數(shù)據(jù)故事
一場變美盛宴后的大數(shù)據(jù)故事
2017-06-10
收藏

一場變美盛宴后的大數(shù)據(jù)故事

DT時代人們想變美的心愿可以更快的被實現(xiàn),可以實現(xiàn)的途徑非常多,美顏相機、美妝教程、美妝直播。。。。。。數(shù)不勝數(shù)的變美途徑可以讓人們越來越美。有這么一個平臺,讓我們看看,他們是怎樣利用數(shù)據(jù),讓大家變得更美。

說到的這家公司就是小紅唇,想具體了解小紅唇可以去官網(wǎng)了解,在這里要講的是,小紅唇是怎樣利用數(shù)據(jù),為千千萬萬想要變美的人們提供更加貼心的服務(wù)。

小紅唇的數(shù)據(jù)之路要從他們的一個個性化功能需求提起。

隨著小紅唇業(yè)務(wù)的發(fā)展,用戶量和內(nèi)容量不斷增加,迫切需要推出個性化功能,增加用戶的使用時長和用戶粘度。對于一個沒有大數(shù)據(jù)/機器學(xué)習(xí)經(jīng)驗和技術(shù)儲備,并且開發(fā)人員有限的年輕團隊,在業(yè)務(wù)快速發(fā)展的情況下,如何在非常有限的開發(fā)資源和不影響正常業(yè)務(wù)開發(fā)的前提下,快速建立起自己的推薦系統(tǒng),成為擺在小紅唇技術(shù)團隊面前一個不小的挑戰(zhàn)。這便是小紅唇和阿里云大數(shù)據(jù)數(shù)加平臺的第一次牽手預(yù)熱。

小紅唇的技術(shù)團隊在收到產(chǎn)品關(guān)于個性化推薦的需求后,開始了技術(shù)調(diào)研,其中包括了主流的開源技術(shù)棧和阿里云在2016年年初發(fā)布的數(shù)加平臺。兩位毫無大數(shù)據(jù)技術(shù)背景和經(jīng)驗的工程師并行化工作,都希望能快速切入到大數(shù)據(jù)的核心并快速產(chǎn)出。于是小紅唇和大數(shù)據(jù)的第一次邂逅就這樣不期的開始了,如同相親,在眾多的對象中,怎么找到合適的那一位一定是故事里精彩的部分。

在這第一次邂逅的比賽中,調(diào)研阿里云數(shù)加平臺的工程師只用了一天時間,就利用阿里云數(shù)加平臺的推薦引擎搭建起了推薦系統(tǒng),該系統(tǒng)使用了業(yè)界流行的協(xié)同過濾算法,基于最新的用戶對短視頻的行為,計算出推薦列表。而另一位工程師還在熟悉陌生的大數(shù)據(jù)技術(shù)棧和編程語言。這第一次與阿里云大數(shù)據(jù)平臺的邂逅堪稱完美,在對僅用一天時間就搭建起來的推薦系統(tǒng)稍作修改,并設(shè)計了如何嵌入到自身業(yè)務(wù)系統(tǒng)中后,個性化推薦就和其他普通業(yè)務(wù)需求一樣,在產(chǎn)品提出需求后的第一個發(fā)版中就快速上線了。整個推薦系統(tǒng)中數(shù)據(jù)采集,數(shù)據(jù)清洗,推薦計算以及結(jié)果獲取如下圖1所示。

在這個架構(gòu)中,我們選擇了非常流行的開源 ETL 工具來對用戶行為,物品,用戶等推薦系統(tǒng)依賴的數(shù)據(jù)進行清洗,并按照推薦引擎要求的格式同步到大數(shù)據(jù)計算服務(wù)中。由持續(xù)集成工具 Jenkins 觸發(fā)數(shù)據(jù)的清洗和上傳到數(shù)加MaxCompute(原名ODPS)中。推薦系統(tǒng)從大數(shù)據(jù)計算服務(wù)中獲取數(shù)據(jù)并進行離線計算,計算的結(jié)果存儲于阿里云的表格存儲中,用于在線計算的結(jié)果二次處理和返回。業(yè)務(wù)服務(wù)器通過推薦系統(tǒng)暴露的推薦接口獲取對某個用戶的推薦列表。

我們是數(shù)加平臺推薦引擎的第一批內(nèi)測用戶,得到了數(shù)加平臺的大力的支持,使得整個推薦系統(tǒng)的接入都非常的順利,也解答了很多關(guān)于大數(shù)據(jù)和推薦系統(tǒng)的小白問題。小紅唇的團隊在和數(shù)加平臺的推薦引擎團隊合作中快速的學(xué)習(xí)了大數(shù)據(jù)和推薦系統(tǒng)的相關(guān)知識,可以說是數(shù)加的推薦引擎為小紅唇技術(shù)團隊開啟了大數(shù)據(jù)這扇神秘的大門。

這個架構(gòu)簡單清晰,但也有著很多不完美的地方,特別在數(shù)據(jù)的采集和清洗方面,還顯得比較初級和脆弱。首先用戶行為數(shù)據(jù)完全依賴了在APP中的埋點,而埋點的最初的設(shè)計也存在了一些問題導(dǎo)致數(shù)據(jù)缺失。另外,推薦引擎沒有一個很好的觸發(fā)機制,通過外部的持續(xù)集成工具 Jenkins 的觸發(fā),在初期有時會遇到推薦引擎系統(tǒng)不穩(wěn)定的問題,導(dǎo)致離線計算失敗,用戶的推薦列表沒有得到及時的更新。

隨著推薦系統(tǒng)的上線,小紅唇也開啟了大數(shù)據(jù)的探索之旅。得益于數(shù)加平臺完整的大數(shù)據(jù)計算和應(yīng)用設(shè)計,小紅唇的技術(shù)團隊在熟悉和上線推薦系統(tǒng)的過程中,也逐漸收獲了大數(shù)據(jù)的核心理念,對大數(shù)據(jù)完整技術(shù)棧也有了更深的認(rèn)識。

2016年是小紅唇快速發(fā)展的一年,隨著業(yè)務(wù)的不斷增長,各種產(chǎn)品、市場運營活動的設(shè)計和決策也需要有各種各樣的數(shù)據(jù)作為支撐了。于是在快速上線了推薦系統(tǒng)之后,擺在小紅唇面前的另一個大數(shù)據(jù)挑戰(zhàn)就是搭建自己的數(shù)據(jù)倉庫

推薦系統(tǒng)的建設(shè)中,小紅唇技術(shù)團隊也意識到阿里云數(shù)加平臺在普惠大數(shù)據(jù)理念上的前瞻性,整個數(shù)加平臺產(chǎn)品線的布局對于像小紅唇這樣的初創(chuàng)公司,在大數(shù)據(jù)實踐上是容易實現(xiàn)彎道超車的。

數(shù)據(jù)倉庫的重要性毋庸置疑,在云計算和大數(shù)據(jù)時代,數(shù)據(jù)倉庫的建設(shè)也在不斷的進化中。開源生態(tài)中基于hadoop/Hive搭建數(shù)據(jù)倉庫的成功案例不勝枚舉。數(shù)加平臺基于MaxCompute的強大計算能力,也正是對這一理念的完美詮釋。于是小紅唇技術(shù)團隊也在橫向?qū)Ρ戎?,毅然決定在數(shù)加平臺上進行數(shù)據(jù)倉庫的建設(shè)。

小紅唇基于數(shù)加平臺的數(shù)據(jù)倉庫搭建分成了兩個階段。第一階段由于主要的業(yè)務(wù)服務(wù)器并沒有部署在阿里云上,使得數(shù)據(jù)的采集和清洗變得比較麻煩,跨網(wǎng)的數(shù)據(jù)傳輸和備份,各種周期任務(wù)比較復(fù)雜。如圖2所示。

在第一階段的數(shù)倉建設(shè)中我們已經(jīng)在計劃業(yè)務(wù)服務(wù)器向阿里云搬遷了,所以把數(shù)據(jù)需求最緊要的數(shù)據(jù)做了向MaxCompute的同步(同步方式也有用DataX和MaxCompute的 tunnel),在數(shù)據(jù)開發(fā)IDE中對數(shù)據(jù)進行ETL和OLAP,最后利用Quick BI產(chǎn)出BI報表。另外還有一些數(shù)據(jù)會應(yīng)用到業(yè)務(wù)系統(tǒng)中,我們通過 RDS 進行存儲。

數(shù)據(jù)倉庫第一階段的建設(shè)和使用中,我們已經(jīng)在積極的籌備業(yè)務(wù)系統(tǒng)向阿里云的搬遷。隨著搬遷的完成,我們也迅速開始了第二階段的改造。同時更多的數(shù)加產(chǎn)品也在不斷的內(nèi)測和發(fā)布中,借助于新的產(chǎn)品和上下游的不斷打通,我們的架構(gòu)也進行了演進,如圖3所示。

第二階段與第一階段主要的區(qū)別就在于數(shù)據(jù)采集和清洗部分是否直接納入在數(shù)加平臺內(nèi)部,而對于數(shù)據(jù)倉庫的建設(shè)而言,這兩個環(huán)節(jié)又是非常重要的部分。在第二階段中,我們的業(yè)務(wù)數(shù)據(jù)庫已經(jīng)在阿里云的RDS上了,通過DataIDE就可以方便的把需要的數(shù)據(jù)同步到大數(shù)據(jù)開發(fā)平臺中,這也是小紅唇目前的架構(gòu)。在把數(shù)據(jù)采集,數(shù)據(jù)清洗,數(shù)據(jù)開發(fā)和數(shù)據(jù)應(yīng)用形成完整閉環(huán)后,小紅唇在大數(shù)據(jù)領(lǐng)域的各種嘗試和產(chǎn)出得到了巨大的發(fā)展:

首先,我們基于數(shù)據(jù)倉庫的方法論在數(shù)加平臺上建設(shè)的數(shù)據(jù)倉庫,通過簡單的命名規(guī)則就構(gòu)建起各種層級和維度的數(shù)據(jù),依賴MaxCompute的強大計算能力,和簡單的SQL處理語言,小紅唇技術(shù)團隊只有一名數(shù)據(jù)工程師就能快速生產(chǎn)出各種數(shù)據(jù),以支撐各種BI報表。

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

第三,與機器學(xué)習(xí)算法平臺PAI的對接也幫助了小紅唇技術(shù)團隊在機器學(xué)習(xí)等高難度領(lǐng)域大數(shù)據(jù)應(yīng)用的探索,比如我們嘗試了訓(xùn)練回歸模型對用戶上傳視頻的打分,還有對文本的處理聚類等。

第四,基于統(tǒng)一的數(shù)據(jù)存儲和計算,我們通過對用戶的特征抽取,開發(fā)了自己的一套基于內(nèi)容的推薦模型(通過用戶對內(nèi)容的行為,在MaxCompute中通過SQL/MR的計算生成用戶特征,通過DataX存儲在 OTS 中,在實時的計算中獲取并對用戶進行基于興趣的內(nèi)容推薦),和阿里云推薦引擎一起,為用戶提供個性化內(nèi)容,也取得了不錯的效果。同時也在智能搜索方面做了初步的嘗試。

當(dāng)然,小紅唇在數(shù)加平臺上的大數(shù)據(jù)實踐也并非一帆風(fēng)順,期間也有對于產(chǎn)品理解和數(shù)加平臺自身的一些問題,比如初期大量的數(shù)據(jù)搬運和同步工作掣肘了業(yè)務(wù)的快速開發(fā),MaxCompute提供的算子不太豐富,需要自行開發(fā)udf(MaxCompute2.0將會有巨大的改進,同時更多的上下游產(chǎn)品被打通),初期數(shù)加平臺和其它上下游產(chǎn)品打通不夠等等。但是數(shù)加平臺強大的計算能力和完整的產(chǎn)品布局對小紅唇的業(yè)務(wù)擴展和決策支撐起到了關(guān)鍵的作用。

技術(shù)的不斷進化和升級需要匹配業(yè)務(wù)的水平和規(guī)模,對于小紅唇這樣的初創(chuàng)企業(yè),背靠阿里云強大的平臺,能夠快速應(yīng)用新技術(shù)并得到價值的轉(zhuǎn)化,實現(xiàn)彎道超車,并不斷完善自身技術(shù)架構(gòu)和能力,在不斷的創(chuàng)新中得到發(fā)展。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }