個(gè)性化推薦系統(tǒng)的實(shí)踐與思考(上)-創(chuàng)新互聯(lián)

個(gè)性化推薦系統(tǒng)的實(shí)踐與思考(上)

十余年的競(jìng)秀網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整競(jìng)秀建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“競(jìng)秀網(wǎng)站設(shè)計(jì)”,“競(jìng)秀網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

本文內(nèi)容來(lái)自神策數(shù)據(jù)《智能推薦——應(yīng)用場(chǎng)景與技術(shù)難點(diǎn)剖析》閉門(mén)會(huì)分享內(nèi)容整理,分享者為神策數(shù)據(jù)算法專家胡士文,分享主題為《推薦系統(tǒng)的實(shí)踐與思考》。

大家好,在演講開(kāi)始前,我對(duì)在座的各位進(jìn)行了一個(gè)小調(diào)查,得知大家普遍在工作中遇到的與推薦系統(tǒng)相關(guān)的問(wèn)題是:“數(shù)據(jù)太稀疏、數(shù)據(jù)沒(méi)有形成閉環(huán)、數(shù)據(jù)沒(méi)辦法跟其他系統(tǒng)結(jié)合”等等,這些內(nèi)容,是擺在我們面前的實(shí)際問(wèn)題,那么當(dāng)我們真正要開(kāi)始做一個(gè)推薦系統(tǒng)時(shí),需要從幾方面考慮問(wèn)題呢?

第一,算法。到底應(yīng)該選擇什么樣的算法?無(wú)論是協(xié)同過(guò)濾還是其他算法,都要基于自己的業(yè)務(wù)產(chǎn)品。

第二,數(shù)據(jù)。當(dāng)確定了算法時(shí),應(yīng)該選擇什么樣的數(shù)據(jù)?怎樣加工數(shù)據(jù)?用什么樣方法采集數(shù)據(jù)?有句話叫做“機(jī)器學(xué)習(xí)=模型+數(shù)據(jù)”,即便擁有了一個(gè)很復(fù)雜的模型,在數(shù)據(jù)出現(xiàn)問(wèn)題的情況下,也無(wú)法在推薦系統(tǒng)里面發(fā)揮很好的效果。

第三,在線服務(wù)。當(dāng)模型訓(xùn)練完畢,數(shù)據(jù)準(zhǔn)備充分之后,就會(huì)面對(duì)接收用戶請(qǐng)求返回推薦結(jié)果的事項(xiàng),這其中包含兩個(gè)問(wèn)題。其一,返回響應(yīng)要足夠迅速。如果當(dāng)一個(gè)用戶請(qǐng)求后的一秒鐘才返回推薦結(jié)果,用戶很可能因喪失耐心而流失。其二,如何讓推薦系統(tǒng)具有高可擴(kuò)展性。當(dāng) DAU 從最初的十萬(wàn)漲到一二百萬(wàn)時(shí),推薦系統(tǒng)還能像最初那樣很好地?fù)踝〈篌w量的請(qǐng)求嗎?這都是在線服務(wù)方面需要考慮和面臨的問(wèn)題。

第四,評(píng)估效果。做好上述三點(diǎn),并不代表萬(wàn)事大吉,一方面,我們要持續(xù)迭代推薦算法模型與結(jié)構(gòu),另一方面要去構(gòu)建一套比較完整、系統(tǒng)的評(píng)價(jià)體系和評(píng)估方法,去分析推薦效果的現(xiàn)狀以及后續(xù)的發(fā)展。

我會(huì)從以上四個(gè)方面,跟大家分享一下我們?cè)趯?shí)際情況中遇到的一些問(wèn)題以及總結(jié)出的解決方法。

一、算法

在各種算法中,大家最容易想到的就是一種基于標(biāo)簽的方法。

個(gè)性化推薦系統(tǒng)的實(shí)踐與思考(上)

如上圖所示,標(biāo)簽可分為兩種。

