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

熱線電話:13121318867

登錄
首頁(yè)職業(yè)發(fā)展需求與匹配 從數(shù)據(jù)挖掘角度看世紀(jì)佳緣推薦系統(tǒng)
需求與匹配 從數(shù)據(jù)挖掘角度看世紀(jì)佳緣推薦系統(tǒng)
2016-04-18
收藏

需求與匹配 從數(shù)據(jù)挖掘角度看世紀(jì)佳緣推薦系統(tǒng)

昨天看到同事在朋友圈以及機(jī)器學(xué)習(xí)日?qǐng)?bào)推薦的這篇文章:《佳緣用戶推薦系統(tǒng)》,再結(jié)合自己之前的幾年的推薦系統(tǒng)經(jīng)驗(yàn),以及在婚戀網(wǎng)站半年多的經(jīng)驗(yàn),來(lái)談?wù)勎已壑械幕閼偈袌?chǎng)的推薦系統(tǒng)。

如作者所說(shuō),佳緣作為第一家也是中國(guó)最大的婚戀網(wǎng)站,的確在推薦系統(tǒng)上走了很多的彎路,但也正是這些彎路以及作者的分享精神,才給后來(lái)者的我們提供了許多一線的參考價(jià)值。我相信任何在今天看來(lái)不完善的,甚至有一些可笑的設(shè)計(jì),在當(dāng)時(shí)都是有著合理性和必要性的。那么我再回顧自己的2011年如果開(kāi)始從頭搭建這樣一套系統(tǒng),是否能做成這個(gè)樣子,自認(rèn)也沒(méi)有這樣的把握。所以這篇文章純粹是站在我今天的角度來(lái)做點(diǎn)評(píng)和分析,也望大家多多探討。

首先,我們先順著作者的思路去看佳緣經(jīng)歷的推薦算法:

在2011年到2013年的算法年,佳緣嘗試了兩個(gè)算法方向,與我的想法非常背離,第一個(gè)不是最基本的Content-based,而是Item-based,相信Item-based算法大家都再了解不過(guò),所以就不多做解釋。我們只來(lái)分析算法的業(yè)務(wù)應(yīng)用。Item-based是在構(gòu)建一個(gè)User-Item矩陣,然后計(jì)算Item-Item之間的相似度。那么具體到婚戀網(wǎng)站的業(yè)務(wù)場(chǎng)景,其實(shí)也就是構(gòu)建了一個(gè)Man-Woman的矩陣,將Woman當(dāng)做Item,計(jì)算Woman之間的相似度,這個(gè)算法場(chǎng)景基于背后的假設(shè)是認(rèn)為,如果一個(gè)男人喜歡一個(gè)女人,那么他必然喜歡和這個(gè)女人相似的女人,換句更直白的話說(shuō),每個(gè)男人都喜歡自己女朋友的閨蜜。相似,我們將User-Item矩陣做轉(zhuǎn)置后,可以繼續(xù)做Man的相似度,不再?gòu)?fù)述。

這個(gè)算法設(shè)計(jì)有如下幾個(gè)問(wèn)題:

1. 如作者所說(shuō),給男性展示美女,男性的發(fā)信就會(huì)暴漲,這樣少量女性收到大部分信,而大多數(shù)女性卻收不到信。但是作者可能沒(méi)有把這部分給說(shuō)透,如果單純從這一點(diǎn)來(lái)看,這并不是協(xié)同過(guò)濾算法本身的原因。這其實(shí)是一個(gè)惡性循環(huán),算法本身就是基于了一個(gè)嚴(yán)重有偏的User-Item矩陣來(lái)計(jì)算相似度,于是產(chǎn)生的推薦結(jié)果最終會(huì)造成給所有人都推薦美女。

2. 但是這并非是一個(gè)無(wú)解的問(wèn)題,我們回歸Item-based的本源思考為什么熱門的條目會(huì)受到額外的照顧,拋出業(yè)務(wù)場(chǎng)景,其實(shí)根源在于Cosine-Similarity里分母開(kāi)的那個(gè)根號(hào)惹的禍,可以想象10000的平方根和1000的平方根到底有多大差別,其實(shí)罪魁禍?zhǔn)拙褪瞧椒礁趸藷衢T條目的作用,如果一定希望去調(diào)整,可以根據(jù)實(shí)際的業(yè)務(wù)情況去調(diào)整指數(shù)。

