偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

我所理解的大數(shù)據(jù)個(gè)性化推薦

大數(shù)據(jù)
想起要寫(xiě)這篇文章,一方面是昨天終于把項(xiàng)亮寫(xiě)的《推薦系統(tǒng)實(shí)踐》給看完了,另一方面是自己負(fù)責(zé)的推薦系統(tǒng)項(xiàng)目已經(jīng)處于一個(gè)多版本迭代的階段了,并且從最近的AB測(cè)試效果來(lái)看,新提交的算法模型還是有一定的進(jìn)步的,如今已經(jīng)把流量全部切換到了新算法中。

一、寫(xiě)在之前的題外話

緣起。

想起要寫(xiě)這篇文章,一方面是昨天終于把項(xiàng)亮寫(xiě)的《推薦系統(tǒng)實(shí)踐》給看完了,另一方面是自己負(fù)責(zé)的推薦系統(tǒng)項(xiàng)目已經(jīng)處于一個(gè)多版本迭代的階段了,并且從最近的AB測(cè)試效果來(lái)看,新提交的算法模型還是有一定的進(jìn)步的,如今已經(jīng)把流量全部切換到了新算法中。

所以,結(jié)合看書(shū)的一些思考,以及實(shí)際操作的一些感想,總是有一些想要表達(dá)、分享的東西,不吐不快啊~~ 哈哈!

不過(guò)在說(shuō)個(gè)性化推薦之前,說(shuō)兩個(gè)題外話。

首先就是關(guān)于看書(shū)這個(gè)話題,我在《這些年,這些挖掘機(jī)算法,這些反思》一文中,曾經(jīng)說(shuō)到。看書(shū)是提升自我的一個(gè)***途徑,我說(shuō)過(guò)曾給自己定了一個(gè)每月看完一本書(shū)的目標(biāo),說(shuō)來(lái)慚愧,至今只能算面面強(qiáng)強(qiáng)完成任務(wù)。不過(guò)關(guān)于看書(shū)這個(gè)觀點(diǎn),個(gè)人還是堅(jiān)持自己的看法的。

首先是如何給自己擠出看書(shū)的時(shí)間,一是上下班地鐵的零碎時(shí)間,二是睡覺(jué)前,三是敲代碼搬磚搬累的時(shí)候。我想說(shuō)的是,想要提升自己,書(shū)是一定要找時(shí)間看的。記住,這個(gè)時(shí)間不是為別人擠的,是為了未來(lái)你的薪水能夠提上那么個(gè)一兩檔而擠的!

其次,關(guān)于看書(shū)的方法。以前,我看書(shū)只是試圖理解作者的意圖,然后從中吸取能夠吸取的知識(shí)?,F(xiàn)在,我看書(shū)喜歡拿著一支筆,邊看邊涂涂畫(huà)畫(huà)。我試圖去理解作者說(shuō)的話,然后結(jié)合自己的認(rèn)知,寫(xiě)下自己的感想,甚至是依據(jù)自己的認(rèn)識(shí)反駁作者的觀點(diǎn),然后事后去求證。

對(duì)于我不熟悉的領(lǐng)域,我會(huì)寫(xiě)下看完后的一些體會(huì)。然后就是對(duì)于部分章節(jié),如果我認(rèn)為其價(jià)值量并不值得我去細(xì)究,我會(huì)迅速的跳過(guò),畢竟時(shí)間還是挺值錢(qián)的。所以,后期以來(lái),只要是我看過(guò)的書(shū),一些章節(jié)要么是涂涂畫(huà)畫(huà)了很多東西,要么是嶄新的頁(yè)面??偨Y(jié)起來(lái)就是,看書(shū)不能看死書(shū),要有一定的效率和方法,找到適合自己的,然后從中獲益!

OK,說(shuō)了不少題外話,言歸正傳。

二、由這本書(shū)想到的一些東西

先來(lái)對(duì)這本書(shū)(《推薦系統(tǒng)實(shí)踐》)來(lái)個(gè)整體評(píng)價(jià)吧。

個(gè)人對(duì)這本書(shū)的定位就是:它不是一本推薦系統(tǒng)的工具書(shū),所以他不會(huì)詳細(xì)的介紹推薦系統(tǒng)的一些算法,更多的筆墨在于講述在設(shè)計(jì)個(gè)性化推薦系統(tǒng)中的一些衡量點(diǎn)、一些思維方式(這個(gè)我認(rèn)為更重要,原因后面細(xì)說(shuō),甚至于書(shū)中的一些實(shí)驗(yàn)參考個(gè)人認(rèn)為可看可不看)。

所以,感覺(jué)這本書(shū)的題目取的有點(diǎn)稍稍不合理~~

好吧,咱不糾結(jié)他的書(shū)名了,說(shuō)一說(shuō)一些書(shū)中個(gè)人認(rèn)為值得一起分享的東西吧。這些東西都是看書(shū)之后,結(jié)合實(shí)踐操作的一些感想。

并且,你會(huì)發(fā)現(xiàn)這章的內(nèi)容,絕對(duì)不會(huì)是書(shū)中內(nèi)容的重復(fù),對(duì)于開(kāi)挖掘機(jī)特別是開(kāi)推薦系統(tǒng)挖掘機(jī)的人來(lái)說(shuō),相信我,我的觀點(diǎn)會(huì)有用的!

(1) 首先談一談關(guān)于推薦系統(tǒng)評(píng)測(cè)

我先列一下作者列舉的評(píng)測(cè)指標(biāo):用戶滿意度、預(yù)測(cè)準(zhǔn)確度、覆蓋率、多樣性、新穎度、驚喜度、信任度、實(shí)時(shí)性、健壯性、商業(yè)目標(biāo)。然后作者說(shuō),在設(shè)計(jì)推薦系統(tǒng)的時(shí)候,要盡量的考慮這些指標(biāo),特別是推薦的結(jié)果盡量滿足多樣性、新穎、能夠驚喜就更好了。