第一種——用戶標(biāo)簽。假設(shè)我們擁有一部分用戶標(biāo)簽,知道每一個(gè)用戶的年齡、性別等信息,當(dāng)某類年齡和某種性別的用戶喜歡過(guò)某一個(gè)物品時(shí),我們就可以把該物品推薦給具有同樣年齡、性別等用戶標(biāo)簽的其他用戶。

第二種——內(nèi)容標(biāo)簽。與用戶標(biāo)簽的思路相似,如果用戶喜歡過(guò)帶有內(nèi)容標(biāo)簽的物品,我們就可以為他推薦具有同樣標(biāo)簽的內(nèi)容。

但很明顯,這種基于標(biāo)簽的方法有一個(gè)重要的缺點(diǎn)——它需要足夠豐富的標(biāo)簽。也許在多產(chǎn)品中,可能并沒(méi)有標(biāo)簽或者標(biāo)簽數(shù)量非常稀疏,所以標(biāo)簽的方法顯然不足以應(yīng)對(duì)。

另外,協(xié)同過(guò)濾也是一種非常經(jīng)典、被較多人提及的一種方法,是一種常見(jiàn)且有效的思路。

個(gè)性化推薦系統(tǒng)的實(shí)踐與思考(上)

隨著技術(shù)的不斷發(fā)展,基本從 2012 年以后,深度學(xué)習(xí)幾乎被整個(gè)機(jī)器學(xué)習(xí)界進(jìn)行反復(fù)的討論和研究。谷歌在 2016 年提出一套基于深度學(xué)習(xí)的推薦模型,用深度學(xué)習(xí)去解決推薦的問(wèn)題,利用用戶的行為數(shù)據(jù)去構(gòu)建推薦算法。

1. 深度學(xué)習(xí)的目的之一:向量化

推薦系統(tǒng)其實(shí)是在做一個(gè)關(guān)于“匹配”的事情,把人和物做匹配??此坪茈y的推薦系統(tǒng),其實(shí)也有簡(jiǎn)單的思路——做人和物的匹配,把該用戶可能感興趣的物品推薦給他(她)。如果站在數(shù)學(xué)的角度去思考這個(gè)問(wèn)題,我們?nèi)绾稳ビ?jì)算人和物的相似度匹配呢?

在推薦領(lǐng)域,深度學(xué)習(xí)的目的之一就是嘗試將人和物向量化,即把某個(gè)人和某個(gè)物品學(xué)習(xí)成一種統(tǒng)一的表示方式,隨后在這個(gè)統(tǒng)一的表示方式中計(jì)算這個(gè)人和物品的相似度,當(dāng)人和物都映射到同一個(gè)可比較的空間中時(shí),就能夠基于計(jì)算結(jié)果去執(zhí)行相關(guān)的內(nèi)容推薦。

個(gè)性化推薦系統(tǒng)的實(shí)踐與思考(上)

把最終的結(jié)果映射到這張二維的平面圖表里,用戶認(rèn)為相似的內(nèi)容就會(huì)映射在向量上,當(dāng)擁有內(nèi)容向量之后,之后再將用戶映射進(jìn)來(lái)即可,比如用戶到達(dá)了上圖某個(gè)地方,根據(jù)他所處的位置,可以向其推送教育、娛樂(lè)、科學(xué)、地理等內(nèi)容。

講到這里,有些朋友就會(huì)提出疑問(wèn):既然深度學(xué)習(xí)如此復(fù)雜,那在實(shí)踐中究竟有沒(méi)有作用?其實(shí)站在實(shí)戰(zhàn)經(jīng)驗(yàn)的角度來(lái)看,當(dāng)具備一定的數(shù)據(jù)量時(shí),會(huì)帶來(lái)比較明顯的效果提升,但當(dāng)你要去搭建一個(gè)深度學(xué)習(xí)模型的時(shí)候,可能真的會(huì)遇到很多問(wèn)題。比如:

用多少數(shù)據(jù)量去訓(xùn)練模型是可以的?訓(xùn)練數(shù)據(jù)該用什么格式?多“深”才算深度模型?訓(xùn)練模型太慢了怎么辦等。這些關(guān)于在搭建深度學(xué)習(xí)模型時(shí)遇到的困難與解決方法,會(huì)在以后跟大家分享。

