最近房源標(biāo)簽立項(xiàng)了材蛛,急需一些做標(biāo)簽/畫(huà)像的方法論臊泌,MT這本寫(xiě)的偏技術(shù)&概括,但是依然可以借鑒坏平。
1.什么是用戶(hù)畫(huà)像
收集分析用戶(hù)的線上線下行為數(shù)據(jù)拢操,把個(gè)性化的人,打上標(biāo)準(zhǔn)化的標(biāo)簽舶替,把標(biāo)簽做梳理聚合令境,形成一個(gè)個(gè)典型的用戶(hù)畫(huà)像,再根據(jù)不同的用戶(hù)畫(huà)像做精準(zhǔn)營(yíng)銷(xiāo)or推薦顾瞪。
本質(zhì)是去差異化的過(guò)程舔庶,抽象出一定級(jí)別的共性忍疾,反哺降低業(yè)務(wù)成本括儒,創(chuàng)新業(yè)務(wù)場(chǎng)景。
2.用戶(hù)畫(huà)像的數(shù)據(jù)挖掘
標(biāo)簽的生產(chǎn)谓形,從開(kāi)發(fā)實(shí)現(xiàn)的角度可以分為兩大類(lèi)钉跷,1.統(tǒng)計(jì)分析直接得到的弥鹦。2.通過(guò)機(jī)器學(xué)習(xí)訓(xùn)練模型,然后基于模型預(yù)測(cè)得到爷辙;
第一類(lèi)因?yàn)橹苯犹幚頂?shù)據(jù)做邏輯計(jì)算得到最終結(jié)果彬坏,通常不會(huì)太復(fù)雜,這里不再展開(kāi)膝晾。
本章將會(huì)重點(diǎn)介紹第二類(lèi)栓始,首先收集樣本集合建立機(jī)器學(xué)習(xí)模型,然后在全量數(shù)據(jù)上做預(yù)測(cè)計(jì)算血当。
將設(shè)計(jì)各種機(jī)器學(xué)習(xí)/數(shù)據(jù)挖掘方法幻赚,比如傳統(tǒng)的分類(lèi)禀忆,回歸,聚類(lèi)坯屿,關(guān)聯(lián)挖掘等油湖,當(dāng)然也在不斷嘗試比較流行的深度神經(jīng)網(wǎng)絡(luò)/卷積神經(jīng)網(wǎng)絡(luò)/長(zhǎng)短期記憶等深度學(xué)習(xí)乃至增強(qiáng)學(xué)習(xí)方法巍扛。
2.1 數(shù)據(jù)挖掘整體架構(gòu)
用戶(hù)畫(huà)像數(shù)據(jù)的生產(chǎn)和消費(fèi)是一個(gè)比較復(fù)雜的過(guò)程领跛,通常涉及數(shù)據(jù)收集,清洗撤奸,特征生成吠昭,標(biāo)簽建模,預(yù)測(cè)計(jì)算胧瓜,效果評(píng)估矢棚,線上應(yīng)用,效果反饋等多個(gè)環(huán)節(jié)府喳。
數(shù)據(jù)收集:除了公司自有的數(shù)據(jù)蒲肋,還可能有互聯(lián)網(wǎng)抓取的公開(kāi)數(shù)據(jù),其他公司合作的第三方數(shù)據(jù)等钝满。
特征計(jì)算:如何將清洗后的數(shù)據(jù)轉(zhuǎn)換成特征工程兜粘,這里的主要工作是數(shù)據(jù)處理(如異常值處理,數(shù)據(jù)異構(gòu)轉(zhuǎn)同構(gòu))弯蚜,數(shù)據(jù)加工(統(tǒng)計(jì)孔轴,平滑,歸一)碎捺,考慮到底層數(shù)據(jù)庫(kù)有海量的結(jié)構(gòu)化數(shù)據(jù)路鹰,我們開(kāi)發(fā)了特征爬蟲(chóng),這是一個(gè)強(qiáng)大的可以自動(dòng)發(fā)現(xiàn)特征的工具收厨。大致做法是:給出數(shù)據(jù)樣本之后晋柱,自動(dòng)掃描這些結(jié)構(gòu)化的數(shù)據(jù)表,根據(jù)一些相干性指標(biāo)诵叁,找到跟樣本標(biāo)簽強(qiáng)相關(guān)的數(shù)據(jù)列雁竞,稍作處理之后可以加入特征庫(kù)作為后續(xù)建模特征使用。
特征庫(kù)的維護(hù):特征生成之后黎休,需要一個(gè)統(tǒng)一管理的地方浓领,以方便收錄新特征,下線老特征势腮,一級(jí)可視化展示特征的各種統(tǒng)計(jì)字表联贩,最重要的一點(diǎn)是,為了保證特征質(zhì)量們這里有一個(gè)旁路系統(tǒng)捎拯,用于監(jiān)控特征各種波動(dòng)情況泪幌,在有質(zhì)量風(fēng)險(xiǎn)的時(shí)候做預(yù)警。
機(jī)器學(xué)習(xí)模型:擁有比較完備的特征庫(kù)后,對(duì)標(biāo)簽做機(jī)器學(xué)習(xí)建模的主要工作祸泪,就變成了使用什么樣的算法工具完成:特征選擇吗浩,模型訓(xùn)練,效果評(píng)估没隘,例行預(yù)測(cè)懂扼。特征選擇通常采用高效的fileter方法,字節(jié)通過(guò)卡方右蒲、信息增益等指標(biāo)度量特征的重要程度阀湿,模型訓(xùn)練我根據(jù),我們會(huì)用到各種機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的相關(guān)工具瑰妄,例如spark MLib陷嘴、sklearn、xgb间坐、tensorflow灾挨,為了統(tǒng)一方便預(yù)測(cè),我們通常會(huì)使用預(yù)測(cè)模型標(biāo)記語(yǔ)言做模型表達(dá)竹宋,從而減少模型預(yù)測(cè)時(shí)大量的適配工作劳澄。
應(yīng)用接口:不重要。
畫(huà)像應(yīng)用:各方向逝撬。
2.2 用戶(hù)標(biāo)識(shí)
講的userid的打通浴骂,對(duì)C端來(lái)說(shuō),即便公司內(nèi)部有一套專(zhuān)屬的用戶(hù)ID宪潮,但是無(wú)注冊(cè)訪問(wèn)或者第三方數(shù)據(jù)都不會(huì)標(biāo)注出這個(gè)ID溯警,這時(shí)候就需要合并自然人。
對(duì)我們房源標(biāo)簽狡相,基本不存在這個(gè)問(wèn)題梯轻,貝殼自身數(shù)據(jù)就包含了很大一部分在售房源,對(duì)未包含在內(nèi)的尽棕,可以用房源對(duì)齊/房屋ID等方法喳挑。
2.3特征數(shù)據(jù)
解決用戶(hù)相關(guān)數(shù)據(jù)的收集問(wèn)題。
由于MT業(yè)務(wù)形態(tài)的問(wèn)題滔悉,一些用戶(hù)的行為數(shù)據(jù)比較稀疏伊诵,如某個(gè)品類(lèi)的瀏覽與購(gòu)買(mǎi)數(shù)據(jù)可能是百萬(wàn)級(jí)、千萬(wàn)級(jí)的回官,在全量用戶(hù)上的占比低于10%曹宴,因此在用戶(hù)建模過(guò)程中,往往需要用到大量的特征來(lái)緩解這一問(wèn)題歉提。
此外在進(jìn)行不同的標(biāo)簽開(kāi)發(fā)過(guò)程中笛坦,很多數(shù)據(jù)特征同樣有效区转,如婚紗攝影品類(lèi)的瀏覽,購(gòu)買(mǎi)特征版扩,在結(jié)婚和有小孩的數(shù)據(jù)挖掘中同時(shí)有效废离;由于用戶(hù)畫(huà)像不同屬性的關(guān)聯(lián)性,這類(lèi)的例子非常多礁芦,所以在具體進(jìn)行用戶(hù)建模過(guò)程中蜻韭,為了高效挖掘用戶(hù)標(biāo)簽,避免重復(fù)提取特征宴偿,降低人力成本和減少時(shí)間的浪費(fèi)湘捎,在進(jìn)行具體的標(biāo)簽挖掘之前,需要先進(jìn)行用戶(hù)特征庫(kù)的規(guī)劃和建設(shè)窄刘。
這套思路沒(méi)問(wèn)題,房源標(biāo)簽/畫(huà)像都用的上舷胜。
2.4 樣本數(shù)據(jù)
從機(jī)器學(xué)習(xí)理論和實(shí)踐效果來(lái)看娩践,有監(jiān)督的學(xué)習(xí)比無(wú)監(jiān)督的學(xué)習(xí)在效果、解釋性烹骨、評(píng)估的方面都有明顯的優(yōu)勢(shì)翻伺,所以在標(biāo)簽挖掘的過(guò)程中,使用較多的還是有監(jiān)督的學(xué)習(xí)方法沮焕。所以除了上面說(shuō)的標(biāo)識(shí)與特征方面的問(wèn)題吨岭,樣本問(wèn)題也是用戶(hù)建模過(guò)程中的一個(gè)大問(wèn)題。
樣本缺失主要是只需要建模的標(biāo)簽非常多峦树,只有少數(shù)種類(lèi)的標(biāo)簽有樣本辣辫;
樣本少是只有些樣本數(shù)據(jù)獲取成本比較高,有些只有幾百個(gè)幾千個(gè)樣本魁巩;
單樣本問(wèn)題是只在一些場(chǎng)景下急灭,只有正樣本沒(méi)有負(fù)樣本。
針對(duì)上述是哪個(gè)問(wèn)題谷遂,主要用了找葬馋、轉(zhuǎn)、試三種方式來(lái)解決肾扰。
樣本問(wèn)題:首先找畴嘶,通過(guò)問(wèn)卷的方式,內(nèi)部員工數(shù)據(jù)集晚,人工標(biāo)注以及用戶(hù)注冊(cè)服務(wù)提交的數(shù)據(jù)窗悯;第二條路是“轉(zhuǎn)”,一些問(wèn)題進(jìn)行轉(zhuǎn)換甩恼,變成可以按時(shí)間切分的預(yù)測(cè)問(wèn)題蟀瞧,可以按時(shí)間的先后順序來(lái)自動(dòng)標(biāo)注樣本沉颂,如用戶(hù)偏好類(lèi)問(wèn)題轉(zhuǎn)換成用現(xiàn)在預(yù)測(cè)未來(lái)的問(wèn)題,用點(diǎn)擊/購(gòu)買(mǎi)等行為作為標(biāo)注悦污,這樣就可以直接按時(shí)間段標(biāo)注樣本铸屉;對(duì)于小樣本,單樣本的問(wèn)題切端,主要是“試”彻坛,試驗(yàn)論文中比較好的一些學(xué)習(xí)方法。?
2.5 標(biāo)簽建模
前面用整體上描述了用戶(hù)建模遇到的一些問(wèn)題踏枣,下面具體介紹標(biāo)簽挖掘過(guò)程中涉及的一些問(wèn)題和做法昌屉,將從建模方法和建模實(shí)例兩個(gè)角度來(lái)展開(kāi)說(shuō)明。
2.5.1建模方法
標(biāo)簽建模除了涉及算法模型的選擇調(diào)優(yōu)還涉及到大量的系統(tǒng)工程方面的問(wèn)題茵瀑,一方面因?yàn)樯婕暗酱罅繕?biāo)簽的數(shù)據(jù)更新间驮,特征數(shù)據(jù)更新,標(biāo)簽質(zhì)量監(jiān)控马昨,特征數(shù)據(jù)質(zhì)量監(jiān)控以及新標(biāo)簽的開(kāi)發(fā)等竞帽。
以美團(tuán)為例,介紹下標(biāo)簽建模系統(tǒng)框架方面的一些積累和經(jīng)驗(yàn)鸿捧。
離線標(biāo)簽生產(chǎn)平臺(tái)簡(jiǎn)介
存儲(chǔ)層主要由HDFS屹篓、MYSQL、S3等基礎(chǔ)存儲(chǔ)服務(wù)構(gòu)成匙奴,HDFS用于存儲(chǔ)特征數(shù)據(jù)堆巧,訓(xùn)練數(shù)據(jù)等大規(guī)模數(shù)據(jù),mysql和S3用于存儲(chǔ)一些配置文件泼菌、資源文件谍肤。
計(jì)算資源主要包括hiv、spark灶轰,用于特征抽取谣沸,變換等處理操作,平臺(tái)的模型主要封裝了一些開(kāi)源的機(jī)器學(xué)習(xí)庫(kù)笋颤。
整個(gè)挖掘流程分為四個(gè)部分:特征庫(kù)/樣本庫(kù)乳附,特征定制、模型構(gòu)建和模型發(fā)布伴澄,特征庫(kù)和樣本庫(kù)主要用于從海量的公共特征庫(kù)中選擇出對(duì)建模有幫助的特征赋除,用于模型構(gòu)建。模型發(fā)布模塊支持將訓(xùn)練好的模型按照特征的一些格式進(jìn)行發(fā)布非凌,這些格式有標(biāo)準(zhǔn)的預(yù)測(cè)模型標(biāo)記語(yǔ)言举农,用戶(hù)自定義模型等。整個(gè)系統(tǒng)對(duì)特征和模型預(yù)測(cè)結(jié)果都有監(jiān)控敞嗡,以此保證特征的質(zhì)量和線上數(shù)據(jù)的可靠性颁糟。
標(biāo)簽生產(chǎn)平臺(tái)將特征庫(kù)航背、特征處理、特征監(jiān)控棱貌、樣本庫(kù)玖媚、模型訓(xùn)練、模型預(yù)測(cè)婚脱、標(biāo)簽質(zhì)量監(jiān)控等模塊進(jìn)行了有機(jī)的整合今魔。
標(biāo)簽挖掘過(guò)程中的常用算法
從以上眼花繚亂的算法中,可以發(fā)現(xiàn)障贸,標(biāo)簽的歸類(lèi)往往不唯一错森,例如“用戶(hù)品類(lèi)偏好”,可以用策略打分簡(jiǎn)單的統(tǒng)計(jì)來(lái)處理篮洁,也可以按高維偏好來(lái)進(jìn)行處理涩维,還可以按分類(lèi)來(lái)處理,面對(duì)多樣的標(biāo)簽與多重的問(wèn)題嘀粱,扣緊實(shí)際的需求場(chǎng)景激挪,進(jìn)行場(chǎng)景設(shè)定和具體問(wèn)題限制,往往能夠?qū)?wèn)題簡(jiǎn)化很多锋叨,而且取得不錯(cuò)的效果,至于設(shè)計(jì)宛篇,從隨時(shí)間經(jīng)驗(yàn)來(lái)看標(biāo)簽的建模同樣遵循奧卡姆剃刀定律娃磺,簡(jiǎn)單方法,簡(jiǎn)單模型總是有不錯(cuò)的收獲叫倍,同事可以為后續(xù)優(yōu)化迭代提供依據(jù)和參照偷卧。
另一方面,不同的模型會(huì)有不同的假設(shè)條件和適合的場(chǎng)景吆倦,如適合高稀疏場(chǎng)景的因子分解機(jī)/場(chǎng)感知因子分解機(jī)听诸,適合圖像語(yǔ)音場(chǎng)景的卷積神經(jīng)網(wǎng)絡(luò)/循環(huán)神經(jīng)網(wǎng)絡(luò)。
建模實(shí)例
基于規(guī)則的標(biāo)簽挖掘:最簡(jiǎn)單的挖掘方法莫過(guò)于基本規(guī)則的標(biāo)簽挖掘蚕泽,優(yōu)點(diǎn)是如果樣本很少晌梨,但是先驗(yàn)知識(shí)多,規(guī)則的方法往往是一種非常不錯(cuò)的選擇须妻,即便樣本有了之后仔蝌,這些規(guī)則也能作為人工特征加入模型提升預(yù)測(cè)模型的效果,實(shí)際上荒吏,基于決策樹(shù)的模型本質(zhì)上也是大量自動(dòng)學(xué)習(xí)的規(guī)則組合而成的結(jié)果敛惊。
樣本明確的標(biāo)簽挖掘:可以用監(jiān)督學(xué)習(xí)的方法建立預(yù)測(cè)模型,例如注冊(cè)用戶(hù)的性別绰更。
小樣本問(wèn)題及單樣本數(shù)據(jù)挖掘:除了上述兩種常見(jiàn)的情況瞧挤,另一種是小樣本與單樣本問(wèn)題的標(biāo)簽挖掘锡宋,多數(shù)情況下樣本不好獲取或者只有少數(shù)的正樣本,通過(guò)算法試驗(yàn)解決類(lèi)似問(wèn)題特恬,LU learning执俩。主要原理,是對(duì)未標(biāo)注樣本進(jìn)行預(yù)測(cè)鸵鸥,將預(yù)測(cè)結(jié)果中置信度較高的樣本加入已標(biāo)注樣本奠滑,依次迭代直到符合要求產(chǎn)出模型。
用戶(hù)實(shí)時(shí)標(biāo)簽:以上兩種主要是離線標(biāo)簽的計(jì)算妒穴,優(yōu)點(diǎn)是資源和時(shí)間宋税,但是對(duì)用戶(hù)實(shí)時(shí)意圖和消費(fèi)場(chǎng)景進(jìn)行刻畫(huà)就力不從心。
實(shí)時(shí)標(biāo)簽舉例-用戶(hù)常駐城市預(yù)測(cè):美團(tuán)的一些酒店業(yè)務(wù)讼油,都是以用戶(hù)常駐為重要基礎(chǔ)數(shù)據(jù)杰赛。考慮到選取活躍用戶(hù)作為樣本訓(xùn)練和預(yù)測(cè)可能會(huì)存在差異矮台,因此通過(guò)隨機(jī)抽取到用戶(hù)進(jìn)行電話回訪的方式來(lái)收集樣本乏屯,經(jīng)過(guò)電話回訪和問(wèn)卷調(diào)查,收集的樣本清晰可用的有600多個(gè)瘦赫。
根據(jù)收集到的數(shù)據(jù)辰晕,可以得到二元組(用戶(hù),城市)确虱,這里的城市是用戶(hù)常駐城市含友,將這些樣本作為正樣本,同時(shí)采用K個(gè)該用戶(hù)相關(guān)的其他城市作為負(fù)樣本校辩,例如將用戶(hù)手機(jī)歸屬地窘问,瀏覽或者消費(fèi)國(guó)的城市,定位過(guò)的城市利用規(guī)則進(jìn)行打分宜咒,將分?jǐn)?shù)排名靠前的K個(gè)城作為該用戶(hù)的負(fù)樣本惠赫。