關(guān)于這一點(diǎn),其實(shí)個(gè)人觀點(diǎn)有點(diǎn)不一樣,我認(rèn)為評(píng)測(cè)推薦結(jié)果只有一個(gè)指標(biāo)就夠了,那就是商業(yè)價(jià)值,能夠提升商業(yè)價(jià)值,給業(yè)務(wù)帶來(lái)更多利益的推薦系統(tǒng),就是好的推薦系統(tǒng)。

至于說(shuō)推薦的多樣性、新穎度,如果多樣化的推薦結(jié)果能夠提升價(jià)值轉(zhuǎn)換,那我們就在設(shè)計(jì)推薦系統(tǒng)的時(shí)候適當(dāng)?shù)奶岣叨鄻有缘臋?quán)重,同樣,如果新穎的東西能夠提升價(jià)值轉(zhuǎn)換,那么我們就提升新穎的權(quán)重。這才是回歸推薦系統(tǒng)的本質(zhì)!

在這一點(diǎn)上,在個(gè)人的實(shí)際操作中也是這樣做的。我們會(huì)首先定好我們需要達(dá)到的目標(biāo),比如轉(zhuǎn)化率或者是收益轉(zhuǎn)換,我們調(diào)整算法的唯一依據(jù)就是:轉(zhuǎn)化率提升了?如果是,那么我們的算法改進(jìn)就是有效;如果不是,那么這次改進(jìn)就是一個(gè)失敗的改進(jìn)。

至于說(shuō)書(shū)中的每次實(shí)驗(yàn),都評(píng)估覆蓋率、多樣性以及其他等幾個(gè)指標(biāo),在我看來(lái),其實(shí)是沒(méi)有必要的。結(jié)合實(shí)踐來(lái)說(shuō),因?yàn)槟悴桓冶WC提升你的推薦覆蓋度就一定能夠提升轉(zhuǎn)化率,換言之,如果挖掘長(zhǎng)尾能夠提升轉(zhuǎn)化率,那么,我們就適當(dāng)提高覆蓋度,并且盡量支持多樣性。然而實(shí)際的業(yè)務(wù)場(chǎng)景是很復(fù)雜,這種保證并不是絕對(duì)的,需要依據(jù)于實(shí)際的情況而定,說(shuō)白,那就是實(shí)際操作。

既然說(shuō)到了實(shí)際操作,那我們說(shuō)一說(shuō)評(píng)測(cè)方法相關(guān)的東西吧。

書(shū)中列舉了三種方式:離線實(shí)驗(yàn)、用戶調(diào)查、在線實(shí)驗(yàn)。

首先說(shuō)一下離線實(shí)驗(yàn),個(gè)人認(rèn)為在推薦系統(tǒng)中,利用已經(jīng)現(xiàn)成的用戶行為軌跡(即推薦之后是否點(diǎn)擊之類的數(shù)據(jù)),來(lái)預(yù)測(cè)一個(gè)推薦系統(tǒng)并不是很靠譜,只能做為一個(gè)參考。因?yàn)椋缤扑]這種場(chǎng)景,并不是如分類這種的模型,沒(méi)有一個(gè)絕對(duì)值,對(duì)就是對(duì),錯(cuò)就是錯(cuò),它只是一個(gè)預(yù)測(cè)程度的提升。

其次,用戶調(diào)查這種方式,有一定參考性,但是前提是調(diào)查的量要足夠,如果取的量不夠,其意義是不大的。所以,這是一個(gè)耗費(fèi)巨大成本的工程,在實(shí)際的操作中并不可取。

所以,個(gè)人認(rèn)為其重點(diǎn)應(yīng)該是在在線實(shí)驗(yàn),而且嚴(yán)格來(lái)說(shuō)是AB測(cè)試。說(shuō)白點(diǎn)就是,我們把數(shù)據(jù)分流,一部分?jǐn)?shù)據(jù)走A推薦算法,一部分走B推薦算法,然后收集AB算法的推薦結(jié)果導(dǎo)致的用戶行為,根據(jù)核心價(jià)值一對(duì)比結(jié)果,一目了然。

但這樣,或許就有人有意見(jiàn)了:在線系統(tǒng)是一個(gè)很嚴(yán)肅的事情,怎么能在線上進(jìn)行未知效果的算法實(shí)驗(yàn)?zāi)兀?/p>

關(guān)于這個(gè)問(wèn)題,首先,算法上線之前對(duì)于新算法肯定是需要進(jìn)行一定的評(píng)估的,比如離線實(shí)驗(yàn),雖然說(shuō)不能絕對(duì)依靠它,但是作為一個(gè)參考完全是可以的。其他的一些諸如統(tǒng)計(jì)調(diào)研工作也是不可缺少的,在數(shù)據(jù)量較大的情況下,是能反映一些問(wèn)題的,然后算法的設(shè)計(jì)總是有依據(jù)的,這些就是依據(jù)。換言之,這些前提工作能夠保證,即使你的新算法不會(huì)比現(xiàn)成的算法好,但也不會(huì)出現(xiàn)大幅度下降的情形。如果出現(xiàn)了這種情況,只能說(shuō)明你們的初期工作做的太爛,你們的算法設(shè)計(jì)方案是瞎搞的。

其次,我們?cè)O(shè)計(jì)的AB測(cè)試機(jī)制,必然是可以調(diào)節(jié)流量分配的,如果不是,那么設(shè)計(jì)者去面壁吧。在AB測(cè)試分流中,我們完全可以控制新算法的流量,達(dá)到一個(gè)可以觀察到效果,又能保證失誤在可控的范圍內(nèi)。

(2) 冷啟動(dòng),這是一個(gè)很嚴(yán)肅的問(wèn)題