2. 冷啟動(dòng)

冷啟動(dòng)是算法部分經(jīng)常遇到的問(wèn)題,在冷啟動(dòng)階段,數(shù)據(jù)比較稀疏,很難利用用戶的行為數(shù)據(jù)實(shí)現(xiàn)個(gè)性化推薦。冷啟動(dòng)的問(wèn)題分為兩種:新內(nèi)容的冷啟動(dòng)、新用戶的冷啟動(dòng)。接下來(lái),我們分享一下新內(nèi)容的冷啟動(dòng)要如何實(shí)現(xiàn)。?

舉個(gè)例子,資訊場(chǎng)景的需求往往是將發(fā)布的新內(nèi)容(如 10 分鐘內(nèi)發(fā)布的內(nèi)容),以實(shí)時(shí)且個(gè)性化的方式分發(fā)到用戶的推薦結(jié)果中去。

個(gè)性化推薦系統(tǒng)的實(shí)踐與思考(上)

上圖這篇文章在 17:41 發(fā)出,那么就需要在極短的時(shí)間內(nèi)根據(jù)這篇文章的內(nèi)容去做一些個(gè)性化的相關(guān)推薦。此文內(nèi)容圍繞美食展開(kāi),用戶點(diǎn)開(kāi)這篇文章之后,文章的相關(guān)推薦里面就要有跟美食相關(guān)的一些內(nèi)容。當(dāng)我們要在如此實(shí)時(shí)的環(huán)境中實(shí)現(xiàn)推薦效果的話,其實(shí)沒(méi)辦法去依賴用戶的行為。

這時(shí),我們嘗試提供一種思路,一種基于深度學(xué)習(xí)的語(yǔ)義理解模型。

這個(gè)模型跟我們前面分享的內(nèi)容有一個(gè)很大的區(qū)別就是——不需要用戶行為,只需要分析用戶文本,基于用戶的內(nèi)容去給每一篇文章生成一個(gè)向量。這和前面提到的模型也有相通的地方,第一,用深度學(xué)習(xí)的思路去解決問(wèn)題,第二,用向量化的思路解決問(wèn)題。我們只需要訓(xùn)練出文章的語(yǔ)義向量,獲得文章與文章之間的相似度,從而得知文章和用戶之間的相關(guān)性。

3. 召回、排序、規(guī)則

如今的推薦系統(tǒng)已經(jīng)做得相當(dāng)復(fù)雜,特別是在一些大規(guī)模的應(yīng)用場(chǎng)景中,比如說(shuō)今日頭條的 Feed 流,淘寶的“猜你喜歡”等,都擁有一個(gè)非常復(fù)雜的推薦系統(tǒng),這個(gè)推薦系統(tǒng)中的各個(gè)模塊可能會(huì)涉及到很多的實(shí)驗(yàn)算法,在一個(gè)系統(tǒng)中,出現(xiàn) 10 個(gè)或者 20 個(gè)模型都很常見(jiàn)。那么怎么把這些模型有效地融合成一個(gè)真正的系統(tǒng)呢?

  • 召回

召回,即從海量的內(nèi)容里去召回每一個(gè)用戶他可能感興趣的內(nèi)容,前提是——擁有海量的內(nèi)容,因?yàn)楫?dāng)內(nèi)容不足時(shí),也就不需要去搭建復(fù)雜的推薦系統(tǒng)。所以,當(dāng)有海量 Item 時(shí),需要用召回的算法從不同類別的內(nèi)容里為用戶生成他可能感興趣的內(nèi)容。比如某位用戶既喜歡體育內(nèi)容,也喜歡軍事內(nèi)容,那么在第一步,無(wú)論用哪些模型,都希望達(dá)到為該用戶生成一些體育、軍事相關(guān)內(nèi)容的效果。另一個(gè)用戶可能喜歡美食和游戲,在召回階段,我們就希望通過(guò)模型去為他生成一些美食和游戲相關(guān)的內(nèi)容。

