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

熱線電話:13121318867

登錄
首頁職業(yè)發(fā)展大數(shù)據(jù)產(chǎn)品的特點(diǎn)和要素
大數(shù)據(jù)產(chǎn)品的特點(diǎn)和要素
2015-11-11
收藏

大數(shù)據(jù)產(chǎn)品的特點(diǎn)和要素


在談?wù)撎攸c(diǎn)和要素之前,先聊聊什么是大數(shù)據(jù)產(chǎn)品,這是個(gè)仁者見仁智者見智的問題,由于其特點(diǎn)過于抽象,每次解釋都很困難。業(yè)內(nèi)人士問我的工作內(nèi)容時(shí)還比較好回答,謙虛的時(shí)候我會(huì)說做做數(shù)據(jù),吹牛的時(shí)候我會(huì)說跑跑模型,尤其是這幾年隨著大數(shù)據(jù)這個(gè)概念越來越火,往往一說到我做大數(shù)據(jù)大家就都多少有了些概念。

大數(shù)據(jù)

可對(duì)于業(yè)外人士這個(gè)問題就難解釋多了,早年還在做網(wǎng)頁搜索排序的時(shí)候,我就會(huì)經(jīng)常撇開自己做的內(nèi)容舉電商的例子。我會(huì)說我做的事情就是決定你賣的東西能不能排在前面讓別人容易搜到,而決定排名的因素有很多,比如價(jià)格、歷史銷售數(shù)量、好評(píng)數(shù)瀏覽量等等,一般這么講對(duì)方就似乎懂了,覺得我做的事情聽著靠譜。

正如很少有人正面定義大數(shù)據(jù)是什么而是每次說起大數(shù)據(jù)就是說4個(gè)V一樣,更多情況我們選擇從他們的一些特性刻畫他們。所以,本文將要提到數(shù)據(jù)產(chǎn)品往往并不是一個(gè)具象的功能或者事件,他更多的是一個(gè)決策系統(tǒng),指導(dǎo)各個(gè)功能根據(jù)不同的場(chǎng)景完成最佳的響應(yīng)。所以搜索引擎,反作弊反欺詐系統(tǒng),推薦引擎,興趣點(diǎn)/主題提取系統(tǒng)當(dāng)然都是我要討論的大數(shù)據(jù)產(chǎn)品,而廣義上講的一些數(shù)據(jù)產(chǎn)品,比如數(shù)據(jù)詞典類的黑名單白名單,報(bào)表,OLAP, ETL,數(shù)據(jù)流等等則不在討論范圍之內(nèi)。

大數(shù)據(jù)

從特性上講,我今天要談的大數(shù)據(jù)產(chǎn)品往往具有概率的準(zhǔn)確性,自適應(yīng)性和閉環(huán)性等特點(diǎn)。

所謂概率準(zhǔn)確性就是說無論如何積極的使用最新最高級(jí)的算法,無論如何實(shí)時(shí)的更新模型,無論多么努力的清洗數(shù)據(jù)總會(huì)很多bad case摻夾其中。如果以工程的角度把這些負(fù)例當(dāng)bug來看,那么這個(gè)bug可是無窮無盡永遠(yuǎn)修不完的。所以數(shù)據(jù)產(chǎn)品往往只能做到高概率的正確,在很多場(chǎng)景就足夠好了。之所以要強(qiáng)調(diào)這一點(diǎn),我認(rèn)為這可以說是大數(shù)據(jù)產(chǎn)品設(shè)計(jì)的世界觀之一了。

做軟件開發(fā),網(wǎng)站應(yīng)用開發(fā)或者是數(shù)據(jù)流等工作很多年的人對(duì)準(zhǔn)確的定義往往更加嚴(yán)苛。對(duì)他們來說,自己的產(chǎn)品離準(zhǔn)確度達(dá)到100%也許也總有差距,可一個(gè)產(chǎn)品只達(dá)到80%的準(zhǔn)確性就沾沾自喜了實(shí)在讓人難以理解。