關(guān)于推薦系統(tǒng)的冷啟動(dòng),作者專門(mén)看了一個(gè)單章來(lái)說(shuō)這個(gè)問(wèn)題,But,在書(shū)的***又提出了一個(gè)觀點(diǎn):忽略推薦系統(tǒng)冷啟動(dòng)的問(wèn)題,因?yàn)?,只要你的推薦系統(tǒng)設(shè)計(jì)的足夠好,是不擔(dān)心數(shù)據(jù)問(wèn)題的。

但在我認(rèn)為,冷啟動(dòng)是個(gè)大問(wèn)題,特別是對(duì)于初入此道的人來(lái)說(shuō),是繞不開(kāi)的一個(gè)問(wèn)題。對(duì)于冷啟動(dòng),有一個(gè)好的機(jī)制進(jìn)行解決,那么,我們的推薦系統(tǒng)才有一個(gè)好的開(kāi)端。

諸如推薦系統(tǒng)中的最經(jīng)典的協(xié)同推薦算法,其核心依賴就是用戶行為數(shù)據(jù),在一個(gè)推薦系統(tǒng)初期,用戶行為是很少的,那么這就是我們急需解決的問(wèn)題。

辣么,如何累積用戶行為數(shù)據(jù)呢?并且,請(qǐng)注意,在累積用戶行為數(shù)據(jù)的前提下,我們需要盡可能的保證推薦的有效性,也就是說(shuō),讓用戶更有可能去點(diǎn)擊你的推薦,對(duì)于公司來(lái)說(shuō),你盡可能的創(chuàng)造價(jià)值,對(duì)于你本身業(yè)務(wù)來(lái)說(shuō),你也可以盡快的收集到更多的數(shù)據(jù)嘛!

舉個(gè)簡(jiǎn)單的栗子。我要做一個(gè)類似于今日頭條這種APP,進(jìn)行各種新聞?lì)^條個(gè)性化推送。一句話,咋整?

這就是冷啟動(dòng)中的冷啟動(dòng)了,因?yàn)檎麄€(gè)系統(tǒng)都是新的,文章是新的,用戶是新的,沒(méi)有任何用戶數(shù)據(jù),沒(méi)有觀看記錄,沒(méi)有頂踩行為。無(wú)法體現(xiàn)用戶偏好,甚至于連文章是否是熱點(diǎn)我們都不知道。

這個(gè)時(shí)候,怎么辦?按照書(shū)中所說(shuō),利用用戶的注冊(cè)信息,然后結(jié)合商品信息,進(jìn)行推薦,這個(gè)基本思路是沒(méi)有問(wèn)題的。在這里,商品其實(shí)就是各種新聞?lì)^條。

但是,這種方式局限性也很大,一方面,在注冊(cè)時(shí)信息有限,并且很多時(shí)候這種信息是帶有欺詐性質(zhì)的,所以我們不能過(guò)度依賴于其。

這個(gè)時(shí)候,怎么辦?請(qǐng)忽略針對(duì)于用戶個(gè)性化的推薦,我們只要掌握大體趨勢(shì)就好了。那么,如何掌握大體趨勢(shì)。借助外力!

剛才說(shuō)了嘛,類似今日頭條。今日頭條肯定做了類似的工作,例如在你沒(méi)有登陸的情況下,肯定同樣提供了推薦列表。并且可以肯定的是,這個(gè)推薦列表是有數(shù)據(jù)支撐的,并不是胡亂推送的。也就是意味著,這批推薦名單是比較容易被普通大眾所接受的,換言之,是能夠提升點(diǎn)擊率的。

那我們?nèi)绾卫盟兀课覀儚?fù)刻一個(gè)推薦列表出來(lái)。當(dāng)然,并不是要你直接把人家的文章拿過(guò)來(lái)直接放上,要是這樣,人家就該告你了。

我們可以通過(guò)計(jì)算相似度的方式,針對(duì)于今日頭條的每一個(gè)推薦,在自己的文章庫(kù)里計(jì)算一個(gè)最相似的文章出來(lái),頂上去。不依賴于任何己方的數(shù)據(jù),一個(gè)推薦列表就出來(lái)了。

至于說(shuō)效率問(wèn)題,其實(shí)類似這種新聞?lì)^條的推薦列表,其變化并不是實(shí)時(shí)的,所以,計(jì)算的代價(jià)完全是可以承受的。

至于說(shuō)如何計(jì)算相似度,那就是另外一個(gè)范疇了,這里只是提供一個(gè)思路。

說(shuō)到思路,那么,通過(guò)這個(gè)栗子,我想要表達(dá)的意思也差不多了,那就是處理這種冷啟動(dòng)的問(wèn)題,我們的處理思路是:借助類似產(chǎn)品的現(xiàn)有成果,并以此為依據(jù)。

雖然有點(diǎn)無(wú)賴,但是能解決問(wèn)題,無(wú)賴就無(wú)賴吧~~

在收集到***手行為軌跡之后,往后的事就方便多了,該怎么滴怎么滴吧~~

(3) 上下文信息與規(guī)則打分模型的關(guān)系

書(shū)中有提到,所謂上下文信息,主要兩方面:時(shí)間上下文,地點(diǎn)上下文。

在我認(rèn)為,其實(shí)是遠(yuǎn)遠(yuǎn)不夠的,一切可能對(duì)于結(jié)果有影響的第三方因素都是可以參考的。所謂第三方因素,個(gè)人認(rèn)為可以定義為:與用戶個(gè)性化沒(méi)有顯性關(guān)聯(lián)的因子。比如前文說(shuō)到的時(shí)間、地點(diǎn),又如季節(jié)、天氣等等諸如此類。

說(shuō)到這些,不得不說(shuō)到規(guī)則打分模型。

說(shuō)到規(guī)則打分模型,簡(jiǎn)單解釋一下吧。所謂規(guī)則,即我們自己定義的一系列操作規(guī)范;至于打分,則意味著有某項(xiàng)操作,我們就給某項(xiàng)操作加分。***看看誰(shuí)的分多,我們就選擇誰(shuí)。換個(gè)專業(yè)點(diǎn)的術(shù)語(yǔ)就是規(guī)則權(quán)重模型,好吧,其實(shí)就是權(quán)重計(jì)算。