在召回階段可能就會(huì)存在許多個(gè)模型。而經(jīng)過(guò)召回階段之后,盡管生成的是該用戶可能感興趣的內(nèi)容,但這些內(nèi)容實(shí)際并沒(méi)有融合到一起,是一種亂序的狀態(tài)。

  • 排序

排序,即將召回出來(lái)的內(nèi)容做統(tǒng)一排序。排序過(guò)程其實(shí)就是給每部分內(nèi)容打分的過(guò)程,預(yù)測(cè)每一個(gè)用戶對(duì)每一部分內(nèi)容的感興趣程度,從而獲知每一個(gè)用戶對(duì)每部分內(nèi)容的偏好程度。

  • 規(guī)則

推薦系統(tǒng)常常跟產(chǎn)品或者業(yè)務(wù)場(chǎng)景緊密相連,而在產(chǎn)品中一定有一些需求是無(wú)法用模型來(lái)解決的。因?yàn)槟P椭荒軓挠脩粜袨榛蛘呶谋緝?nèi)容中去發(fā)掘用戶和物品之間的關(guān)系,所以有些常見(jiàn)的業(yè)務(wù)需求要通過(guò)規(guī)則去實(shí)現(xiàn)。舉個(gè)例子,部分推薦場(chǎng)景中會(huì)出現(xiàn)一些運(yùn)營(yíng)精選的內(nèi)容,運(yùn)營(yíng)同事的需求是:保證每十條內(nèi)容中都有一條編輯精選內(nèi)容,而這個(gè)需求,只能通過(guò)規(guī)則實(shí)現(xiàn),而不是通過(guò)算法。

一個(gè)比較復(fù)雜的推薦系統(tǒng)通常分為召回、排序、規(guī)則這三個(gè)步驟。首先召回用戶感興趣的內(nèi)容,第二為用戶生成一個(gè)排序列表,第三用規(guī)則解決一些產(chǎn)品、運(yùn)營(yíng)方面提出的需求。

二、數(shù)據(jù)

總是會(huì)聽(tīng)到一個(gè)這樣的說(shuō)法,“推薦算法的效果是由模型與數(shù)據(jù)所決定的”,即模型只占推薦效果中的一部分,另外一個(gè)非常重要的部分就是數(shù)據(jù)。那么我們究竟需要哪些數(shù)據(jù)?在一個(gè)實(shí)際的推薦系統(tǒng)中,哪些數(shù)據(jù)是有可能發(fā)揮作用的?我們又能拿到哪些數(shù)據(jù)?

通常來(lái)說(shuō)一般會(huì)有四類數(shù)據(jù):用戶行為、物品信息、用戶畫(huà)像以及外部數(shù)據(jù)。

1. 用戶行為

用戶行為數(shù)據(jù)最為重要,幾乎沒(méi)有哪一個(gè)推薦系統(tǒng)可以直接表示不需要用戶行為數(shù)據(jù)。一方面,用戶行為數(shù)據(jù)是訓(xùn)練模型中的一個(gè)重要數(shù)據(jù)來(lái)源,另外一方面,需要通過(guò)用戶的行為反饋,技術(shù)同事才能知道推薦系統(tǒng)到底做得如何。搭建推薦系統(tǒng)的一個(gè)秘籍就是積累用戶行為數(shù)據(jù),如果沒(méi)有將重要的用戶行為做采集,例如在電商場(chǎng)景中,如果只是記錄最終的下單數(shù)據(jù),那么離推薦系統(tǒng)的數(shù)據(jù)要求還是有一定的距離。

2.物品信息

物品信息指推薦系統(tǒng)中能采集到的描述每一個(gè)內(nèi)容的信息。以電商場(chǎng)景為例,在錄入一件具體物品時(shí),錄入商品的品牌、價(jià)格、品類、上架時(shí)間等就是我們要收集的物品信息。假設(shè)在電商場(chǎng)景中,如果并不清楚每個(gè)商品的品牌,也就無(wú)法從一些物體的描述信息中去提取某個(gè)商品到底屬于何種品牌,那么推薦效果自然受到限制。當(dāng)物品信息采集的足夠豐富時(shí),對(duì)推薦系統(tǒng)的效果就會(huì)有一定的幫助。