3. 稀疏性問(wèn)題。對(duì)于婚戀網(wǎng)站來(lái)說(shuō),長(zhǎng)尾性和稀疏性比傳統(tǒng)的條目網(wǎng)站都大得多,大家可以想象一下大多數(shù)人來(lái)婚戀網(wǎng)站的目的,以及走在大街上看到美女的概率即可,所以單純的Item-based是無(wú)法解決問(wèn)題的,只會(huì)造成大部分人可能一輩子都收不到一封信。但是這其實(shí)也有解,最粗暴的方法就是對(duì)于一部分用戶配合Content-based做隨機(jī)展示(對(duì)于展示哪一部分,我們之后再來(lái)具體說(shuō))。

4. 協(xié)同過(guò)濾的傳統(tǒng)問(wèn)題,就不多說(shuō)了,比如說(shuō)實(shí)時(shí)性,參數(shù)調(diào)整的復(fù)雜性等等。

5. 具體到婚戀業(yè)務(wù)上來(lái)說(shuō),“如果一個(gè)男人喜歡一個(gè)女人,那么他必然喜歡和這個(gè)女人相似的女人”這句話結(jié)合業(yè)務(wù)場(chǎng)景和業(yè)務(wù)目標(biāo)是有著悖論的,我們做個(gè)邏輯推演,如果我喜歡某個(gè)女人,就會(huì)給這個(gè)女人發(fā)信,如果這個(gè)女人理我了,我就愿意和她“結(jié)婚”(記住,這里不是約炮),那么我就不會(huì)也不應(yīng)該再去找其他女人。 如果這個(gè)女人看不上我,那么和她相似的人也不會(huì)看上我….. 所以…..我想大家應(yīng)該可以明白這個(gè)其中的問(wèn)題了。

第二個(gè)嘗試也是我曾經(jīng)有段時(shí)間努力探索的:Reciprocal Recommendation。也許大家對(duì)這個(gè)不熟悉,我大概講一下,這種推薦算法廣泛地應(yīng)用于雙向選擇的業(yè)務(wù)場(chǎng)景下,例如求職網(wǎng)站,交友婚戀網(wǎng)站。不同于傳統(tǒng)的網(wǎng)站推薦系統(tǒng),搭建的是基于條目的推薦系統(tǒng),或者是基于用戶單向關(guān)注的推薦關(guān)系。求職網(wǎng)站給我推薦了一份Google CEO的工作,我會(huì)感興趣,但是他對(duì)我不感興趣是沒(méi)有意義的?;閼偻扑]也是如此。

那么這個(gè)算法解決的出發(fā)點(diǎn)很好,但是實(shí)話實(shí)說(shuō),其實(shí)paper一共就那么多,我總結(jié)著看了下,并沒(méi)有真正有用的東西,也沒(méi)有創(chuàng)造性的模型產(chǎn)生,只是對(duì)于傳統(tǒng)推薦算法的一個(gè)后過(guò)濾,整體思路就是把曾經(jīng)的無(wú)向圖變成了有向圖,分別求出Man–>Women,Woman->Man的雙向關(guān)系,然后或者相乘,或者搞一些奇怪的公式去做擬合。作者說(shuō)不太靠譜,但是我認(rèn)為這個(gè)算法從思路上來(lái)說(shuō)是對(duì)路的,無(wú)論是不是用他們那些莫名其妙的模型,但是作為思想的參考還是值得借鑒的。