很簡(jiǎn)單是吧,但是別忽略它的重要性。個(gè)人從來(lái)就不認(rèn)為推薦系統(tǒng)就是協(xié)同推薦之類的算法作為代表。

推薦系統(tǒng),這是一個(gè)浩大的工程,以協(xié)同推薦為代表的算法只是其中的一個(gè)因子,它必然是綜合了各種各樣的東西的。而權(quán)重模型是一個(gè)很簡(jiǎn)單,很原始又很有效的方式。

如何定義不同外在因子對(duì)于推薦結(jié)果的影響,也就是如何針對(duì)于不同外在因子賦予其應(yīng)有的權(quán)重比。這需要數(shù)據(jù)的統(tǒng)計(jì)!

特別是在當(dāng)期大數(shù)據(jù)的背景下,這種基于統(tǒng)計(jì)的規(guī)則權(quán)重模型愈顯有效。大規(guī)模的數(shù)據(jù)統(tǒng)計(jì)是能夠體現(xiàn)數(shù)據(jù)趨勢(shì)的,這點(diǎn)毋庸置疑!好吧,我承認(rèn),這也是為何我把題目中數(shù)據(jù)加了個(gè)“字”的直接原因。

并且在實(shí)際的操作中,很多推薦系統(tǒng)的結(jié)果都是通過(guò)規(guī)則權(quán)重模型呈現(xiàn)的;還有就是多種推薦方式時(shí),是通過(guò)規(guī)則權(quán)重模型把多種方式結(jié)果整合,以達(dá)到結(jié)果***化。

所以,在你的推薦系統(tǒng)算法沒(méi)有絲毫思路的時(shí)候,何不嘗試嘗試走規(guī)則權(quán)重模型的路子?通過(guò)權(quán)重模型去修正你的推薦結(jié)果,你會(huì)有驚喜的!

(4) 無(wú)處不在的長(zhǎng)尾以及馬太效應(yīng)

長(zhǎng)尾分布或者說(shuō)長(zhǎng)尾效應(yīng),這個(gè)名詞解釋?xiě)?yīng)該不用我多說(shuō)了吧。實(shí)際上,在現(xiàn)實(shí)生活中,這是一個(gè)很常見(jiàn)的現(xiàn)象。

然后長(zhǎng)尾分布導(dǎo)致的直接結(jié)果就是馬太效應(yīng),即通俗點(diǎn)說(shuō)就是強(qiáng)者愈強(qiáng),弱者愈弱。

即,比如一些熱點(diǎn)物品,其附帶的行為數(shù)據(jù)越多,其得到的推薦機(jī)會(huì)就越大,然后被展現(xiàn)的機(jī)會(huì)越多,然后再次被推薦的機(jī)會(huì)越多,然后…陷入死循環(huán)了,其他物品還有存在的必要嗎?!

所以,作者在實(shí)驗(yàn)結(jié)果中除了準(zhǔn)確率,另外一直很強(qiáng)調(diào)的一個(gè)指標(biāo)就是:覆蓋率或者說(shuō)多樣性(這也是為何我我一直跳過(guò)他實(shí)驗(yàn)描述部分的原因,感覺(jué)參考意義不大)。

對(duì)于說(shuō)我們是否需要挖掘長(zhǎng)尾,我的觀點(diǎn)跟我之前提到的依然一致:如果挖掘長(zhǎng)尾有益提升我們的商業(yè)價(jià)值,那我們就想方法提高覆蓋度,換言之就是降低熱點(diǎn)物品的權(quán)重;如果挖掘長(zhǎng)尾對(duì)于我們提升價(jià)值轉(zhuǎn)換并沒(méi)有益處,那我們?yōu)楹我@么做。

極端點(diǎn)的栗子就是:假如我每天推薦的是固定這幾個(gè)物品,從不改變,但是,它創(chuàng)造的價(jià)值比其他任何流弊推薦系統(tǒng)產(chǎn)生的價(jià)值都高,那么,它就是一個(gè)好的推薦!

這又回歸到了我之前的觀點(diǎn):衡量推薦系統(tǒng)好壞的唯一標(biāo)準(zhǔn)就是,它是否能夠提升價(jià)值轉(zhuǎn)換!

那么,我到底該不該挖掘長(zhǎng)尾呢,大家都挖?還問(wèn)這個(gè)問(wèn)題的人一定是個(gè)死腦筋。是否挖掘長(zhǎng)尾,看業(yè)務(wù)場(chǎng)景,然后進(jìn)行充分的AB測(cè)試,來(lái)決定是否提升覆蓋度、多樣性,提升多少,這一切的標(biāo)準(zhǔn)唯一衡量就是,它能給我?guī)?lái)更多的money嗎?

如果它能給我?guī)?lái)更多的money,長(zhǎng)尾就長(zhǎng)尾吧,馬太就馬太吧,又何妨?

三、我那悲慘的推薦系統(tǒng)實(shí)踐經(jīng)歷

寫(xiě)這個(gè)之前,我仔細(xì)的反思一下,我策劃并且實(shí)施的那個(gè)推薦系統(tǒng)算是推薦系統(tǒng)嗎?然后我想了想,感覺(jué)應(yīng)該還算是,只不過(guò)不是典型推薦系統(tǒng),但是在整個(gè)實(shí)施的過(guò)程中,思考的方式還是可以借鑒的。

并且,可以預(yù)見(jiàn)的是,實(shí)際的工程操作哪有像教科書(shū)似得,都是特定場(chǎng)景,特定條件下的產(chǎn)物。也就是說(shuō),沒(méi)有通用的推薦系統(tǒng),即使有,肯定也是不好用的!

我想,在整個(gè)過(guò)程中,一些思考,一些處理問(wèn)題的方式,對(duì)大家在以后類似工程的實(shí)施中還是有一些參考意義的。