3. 用戶畫(huà)像

在傳統(tǒng)的思路中,認(rèn)為用戶畫(huà)像里面存儲(chǔ)的實(shí)際還是用戶的標(biāo)簽,但在很多實(shí)際場(chǎng)景中標(biāo)簽數(shù)量少、維度粗,可能根本不具備去給用戶打標(biāo)簽的能力,這種傳統(tǒng)的“標(biāo)簽式”想法,就會(huì)限制搭建推薦系統(tǒng)的思路。

而從深度學(xué)習(xí)的角度出發(fā),用戶畫(huà)像中儲(chǔ)存的并不是通常理解的“標(biāo)簽”,他可能存儲(chǔ)的是這個(gè)人的向量,深度學(xué)習(xí)是把人和物品做向量化,但這個(gè)向量是不可被理解的,即我們可能并不知道這個(gè)向量表示的是什么意思,當(dāng)我們看到某個(gè)用戶對(duì)應(yīng)的向量,我們也不知道他是對(duì)體育、音樂(lè)或是娛樂(lè)感興趣,但我們?nèi)阅軌蛲ㄟ^(guò)向量去為他推薦其感興趣的內(nèi)容。

4. 外部數(shù)據(jù)

有的人會(huì)迷信外部數(shù)據(jù),覺(jué)得自己的數(shù)據(jù)量不夠,所以一定要去購(gòu)買阿里或者是騰訊的外部數(shù)據(jù)來(lái)充實(shí)用戶畫(huà)像,從而提高推薦系統(tǒng)的效果。甚至有人認(rèn)為推薦系統(tǒng)效果不好,是因?yàn)闆](méi)有外部數(shù)據(jù)。

但其實(shí),外部數(shù)據(jù)對(duì)于推薦系統(tǒng)的效果,個(gè)人認(rèn)為還需要一個(gè)極為謹(jǐn)慎的推理和驗(yàn)證。

首先,要先驗(yàn)證自己的這批用戶群跟所購(gòu)買的外部數(shù)據(jù)能發(fā)生多少交集。假如一個(gè)游戲平臺(tái),購(gòu)買了阿里的外部數(shù)據(jù),而這樣的外部數(shù)據(jù)可能只能告訴你用戶到底是喜歡買衣服、買車還是買電子產(chǎn)品,這樣的信息對(duì)游戲平臺(tái)有用嗎?

假設(shè)購(gòu)買的外部數(shù)據(jù)恰好命中了業(yè)務(wù)場(chǎng)景,可能會(huì)發(fā)揮一定的作用,但實(shí)際上,能夠同時(shí)命中用戶群體和標(biāo)簽的情況也并不常見(jiàn)。

大家不要認(rèn)為上述的 4 種數(shù)據(jù)比較容易理解,所以獲取時(shí)也會(huì)比較簡(jiǎn)單。其實(shí)我和我們神策團(tuán)隊(duì)在去構(gòu)建一個(gè)實(shí)際的推薦系統(tǒng)時(shí),消耗我們?nèi)肆Φ牡胤酵皇撬惴ǎ炊窃趺慈サ玫秸_的數(shù)據(jù),接下來(lái)我們以用戶行為數(shù)據(jù)為例,與大家分享應(yīng)該如何獲取我們所需要的用戶行為數(shù)據(jù)?

這時(shí)候我們就要思考,當(dāng)我們想去獲取用戶行為數(shù)據(jù)時(shí),到底希望用戶行為數(shù)據(jù)能給我們帶來(lái)什么樣的作用?

我總結(jié)為以下幾個(gè)方面:

第一,我們希望用戶行為數(shù)據(jù)能用來(lái)訓(xùn)練模型,這是非常重要的一個(gè)方面。比如我給某個(gè)用戶推薦十件商品,其中有兩件商品發(fā)生了點(diǎn)擊行為,模型中就會(huì)覺(jué)得這兩條數(shù)據(jù)是正例,其他是負(fù)例。所以,我們需要用戶行為數(shù)據(jù)作為模型的訓(xùn)練數(shù)據(jù)。