可是”泛泛來講”,能達(dá)到80%準(zhǔn)確的大數(shù)據(jù)產(chǎn)品已經(jīng)相當(dāng)不錯(cuò)了,很多投入無數(shù)人力物力數(shù)十年的技術(shù)積累也難將準(zhǔn)確度提高個(gè)10%。所謂“泛泛來講”原因就是大數(shù)據(jù)產(chǎn)品所要解決的問題本身對(duì)準(zhǔn)確性的定義就很難衡量,以搜索引擎為例,相關(guān)性應(yīng)該是衡量搜索結(jié)果好壞的最重要標(biāo)準(zhǔn)之一,從早期的tfidf, page ranking,到后來各種plsa, lda, wordvec2等技術(shù)的引入。我們還是明顯的看到各個(gè)搜索引擎的相關(guān)性是在提高了,可是相關(guān)性的準(zhǔn)確度達(dá)到80%了么?什么又是相關(guān)性的準(zhǔn)確性呢?所以這些事往往只能比較出現(xiàn)在比過去做得好,可是何為進(jìn)化的終極至少目前大多講不清楚。

大數(shù)據(jù)

自適應(yīng)性就是指大數(shù)據(jù)產(chǎn)品一般不是一個(gè)發(fā)行版,執(zhí)行著固定的邏輯不是靜態(tài)的一成不變的,而是總是隨著趨勢(shì)的改變、數(shù)據(jù)的積累,適應(yīng)著行為的變化而自適應(yīng)的反饋出相應(yīng)的結(jié)論。所以大數(shù)據(jù)產(chǎn)品是靠數(shù)據(jù)變得鮮活起來的,自身的邏輯只是給數(shù)據(jù)提供一個(gè)骨骼,支撐各個(gè)數(shù)據(jù)在各個(gè)位置發(fā)揮自己的作用而已。

所謂閉環(huán)性是指大數(shù)據(jù)產(chǎn)品的決策會(huì)直接影響業(yè)務(wù)的表現(xiàn),業(yè)務(wù)的表現(xiàn)會(huì)提升用戶的體驗(yàn),而用戶體驗(yàn)的改善又會(huì)更新數(shù)據(jù)的特性,最終數(shù)據(jù)不同又會(huì)使產(chǎn)品的決策不同。

那么性質(zhì)差不多講清楚了,開始講講各個(gè)要素吧

數(shù)據(jù)

巧婦難為無米之炊,但是光有原始數(shù)據(jù)也肯定是不夠的,除了對(duì)數(shù)據(jù)量,數(shù)據(jù)質(zhì)量和數(shù)據(jù)刻畫能力的要求之外(以上因素往往受業(yè)務(wù)邏輯限制),對(duì)于大數(shù)據(jù)產(chǎn)品來說,涉及每一個(gè)元數(shù)據(jù)必須清晰到每一個(gè)細(xì)節(jié)并且很好地進(jìn)行清洗。所謂清晰的到每一個(gè)細(xì)節(jié),就是說對(duì)每一個(gè)數(shù)據(jù)庫中的column或者日志中的字段,我們都要知道詳細(xì)的定義,知道每個(gè)取值的含義,進(jìn)一步的最好知道詳細(xì)的計(jì)算邏輯。如果只是依賴文檔當(dāng)然是很快的一種上手的方式,但文檔更新的滯后性往往造成了一些字段含義被誤解。

大數(shù)據(jù)