所以,我還是決定把它寫(xiě)下來(lái)~~

(1) 業(yè)務(wù)場(chǎng)景是這樣滴

還記得那會(huì)兒是三月份還是二月份來(lái)著,我所在的A公司上線了在線教育頻道,一段時(shí)間后,主持運(yùn)營(yíng)在線教育的B君突發(fā)感想,博客頻道辣么多流量,隨隨便便不就可以引一大坨流量過(guò)來(lái)了嗎?于是乎,任務(wù)跑到了我所在的數(shù)據(jù)部。

需要說(shuō)明的是,A公司主要是做IT技術(shù)論壇社區(qū)博客的,而在線教育客戶也是程序猿,所以業(yè)務(wù)上并不沖突,這個(gè)引流思路也是對(duì)的。

言歸正傳。

我當(dāng)時(shí)一看,這不是推薦系統(tǒng)么!然后再仔細(xì)一看,這是推薦系統(tǒng)嗎?好吧,我承認(rèn),有點(diǎn)繞口了。

我們首先來(lái)回顧一遍,我們正經(jīng)的推薦系統(tǒng)是什么樣的。吃個(gè)栗子,啊不,舉個(gè)栗子:我們?cè)谝粋€(gè)視頻網(wǎng)站上看視頻,然后下面給你推薦了一坨視頻,可能是根據(jù)你的偏好,也可能是根據(jù)網(wǎng)站用戶的數(shù)據(jù)給你推,反正不管,這是正經(jīng)的推薦系統(tǒng);你在某寶買(mǎi)東西,然后瀏覽物品的時(shí)候,下面列出一坨東西,這是正經(jīng)的推薦系統(tǒng);等等諸如此類。

然后再回到我們的場(chǎng)景,我在瀏覽一片IT技術(shù)博文,然后下面你給我推薦一坨在線教育視頻。這叫啥事兒!

對(duì)比一下發(fā)現(xiàn)了沒(méi)有,上述的場(chǎng)景跟我們的場(chǎng)景哪里不一樣?是的,他們推的東西都是一類,而我們的東西完全是兩套東西,一個(gè)是IT技術(shù)博文,一個(gè)IT在線培訓(xùn)視頻,他們有著不同的屬性。

如果運(yùn)營(yíng)在線教育B君說(shuō),blogchong sir,我想在我們?cè)诰€教育頻道做視頻的推薦,來(lái)給整一套吧。

那我會(huì)很愉快地按照行業(yè)標(biāo)準(zhǔn),迅速的整一個(gè)推薦系統(tǒng)出來(lái),然后按部就班的調(diào)算法,優(yōu)化效果,從此過(guò)上快樂(lè)的生活!

But,事實(shí)擺在眼前,需要面對(duì)就是這么一個(gè)業(yè)務(wù)場(chǎng)景。我仔細(xì)想了想,這是一個(gè)推薦系統(tǒng),只不過(guò)是一個(gè)不那么正兒八經(jīng)的推薦系統(tǒng)。

然后設(shè)計(jì)方案、組織人手、推動(dòng)項(xiàng)目進(jìn)行等這個(gè)活落到我頭上了。這是上天的安排,對(duì)我的考驗(yàn)嗎?事實(shí)上是組織給我的安排,對(duì)我的考驗(yàn)。頓時(shí)淚牛滿面~~

好吧,那就干吧!

(2) JUST DO IT

在那之前,雖然對(duì)于數(shù)據(jù)挖掘領(lǐng)域有所涉獵,但是在推薦這一塊,還是處于基本理論了解到水平,并且當(dāng)前部門(mén)里并沒(méi)有其他太多的可參考的東西。

我開(kāi)始著手調(diào)研這個(gè)業(yè)務(wù)場(chǎng)景,然后很杯具的發(fā)現(xiàn),業(yè)內(nèi)基本沒(méi)有出現(xiàn)類似的這種業(yè)務(wù)場(chǎng)景。是的,有誰(shuí)能夠想到要從X事物關(guān)聯(lián)到Y(jié)事物啊,但事實(shí)就是如此。

然后我開(kāi)始分析,在博客與視頻之間到底有什么樣的聯(lián)系。我挨個(gè)梳理兩者的屬性列表,然后發(fā)現(xiàn)他們其實(shí)還是有共同點(diǎn)的,比如:他們主要IT方向的,他們都有中文Title,都有tag,都有des也就是詳細(xì)地中文描述。

是的,我們無(wú)法從業(yè)界進(jìn)行參考,我們無(wú)法通過(guò)用戶行為進(jìn)行參考(相當(dāng)冷的啟動(dòng)),那么他們兩唯一的關(guān)聯(lián)就是主題了。

拋開(kāi)用戶行為,推薦相同或者相似主題的內(nèi)容,這是不會(huì)錯(cuò)的,這是推薦系統(tǒng)的常規(guī)方式之一。

于是按照這個(gè)思路,我開(kāi)始做設(shè)計(jì)。一開(kāi)始,對(duì)于很多方面的思考都不成熟,所以映射也比較簡(jiǎn)單,直接通過(guò)博客的tag去找視頻。

方案開(kāi)始實(shí)施,考慮到后期視頻內(nèi)容量的增長(zhǎng),我使用博文tag通過(guò)搜索引擎的方式聚合出視頻,于是推薦列表有了。

產(chǎn)品經(jīng)理C君說(shuō),光通過(guò)博文進(jìn)行推薦不行啊,我們需要考慮那些熱點(diǎn)視頻。好吧,那就加上吧,于是,我在推薦列表中加了一部分觀看次數(shù)TopN的視頻。