第二,我們希望用戶行為數(shù)據(jù)能夠驗(yàn)證效果。推薦系統(tǒng)上線之后,需要用戶行為數(shù)據(jù)來(lái)反饋推薦到底做得怎么樣。比如點(diǎn)擊率上升說(shuō)明效果變好,點(diǎn)擊率下降、負(fù)反饋?zhàn)兌?、用戶流失,說(shuō)明推薦系統(tǒng)可能出現(xiàn)了問(wèn)題。

第三,我們希望用戶行為數(shù)據(jù)能夠支持我們?nèi)タ?A/B Test 效果。模型上線一定要基于 A/B Test,我們需要知道此次上線到底比之前的推薦算法、推薦系統(tǒng)等效果如何。這樣,我們才能判斷這一次的迭代是否有效,如果有效就將其全量,如果無(wú)效,則進(jìn)一步迭代。

第四,我們希望它能夠幫助我們分析問(wèn)題。我們將推薦系統(tǒng)上線之后,可能會(huì)碰到一些懊惱的問(wèn)題,比如點(diǎn)擊率并沒(méi)有發(fā)生變化,甚至效果變差,畢竟不可能每一次迭代的效果都是上升的,所以我們希望行為數(shù)據(jù)能夠定位到此次推薦系統(tǒng)上線后效果不理想的原因。如果上線后效果不錯(cuò),此時(shí)我們希望行為數(shù)據(jù)能夠分析到底是哪些因素使效果變好。

那我們應(yīng)該如何去獲取滿足我們這些需求的行為數(shù)據(jù)呢?以曝光日志中的第一個(gè)字段 exp_id 為例,exp_id 的中文的意思是實(shí)驗(yàn) ID。

前面提到了我們希望用戶行為數(shù)據(jù)是能支持 A/B Test 的,那么如何知道每一條數(shù)據(jù)是來(lái)自哪一組實(shí)驗(yàn)?zāi)??此時(shí),我們需要一個(gè) exp_id 字段去記錄每一條曝光日志是來(lái)自哪組實(shí)驗(yàn)。當(dāng)我們?cè)俅畏治?A/B Test 效果時(shí),就可以根據(jù)一個(gè) exp_id 字段去區(qū)分不同實(shí)驗(yàn)所帶來(lái)的曝光和點(diǎn)擊。

個(gè)性化推薦系統(tǒng)的實(shí)踐與思考(上)

在曝光日志中我們常常討論如何設(shè)計(jì)一些常用字段,而另外一個(gè)具體問(wèn)題就是——我們?cè)趺慈ゲ杉@些數(shù)據(jù)?

簡(jiǎn)單來(lái)說(shuō),當(dāng)用戶在產(chǎn)品里面發(fā)生一些用戶行為,怎么把這個(gè)數(shù)據(jù)最終落到服務(wù)器的日志中,從而用于模型訓(xùn)練和效果分析呢?

做用戶行為的采集,通常有兩種方式。第一種就是自助埋點(diǎn),客戶端先把用戶的行為記錄下來(lái),之后傳給服務(wù)端,服務(wù)端再去傳給推薦引擎。另外一個(gè)埋點(diǎn)方式是 SDK 埋點(diǎn),我們直接使用 SDK 去做推薦引擎的埋點(diǎn)。

SDK 埋點(diǎn)有兩個(gè)方面的優(yōu)勢(shì):

第一,SDK 埋點(diǎn)的接入成本低,它有比較成熟的埋點(diǎn)事件和埋點(diǎn)驗(yàn)證方案。另外 SDK 有埋點(diǎn)接口和文檔指導(dǎo)客戶埋點(diǎn),無(wú)需關(guān)注上報(bào)問(wèn)題。

第二,SDK 埋點(diǎn)的容錯(cuò)性比較高。如果是自助埋點(diǎn),從客戶端到推薦引擎經(jīng)過(guò)了服務(wù)端,數(shù)據(jù)出現(xiàn)問(wèn)題,難以回溯埋點(diǎn)問(wèn)題、傳輸問(wèn)題、數(shù)據(jù)質(zhì)量維護(hù)成本高,SDK 埋點(diǎn)就會(huì)相對(duì)方便。