接下來(lái)佳緣推薦算法的階段步入了2014的工程年,作者根據(jù)佳緣的團(tuán)隊(duì)及業(yè)務(wù)特點(diǎn)將佳緣推薦做了戰(zhàn)略上的調(diào)整,從比拼算法模型改成了比拼特征工程。我不了解佳緣的實(shí)際情況,不敢多做評(píng)價(jià),只是從個(gè)人感覺(jué)來(lái)說(shuō)也許作者從一個(gè)極端走到了另一個(gè)極端。從外界來(lái)猜測(cè)一下佳緣的實(shí)現(xiàn)思路:抽出各種各樣的特征,例如用戶的基本人口學(xué)信息,加上用戶的行為屬性信息等等,然后針對(duì)每個(gè)用戶訓(xùn)練一個(gè)分類器,來(lái)預(yù)測(cè)他是不是對(duì)對(duì)方感興趣。

那我們來(lái)聊聊邏輯回歸的根本問(wèn)題吧:

1. 大部分信息大多都是離散值,而這些離散值之間并非是按照數(shù)字本身的意義有著明確的大小關(guān)系,這個(gè)如果用邏輯回歸,就會(huì)面臨讓人絕望的離散值連續(xù)化問(wèn)題。

2. 如果把希望寄往于特征工程,就需要對(duì)每個(gè)特征都做深入的業(yè)務(wù)和數(shù)學(xué)化理解,而且調(diào)參這個(gè)事兒結(jié)合到婚戀網(wǎng)站超長(zhǎng)的訓(xùn)練反饋鏈,幾乎是無(wú)解的。不要去討論非監(jiān)督化的特征工程了,因?yàn)榛閼倬W(wǎng)站的業(yè)務(wù)特別明確,人工特征往往比泛化的非監(jiān)督特征工程好用得多。

3. 高維特征邏輯回歸一樣會(huì)面臨維度爆炸的問(wèn)題。

4. 邏輯回歸本質(zhì)上是廣義線性模型,但是這個(gè)假設(shè)是不是適用。

5. 最關(guān)鍵的是,邏輯回歸其實(shí)和最基本的感知機(jī)有什么不一樣,從圖形上面最基本的理解,其實(shí)就是把最兩端的長(zhǎng)尾巴給壓縮了一下,但是對(duì)于婚戀網(wǎng)站來(lái)說(shuō),恰恰最需要的就是這些長(zhǎng)尾巴的東西,因?yàn)檫@些長(zhǎng)尾巴是最能讓人付費(fèi)的動(dòng)力。

我相信接下來(lái)我說(shuō)的很多嘗試和做法,佳緣都已經(jīng)嘗試過(guò)了,但是站在局外者的角度,我認(rèn)為除了傳統(tǒng)的特征工程以及算法模型的優(yōu)化外,其實(shí)接下來(lái)的這些才是婚戀網(wǎng)站推薦算法成功的關(guān)鍵(結(jié)合佳緣的模式: 收取用戶的看信費(fèi)用,其實(shí)我沒(méi)用過(guò)):

1. 明確推薦評(píng)價(jià)指標(biāo),這一點(diǎn)是老生常談,做任何一個(gè)系統(tǒng)前,尤其是數(shù)字化系統(tǒng)時(shí),最重要的就是明確建立這個(gè)系統(tǒng)的指標(biāo)。對(duì)于婚戀推薦系統(tǒng)來(lái)說(shuō),最核心的指標(biāo)無(wú)外乎付費(fèi)的轉(zhuǎn)換率,那么繼承OKR的思路,我們來(lái)對(duì)這個(gè)指標(biāo)進(jìn)行拆解Key Result,想提高付費(fèi)轉(zhuǎn)換率有幾點(diǎn)需要提高: A. 收信人的覆蓋率 B. 發(fā)信者的動(dòng)力 C. 收件人的看信意愿(付費(fèi)意愿),那么接下來(lái)逐漸說(shuō)

2. 識(shí)別優(yōu)質(zhì)資源,對(duì)于婚戀系統(tǒng)來(lái)說(shuō),帥哥就那么多,美女也就那么多,付費(fèi)用戶更是就那么多,所以識(shí)別用戶成為了婚戀網(wǎng)站的重中之重。所以婚戀網(wǎng)站的第一步不是推薦問(wèn)題,而是一個(gè)用戶從多維度的分類問(wèn)題。