C君又說(shuō),光有博文推薦出來(lái)以及最熱視頻也不行啊,我們得考慮用戶。于是,我和擅長(zhǎng)數(shù)據(jù)批量處理D君把公司里所有活躍用戶近一個(gè)月的博文瀏覽行為跑了一遍,其實(shí)就是看用戶看了寫(xiě)了那些博文,并且對(duì)所有博文tag根據(jù)讀寫(xiě)不同權(quán)重進(jìn)行排序,選擇前N作為用戶的核心技能。而且,我們?cè)谡{(diào)度中心做成了定時(shí)任務(wù),定時(shí)更新用戶畫(huà)像中技能字段。

好吧,用戶的tag也有了,剩下的過(guò)程與博文沒(méi)啥區(qū)別了。

接著需要考慮的問(wèn)題就是,三種方式得來(lái)的列表,我們?cè)撛趺捶峙?,因?yàn)橥扑]位就那么幾個(gè),總的分一分吧。

然后C君說(shuō),拍腦袋吧,于是,我們拍腦袋給他們定了個(gè)權(quán)重。

只怪我當(dāng)初太年輕,太好騙,啥也不懂~~

好吧,不管怎么樣,我們的***版推薦系統(tǒng)正式上線了(沒(méi)法離線評(píng)測(cè)),然后我讓BI小組的G君給網(wǎng)頁(yè)上埋了點(diǎn),進(jìn)行結(jié)果收集。

BI報(bào)表出來(lái)了,結(jié)果差強(qiáng)人意,這是顯然的。

(3) 工作還得繼續(xù)

我和數(shù)據(jù)分析小組的E妹一起跟蹤行為歷史log,發(fā)現(xiàn)了其實(shí)很多博文很多用戶根本就沒(méi)有tag,這樣會(huì)導(dǎo)致我們都給人家推的是Hot數(shù)據(jù)。換言之,很多根本是毫不相干的。

于是,我開(kāi)始著手解決這個(gè)問(wèn)題。沒(méi)有tag,那我就給造tag。在推薦的時(shí)候,我通過(guò)博文的Title,進(jìn)行分詞,并且把停用詞去掉,把分出來(lái)的詞填充到臨時(shí)tag中,用于視頻的聚合,并且通過(guò)直覺(jué)略微調(diào)整了下三種方式的權(quán)重。

結(jié)果又好了辣么一點(diǎn)點(diǎn)。

這事被F君知道了,他說(shuō),如果要獲取一個(gè)比較客觀的博文主題,為何不從整個(gè)博文中進(jìn)行抽取呢?有道理!

我跟D君開(kāi)始進(jìn)行主題抽取的研究,并且最終又把800G的較新博文跑了一遍,在數(shù)據(jù)中心為它填充了一個(gè)新的主題詞描述字段。媽媽再也不用擔(dān)心我的tag了!

于是乎,我們的結(jié)果又好了辣么一點(diǎn)點(diǎn)。

又過(guò)了一段時(shí)間,數(shù)據(jù)分析小組的G妹通過(guò)分析發(fā)現(xiàn),其實(shí)很多視頻課程跟我們的博文相關(guān)度并不是很大的。我說(shuō)不對(duì)啊,我們抽取tag詞中,雖然有些不相關(guān)的詞,但是基本上對(duì)應(yīng)的技能大部分還是比較靠譜的呀。

然后我再梳理了一遍通過(guò)tag詞聚合視頻課程的過(guò)程,確實(shí)存在課程不是很匹配的情況。原因在于主題詞抽取雖然大部分情況下都把對(duì)應(yīng)的技能詞給提取出來(lái)了,但是權(quán)重排序很難做到很準(zhǔn)確,而我們的檢索引擎匹配又是匹配更多的詞的結(jié)果,權(quán)重會(huì)較高。

于是,我認(rèn)為應(yīng)該把主題詞分主次。舉個(gè)簡(jiǎn)單栗子,假如主題詞有三個(gè):hadoop、應(yīng)用、開(kāi)發(fā)。那么,我完全可以認(rèn)為,hadoop其實(shí)才是最主要的詞,其他兩個(gè)都是次要的。

就比如,我希望匹配到是hadoop視頻課程,而目前結(jié)果恰巧那種“XX應(yīng)用開(kāi)發(fā)視頻教程”會(huì)排在前面。當(dāng)然,如果能完全***“hadoop應(yīng)用開(kāi)發(fā)教程”,那就更好了。

我跟G妹開(kāi)始梳理在線視頻教育的技術(shù)點(diǎn),把認(rèn)為能夠體現(xiàn)技術(shù)特征的詞整理成了一份數(shù)百詞的核心詞字典。

于是,在聚合邏輯上,我會(huì)優(yōu)先考慮核心詞的***,然后才考慮次要的詞。這樣,我們的結(jié)果似乎又好了一點(diǎn)點(diǎn)。

后續(xù),我們又做了一些小的修改,但發(fā)現(xiàn),結(jié)果提升的幅度越來(lái)越小。

如果按照這個(gè)路子下去,估計(jì)我們的結(jié)果也就這樣了。

里程碑式的跨越,是在我跟F君進(jìn)行的一次深度的討論。

(4) 里程碑式的跨越

在討論之中,我們?cè)谏羁谭此?,我們的路子走的?duì)不對(duì)。假設(shè)在主題詞提取的足夠正確的前提下,我們是否全盤(pán)考慮了所有詞對(duì)于視頻匹配的貢獻(xiàn)呢?然后關(guān)于視頻屬性的***,我們又在考慮,***位置對(duì)于匹配度的貢獻(xiàn)是一樣的嗎?除了視頻中文相關(guān)的一些中文描述,難道沒(méi)有其他的一些屬性能夠給我們的推薦建議帶來(lái)一絲貢獻(xiàn)嗎?

于是,我一方面讓D君繼續(xù)優(yōu)化主題提取的準(zhǔn)確率,一方面思考新的設(shè)計(jì)方案,推翻原來(lái)的方案基礎(chǔ)上進(jìn)行思考。

常規(guī)的協(xié)同推薦路子走不通,那我們就走規(guī)則權(quán)重模型。在這個(gè)方向偷摸滾打這么久,總是需要長(zhǎng)點(diǎn)記性的。