比如有一個(gè)字段為了節(jié)省空間是用bit的方式存儲(chǔ)的,文檔可能是這樣介紹的,該字段共用了兩個(gè)bit分別表示兩個(gè)地區(qū)是否命中一個(gè)邏輯,1代表命中。于是就可能出現(xiàn)了這樣一幕,我們需要取第二位對(duì)應(yīng)的地域的信息的統(tǒng)計(jì)結(jié)果時(shí),某位工程師寫了.filter( _ >=2)這樣的簡(jiǎn)單易懂的代碼,對(duì)兩個(gè)地域來講這個(gè)邏輯雖然不好但是不錯(cuò), 但殊不知這個(gè)文檔已經(jīng)過時(shí)很久,其實(shí)已經(jīng)是對(duì)應(yīng)了四個(gè)地域,這個(gè)條件會(huì)將很多其它情況通過過濾。

所以每個(gè)數(shù)據(jù)項(xiàng)在知道定義之后,統(tǒng)計(jì)其最大,最小,null的數(shù)量,分布情況是一個(gè)基本而且必須的過程,如果有條件最好畫一個(gè)一目了然的histgram或者boxplot更好。然后看每一項(xiàng)根據(jù)這個(gè)定義是不是可以解釋。數(shù)據(jù)清洗的過程當(dāng)然是基于了對(duì)每一個(gè)字段的理解深刻進(jìn)行的。一個(gè)大公司往往會(huì)有專門的團(tuán)隊(duì)對(duì)于核心數(shù)據(jù)進(jìn)行清理,即使這樣,數(shù)據(jù)清理所占的工作量依然是巨大的,而對(duì)一個(gè)從raw data開始的大數(shù)據(jù)產(chǎn)品數(shù)據(jù)清理的工作量甚至可能會(huì)超過總工程量的80%

人也是我認(rèn)為最重要的一條。而對(duì)于人的特性中我并不認(rèn)為最重要的是技能或者背景,更多的我認(rèn)為是懷疑和求是的精神。我和很多各種水平,各種背景的數(shù)據(jù)工程師工作過,有的可以對(duì)一些比較復(fù)雜的機(jī)器學(xué)習(xí)算法的每個(gè)細(xì)節(jié)侃侃而談,有的甚至連線性回歸的關(guān)鍵指標(biāo)都講不出來,但實(shí)際上從對(duì)一個(gè)產(chǎn)品的貢獻(xiàn)度來講后者未必低于前者。

大數(shù)據(jù)

所以一個(gè)不錯(cuò)的數(shù)據(jù)工程師,會(huì)機(jī)器學(xué)習(xí)算法當(dāng)然好,但最重要的是有懷疑和求是的精神。我認(rèn)為做數(shù)據(jù),其實(shí)就是在抽象對(duì)世界的一個(gè)認(rèn)知,講真理什么的就講遠(yuǎn)了,但是我們要不停的考慮數(shù)據(jù)的可解釋性,策略結(jié)論的合理性,反面樣例存在的原因。既要不停的用一般的common sense去度量每一步的數(shù)據(jù),又要依賴數(shù)據(jù)工具和各種metrics去公正的評(píng)估策略的結(jié)果,還要相信數(shù)學(xué)模型得到的結(jié)論不停修正自己的世界觀。

數(shù)據(jù)流的自動(dòng)化搭建

這里所講的數(shù)據(jù)流并不是單純的數(shù)據(jù)采集清洗以及存儲(chǔ)的過程,還包括了自動(dòng)挖掘,特征提取,模型訓(xùn)練和模型發(fā)布上線的過程。這個(gè)因素給人的印象似乎和前面談的不一致,這好像是在說純工程上的問題。但在一些場(chǎng)景之下,數(shù)據(jù)模型的高速迭代對(duì)業(yè)務(wù)來說就是一個(gè)非常重要的改進(jìn)。曾經(jīng)在做一個(gè)項(xiàng)目里預(yù)估模型時(shí),單是從每天更新一次的模型提高到了一天四次更新,在各方面線上表現(xiàn)就有了明顯的提升。

大數(shù)據(jù)