那么當(dāng)有了行為數(shù)據(jù)之后,如何去訓(xùn)練模型?通常會(huì)有以下幾個(gè)步驟:

第一,構(gòu)造正負(fù)例。比如給用戶推薦十條商品,有幾條發(fā)生點(diǎn)擊,就有幾條正例,其他沒(méi)有發(fā)生點(diǎn)擊就是負(fù)例。

第二,構(gòu)造特征工程。稍后會(huì)以一個(gè)電商場(chǎng)景為例,具體講解通常情況下,如何構(gòu)造特征工程。

第三,數(shù)據(jù)采樣。數(shù)據(jù)采樣對(duì)整個(gè)模型訓(xùn)練的效果影響較大。

下面以電商場(chǎng)景為例,講解如何做特征工程,主要分為 2 個(gè)方面:

第一,商品維度。在商品的維度里,我們可能關(guān)注一些商品的品類、品牌、價(jià)格、所面向的性別,以及各種用戶行為反饋的一些數(shù)據(jù),比如點(diǎn)擊率、收藏比率等,這些內(nèi)容一方面體現(xiàn)了商品本身的一些屬性,同時(shí)還體現(xiàn)商品的質(zhì)量。

第二,用戶層面,通常首先考慮用戶的年齡和性別。因?yàn)樵陔娚填I(lǐng)域中男性所偏重的商品和女性之間存在較大差異。另外還有用戶的品類偏好、品牌偏好,以及價(jià)格偏好等。

在數(shù)據(jù)方面,跟大家分享一下我在實(shí)際工作中遇到的“坑”:

某一次小的流量上線之后,我和團(tuán)隊(duì)成員發(fā)現(xiàn)效果不如預(yù)期,根據(jù)以往的實(shí)踐經(jīng)驗(yàn)來(lái)說(shuō),不應(yīng)該是這么差的結(jié)果,當(dāng)我們?nèi)シ治鰯?shù)據(jù)時(shí),發(fā)現(xiàn)有兩個(gè)方面的數(shù)據(jù)異常。

第一,命中行為模型的用戶較少。通常情況下,只要不是一個(gè)新用戶,理論上來(lái)說(shuō),都應(yīng)該能夠命中我的行為模型。我們當(dāng)時(shí)的新用戶比例在 20% 以下,而命中模型的用戶大概僅為 30%,說(shuō)明大量的用戶沒(méi)有命中到模型。

第二,很多請(qǐng)求的 ID 未出現(xiàn)在日志中。當(dāng)時(shí)我們懷疑,是否我們的推薦結(jié)果被別人作弊刷掉了。因?yàn)橛谩白鞅住蹦芎芎玫亟忉屵@些請(qǐng)求并未落到日志中的原因。

但最終,我們發(fā)現(xiàn)并不是作弊的問(wèn)題,而是因?yàn)橛脩?ID 沒(méi)有統(tǒng)一。前端在用他們理解的一套用戶 ID 體系打日志,但是后端在用另外一套用戶 ID 體系發(fā)送請(qǐng)求。于是所有的數(shù)據(jù)無(wú)法對(duì)上,后端過(guò)來(lái)的請(qǐng)求總是新用戶,而訓(xùn)練出來(lái)的模型命中不了任何用戶。

最終,我們建立了一系列的方法和工具以及流程去保證整個(gè)用戶 ID 體系的一致性。

以上就是神策數(shù)據(jù)算法專家胡士文對(duì)推薦系統(tǒng)的實(shí)踐與思考的前兩點(diǎn)“算法”與“數(shù)據(jù)”的分享,由于篇幅限制,“在線服務(wù)”和“效果評(píng)估”將在下一篇文章進(jìn)行介紹,希望對(duì)你有幫助!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站題目:個(gè)性化推薦系統(tǒng)的實(shí)踐與思考(上)-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://muchs.cn/article16/dspdgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作移動(dòng)網(wǎng)站建設(shè)、用戶體驗(yàn)、企業(yè)建站、ChatGPT網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)