于是我列舉了一些可能為模型帶來(lái)貢獻(xiàn)的屬性,并且初步設(shè)計(jì)了一個(gè)嵌套了兩層的規(guī)則權(quán)重模型。通過(guò)幾次的小組會(huì)議,增刪了一些屬性,并且稍微的修改了一下模型。

其中需要說(shuō)明的就是,我添加了不少視頻中與博文沒(méi)有任何關(guān)系的屬性,我們的目的在于,這些屬性或多或少都是有影響的。

于是我著手開(kāi)始進(jìn)行視頻相同統(tǒng)計(jì)屬性的量化操作,諸如發(fā)布時(shí)間無(wú)窮增長(zhǎng)的值,諸如是否收費(fèi)這樣的二值屬性,進(jìn)行0到1之間的量化。

有了量化,我們的E妹就可以根據(jù)數(shù)據(jù)分析,那些指標(biāo)跟點(diǎn)擊率是正相關(guān)的,那些是無(wú)相關(guān)的。我們進(jìn)一步刨除了一些無(wú)相關(guān)的統(tǒng)計(jì)屬性。

對(duì)于初始階段,我們沒(méi)有任何數(shù)據(jù)可以參考進(jìn)行權(quán)重設(shè)計(jì),于是在慎重考慮之后,我為嵌套的兩層規(guī)則模型設(shè)計(jì)了一個(gè)看起來(lái)比較合理的權(quán)重比。

然后在數(shù)據(jù)初篩的階段,使用每一個(gè)主題詞進(jìn)行視頻N值提取,然后在N*M個(gè)初篩的視頻中,根據(jù)規(guī)則模型對(duì)N*M個(gè)視頻進(jìn)行打分(這會(huì)犧牲一部分性能,但是這種思路為部門(mén)內(nèi)部搜索優(yōu)化項(xiàng)目提供了參考)。然后按照要求的個(gè)數(shù)進(jìn)行截取就OK了。

其中有一點(diǎn)需要說(shuō)明的就是,在我們的場(chǎng)景中,登陸用戶的比重與游客的比重是1/60,所以,我們的重心一直不在用戶身上,這個(gè)就不多說(shuō)了。

還有一個(gè)跨越式的進(jìn)展就是,我設(shè)計(jì)了AB分流測(cè)試機(jī)制。當(dāng)時(shí)回想一下,冷汗淋淋啊,之前辣么多的版本,我們就這樣悶頭直上了,那可是線上的系統(tǒng)啊。之所以沒(méi)有出問(wèn)題,一大部分原因就是,在新版本中,我們進(jìn)行了足夠的思考。

好了,如今,有了AB分流機(jī)制,我在保證系統(tǒng)不受大影響的情形下,在轉(zhuǎn)化率可能下降并且可接受的范圍內(nèi),為新模型分了1/4的流量。別小看這四分之一的流量,那可是上百萬(wàn)的流量啊。

不用等多久,因?yàn)槲姨崆白孏君埋好了點(diǎn),第二天我們就看到了效果,具體的數(shù)值俺就不多說(shuō)了。我們果斷的把流量全部切到了新模型中。

此后,我們的工作重點(diǎn)在于如何有效優(yōu)化權(quán)重比例。這一點(diǎn),我跟E妹進(jìn)行討論分析,***E妹的敏捷思維還是說(shuō)服了我。

E妹說(shuō),我們是在有數(shù)據(jù)傾向的前提下來(lái)預(yù)測(cè)權(quán)重值,這不就是邏輯回歸嘛,跟計(jì)算邏輯回歸的參數(shù)有何區(qū)別呢?啊不,區(qū)別還是有的,區(qū)別就是我們需要的是正參數(shù)。

好吧,后續(xù)的我就不多說(shuō)了,再說(shuō)這就是一篇小說(shuō)了。

后續(xù)我們又做了一些其他思考,比如我們認(rèn)為技術(shù)應(yīng)該是分層級(jí),加入一個(gè)技術(shù)水平分高中低三級(jí),如果博文體現(xiàn)出來(lái)的技術(shù)水平是初級(jí)的,那我們是不是應(yīng)該適當(dāng)?shù)慕o人家推薦對(duì)應(yīng)中級(jí)的技術(shù)視頻。

又諸如,技術(shù)之間是有關(guān)聯(lián)的,人家看hadoop的博文,是不是可以適當(dāng)?shù)慕o人家推薦spark的視頻課程?這種關(guān)系如何提取?

其中涉及到的技術(shù)以及其他種種,我就不多說(shuō)了,再說(shuō)下去,我就得寫(xiě)到凌晨?jī)牲c(diǎn)了。

(5) 做一個(gè)象征性的總結(jié)吧

也不算是總結(jié)吧,整個(gè)過(guò)程反倒像是我在記流水賬了。但不管怎么樣,有些觀點(diǎn)我認(rèn)為還是有意義的。

首先對(duì)于我們不熟悉的領(lǐng)域,我們需要果斷的去做,有些東西是需要吃過(guò)一點(diǎn)虧才明白的,畢竟書(shū)上的東西只是書(shū)上的東西,這句話可明白?

其次,在做新算法改進(jìn),乃至于其他改進(jìn),或者諸如其他項(xiàng)目時(shí),我們需要經(jīng)過(guò)慎重的思考,然后再做方案,然后再實(shí)施。這也是為何我們?cè)贏B測(cè)試機(jī)制出來(lái)之前,無(wú)數(shù)次“勇敢”上線,覆蓋線上版本,而沒(méi)有出問(wèn)題,效果沒(méi)有下跌的直接原因。