所以在項(xiàng)目的初期,也許確實(shí)沒有必要做到高頻的更新,但設(shè)計(jì)中應(yīng)該涵蓋對(duì)這種時(shí)效的提升考慮。比如只要做大機(jī)器夠多,MR數(shù)量夠多,模型更新的頻次就能增加,這樣就算可以接收的設(shè)計(jì)。如果能利用一些data streaming技術(shù)如spark來做實(shí)時(shí)機(jī)器學(xué)習(xí)那就更牛了,可是也要具體場(chǎng)合具體分析,如果每天的業(yè)務(wù)量本身就有限,又何必搞那么復(fù)雜,過猶不及。但是無論如何,無論是data pipeline還是模型分布,中間任何一個(gè)環(huán)節(jié)需要人手工做某些事情是絕對(duì)不能忍受的。

重視線下和線上評(píng)估的設(shè)計(jì)

線下評(píng)估省錢省力省時(shí)間,可是線上才是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),這也引入了三個(gè)問題,線上模型表現(xiàn)和線下訓(xùn)練數(shù)據(jù)處理的一致性,線上實(shí)驗(yàn)平臺(tái)設(shè)計(jì)以及線下評(píng)估的不斷完善。這三個(gè)問題每一個(gè)都可以展開講很久,都是值得我們不斷努力改善的方向。

選擇適合的算法

這個(gè)只簡(jiǎn)單講兩句,未必復(fù)雜的高級(jí)的算法就是好的,未必別人的最佳實(shí)踐就是可以復(fù)制的。選擇算法的時(shí)候,對(duì)于自己精通的算法,即使簡(jiǎn)單只要用的恰當(dāng)也許效果也相當(dāng)不錯(cuò),當(dāng)然我們也不能故步自封在已知的領(lǐng)域,不停嘗試新的技術(shù)也是推動(dòng)大數(shù)據(jù)產(chǎn)品不停進(jìn)化的動(dòng)力。

明確方向和目標(biāo)

之所以講了這么多點(diǎn)才講到似乎應(yīng)該第一個(gè)講的需求分析,就是大數(shù)據(jù)產(chǎn)品的不確定性決定的。要解決的問題雖然明確,但是解決的方法卻不是唯一的,而且很可能是需要不停探索嘗試才能解決的。我們每做一個(gè)原型,每做一個(gè)分析的時(shí)候只要不停的問自己,這個(gè)數(shù)據(jù)說明了什么,這個(gè)數(shù)據(jù)是否有用,這個(gè)方向是否可能跟要解決的問題在某個(gè)維度有一個(gè)小的夾角,這些工作都可能成為后來非常有意義甚至是決定性的因素。

人工干預(yù)

講到這個(gè)點(diǎn)的時(shí)候,我猶豫了很久,因?yàn)檫@個(gè)點(diǎn)就像是要向大家介紹一個(gè)會(huì)給自己帶來某些好處的劣習(xí)一樣。一切大數(shù)據(jù)產(chǎn)品的最終形態(tài)應(yīng)該是由數(shù)據(jù)和模型來闡述它自己而沒有任何人工的因素。

大數(shù)據(jù)

我所經(jīng)歷的好多比較大的項(xiàng)目也都是在向著這個(gè)方向努力,可是不得不說,對(duì)于業(yè)務(wù)剛剛上線的時(shí)候,簡(jiǎn)單暴力的人工規(guī)則往往效果極佳,所以很多項(xiàng)目都是到了人工干預(yù)不再見效的時(shí)候才開始引入機(jī)器學(xué)習(xí)的模型,到目前為止我無法判斷這是不是最佳實(shí)踐,畢竟當(dāng)初開開心心加入的規(guī)則在去除的時(shí)候則是萬般艱難,各種規(guī)則的疊加造成了牽一發(fā)而動(dòng)全身。但一開始就能做到毫無人工干預(yù),讓模型來解釋自己是否又太過理想呢。

數(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ù)說明請(qǐng)參見: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); }