3. 懂得取舍。我們繼續(xù)做邏輯推演,用戶到底愿意給什么人發(fā)信,但是到底什么人才愿意讓用戶看信。接下來(lái)什么用戶才會(huì)愿意為了一封信而付費(fèi)。其實(shí)這個(gè)時(shí)候問(wèn)題已經(jīng)變成了,如何給優(yōu)質(zhì)用戶看到他感興趣的人,而這個(gè)人又對(duì)他感興趣,而且這個(gè)人恰恰又愿意付費(fèi)。這個(gè)邏輯鏈條太長(zhǎng)了。根本沒(méi)辦法來(lái)做,我們來(lái)精簡(jiǎn)邏輯鏈條,發(fā)信其實(shí)是成本最低的,而且可以通過(guò)鼓勵(lì)或者產(chǎn)品引導(dǎo)來(lái)讓用戶發(fā)信,所以我們把第一層邏輯去掉。我們倒著來(lái)推,把問(wèn)題轉(zhuǎn)換為識(shí)別出最愿意付費(fèi)的那些用戶,然后找到這些用戶感興趣的用戶,通過(guò)產(chǎn)品引導(dǎo)讓這些用戶發(fā)信。

4. 推薦理由。對(duì)于婚戀推薦來(lái)說(shuō),推薦理由比傳統(tǒng)的網(wǎng)站要重要得多,因?yàn)槟阋鞔_給用戶一個(gè)付費(fèi)的理由,關(guān)于傳統(tǒng)的推薦理由,就不再?gòu)?fù)述了,無(wú)外乎你們具有相同的屬性,喜歡這個(gè)人的也喜歡,等等。但是最近的那篇<New Direction in Recommender System>也許會(huì)給我們一些額外的啟發(fā),大家也可以直接看我之前的博文:<商品推薦算法 & 推薦解釋>。

5. Reciperocal Recommendation思想的業(yè)務(wù)化應(yīng)用。在之前,我簡(jiǎn)化了發(fā)信者發(fā)信這一鏈條的聯(lián)系,但是如果精細(xì)化來(lái)說(shuō),不妨用這樣的思想來(lái)做發(fā)信者和收信者之間的平衡。

6. 在做分類以及評(píng)分預(yù)測(cè)時(shí),不妨針對(duì)業(yè)務(wù)的長(zhǎng)尾現(xiàn)象來(lái)做模型改造和模型選擇,因?yàn)橹挥行〔糠钟脩羰潜仨氁卫巫プ〉挠脩?,從這一點(diǎn)來(lái)說(shuō),邏輯回歸確實(shí)不合適。

7. 我掃了下作者2015的展望,我很期待,尤其是ADMM的應(yīng)用,目測(cè)我還沒(méi)見(jiàn)過(guò)身邊有人搞過(guò),期待作者的嘗試結(jié)果。但是特征哈希這個(gè)事兒真的不靠譜,因?yàn)槿绻麤Q心做特征工程,那么特征哈希這個(gè)事情就顯得太遠(yuǎn)離業(yè)務(wù)本身而注重于泛化了,這樣子不適合邏輯回歸+特征工程這樣的戰(zhàn)略。

8. 從數(shù)據(jù)和算法出發(fā)的產(chǎn)品形態(tài)改進(jìn)。這個(gè)沒(méi)什么好說(shuō)的了,其實(shí)我一直認(rèn)為婚戀網(wǎng)站的出路不在于算法和數(shù)據(jù)本身,而是能不能從數(shù)據(jù)跳出來(lái)對(duì)產(chǎn)品提出一些創(chuàng)意性改進(jìn)從而產(chǎn)生的產(chǎn)品模式和收費(fèi)模式的變革。去年我和很多VC聊過(guò)現(xiàn)在國(guó)內(nèi)資本市場(chǎng)對(duì)于婚戀市場(chǎng)的看法,大家無(wú)一例外都是搖頭,婚戀市場(chǎng)太久沒(méi)人去變革過(guò)了,至今的幾大網(wǎng)站仍然是十年前的玩法。


數(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); }