針對(duì)于推薦系統(tǒng)的設(shè)計(jì),我想說(shuō)的就是,我們需要解決的是主要矛盾。針對(duì)于我們的這個(gè)項(xiàng)目實(shí)踐來(lái)說(shuō)就是,我們的一切努力方向就是提升流量從博客頻道到在線教育頻道的轉(zhuǎn)化率。至于說(shuō)試圖挖掘長(zhǎng)尾,我們嘗試過(guò),呈現(xiàn)推薦的多樣性我們也嘗試過(guò),但是,這不是我們的目標(biāo),我們只會(huì)在轉(zhuǎn)化率最合適的地方挺住腳步,而不是一味的提升多樣性。還是那句話:能給你帶來(lái)更多money的推薦系統(tǒng),才是好的推薦系統(tǒng),其他的管他呢!

關(guān)于推薦系統(tǒng)另外一個(gè)建議就是,我們不要拘泥于某種形式,我們需要切實(shí)地參考業(yè)務(wù)場(chǎng)景,提出最適合自己的設(shè)計(jì)方案。很多方案,只有你想不到,沒(méi)有做不到的,結(jié)果如何,試一下就知道了。

作為項(xiàng)目的推動(dòng)者組織者,我們需要承擔(dān)更多的責(zé)任,例如任何讓各個(gè)方面的人進(jìn)入到其位置中,并且及時(shí)協(xié)調(diào)各個(gè)方面的進(jìn)度,這很重要。團(tuán)隊(duì)的力量很強(qiáng)大,一個(gè)重要體現(xiàn)就是,初始方案可以你來(lái)做,但是通過(guò)小組討論,你會(huì)發(fā)現(xiàn)眾人的智慧是很強(qiáng)大的,自己認(rèn)為再***的方案也是有改進(jìn)之處的。多多與他人討論溝通交流,每個(gè)人都有其強(qiáng)大之處,我們需要虛心學(xué)習(xí)。他山之石可以攻玉,這句話永遠(yuǎn)都是對(duì)的!

四、題外話,我的小伙伴們都去哪兒了

細(xì)細(xì)想來(lái),如今一晃已經(jīng)是近一年過(guò)去了。推薦系統(tǒng)項(xiàng)目已經(jīng)停留了有一段時(shí)間了,又在忙其他項(xiàng)目了。

時(shí)間過(guò)得真快,F(xiàn)君離開(kāi)A公司已經(jīng)很長(zhǎng)一段時(shí)間了,細(xì)細(xì)想來(lái),F(xiàn)君學(xué)識(shí)豐富,每一次和他的討論都有很大的收獲,他亦是我心中半師半友的伙伴。

D君緊隨F君之后不久離開(kāi),據(jù)說(shuō)都去了某視的數(shù)據(jù)云部門(mén)。D君是一個(gè)踏實(shí)肯干的人,所以與他相處也很愉快。

就在前一段時(shí)間,E妹也離開(kāi)了公司。E妹的敏捷思維至今還給我留下深刻的印象,在陷入迷茫之中,往往有很多突發(fā)奇想又有很大幫助的點(diǎn)子。

對(duì)于他們的離開(kāi),我頗具悲傷、甚是懷念。

我祝福他們?cè)谛碌墓纠?,能夠過(guò)得更快樂(lè),賺更多的money。

至此,我也祝福所有動(dòng)物園里的動(dòng)物,不管是程序猿也好,設(shè)計(jì)獅也好,產(chǎn)品狗也好,希望你們過(guò)得好,珍惜每一個(gè)在你身邊與你一起戰(zhàn)斗過(guò)的伙伴。記得時(shí)常聯(lián)絡(luò),偶爾聊聊技術(shù),偶爾一起去奧森公園打打三國(guó)殺,哈哈~~

好吧,到這里,我這篇很長(zhǎng)很長(zhǎng)的文章(估計(jì)有近萬(wàn)字了)也該結(jié)束了,困了=_=,都一點(diǎn)了,差不多洗洗睡了。

總的來(lái)說(shuō),這篇文章延續(xù)了我以往的風(fēng)格,正如《這些年,這些挖掘機(jī)算法,這些反思》一文那樣,帶點(diǎn)技術(shù)話題,帶點(diǎn)故事性質(zhì)。

在此,我祝福所有搞技術(shù)的、不搞技術(shù)的,都能看得爽

 

責(zé)任編輯:李英杰 來(lái)源: 36大數(shù)據(jù)
相關(guān)推薦

2020-06-28 07:00:00

推薦系統(tǒng)智能商務(wù)服務(wù)平臺(tái)

2022-11-01 07:19:45

推薦系統(tǒng)非個(gè)性化

2013-03-22 14:47:14

大數(shù)據(jù)云計(jì)算

2022-09-06 17:43:02

??AISummit數(shù)據(jù)運(yùn)營(yíng)

2013-06-28 10:08:49

云計(jì)算大數(shù)據(jù)個(gè)性化

2016-11-08 13:03:56

大數(shù)據(jù)小數(shù)據(jù)Dysart

2018-05-14 12:48:04

大數(shù)據(jù)銷售企業(yè)

2013-06-26 10:25:46

云計(jì)算大數(shù)據(jù)

2014-02-10 09:21:25

大數(shù)據(jù)

2017-09-15 10:36:41

大數(shù)據(jù)貧困學(xué)生資助

2023-07-26 07:51:30

游戲中心個(gè)性化

2018-04-26 11:30:29

OracleBronto產(chǎn)品推薦

2017-07-24 09:18:29

大數(shù)據(jù)設(shè)計(jì)UX

2016-09-29 12:09:47

大數(shù)據(jù)搜索個(gè)性化服務(wù)

2018-04-27 16:23:27

Oracle Bron個(gè)性化產(chǎn)品

2016-01-07 13:23:35

構(gòu)建實(shí)時(shí)推薦系統(tǒng)

2018-01-02 09:00:51

大數(shù)據(jù)營(yíng)銷王者榮耀

2023-08-22 15:37:45

深度學(xué)習(xí)人工智能

2015-08-05 10:52:13

京東數(shù)據(jù)驅(qū)動(dòng)個(gè)性化推薦

2016-04-08 11:39:49

用戶畫(huà)像個(gè)性化推薦標(biāo)簽
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)