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

熱線電話:13121318867

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

若不方便掃碼,搜微信號(hào):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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }