一、用戶畫像簡介
畫像是一種人類可理解的、機(jī)器可讀寫的,對(duì)用戶的結(jié)構(gòu)化描述。它不僅可以提供個(gè)性化服務(wù),還在企業(yè)的戰(zhàn)略決策和商業(yè)分析中發(fā)揮了重要作用。
1.畫像的分類
畫像可以根據(jù)數(shù)據(jù)來源分為社會(huì)通識(shí)類和領(lǐng)域知識(shí)類。社會(huì)通識(shí)類畫像又可以按照時(shí)間維度劃分成靜態(tài)類和動(dòng)態(tài)類,最常見的靜態(tài)類社會(huì)通識(shí)畫像包含人口統(tǒng)計(jì)學(xué)特征,比如性別,戶籍,畢業(yè)學(xué)校等,這些內(nèi)容在相當(dāng)長一段時(shí)間窗口里都是相對(duì)靜態(tài)的,除了畫像用到它,人口統(tǒng)計(jì)學(xué)、人類學(xué)和社會(huì)學(xué)當(dāng)中也常會(huì)用到。動(dòng)態(tài)社會(huì)通識(shí)類畫像則更為重要,也稱為人生階段畫像,舉個(gè)電商的例子,人的收入會(huì)隨著職業(yè)發(fā)展不斷變化,其購物傾向也會(huì)發(fā)生變化,所以這些人生階段的畫像是非常有實(shí)用價(jià)值的。
除了上述通識(shí)類畫像,企業(yè)內(nèi)部可能更多的是去構(gòu)建領(lǐng)域知識(shí)類畫像。領(lǐng)域知識(shí)類畫像從時(shí)間的維度上面可以分成半靜態(tài)和動(dòng)態(tài),進(jìn)一步可細(xì)分為長期性、周期性、短期性和未來屬性的畫像,這些時(shí)間維度畫像又和概念領(lǐng)域是糾纏在一起的,概念領(lǐng)域包含了行為模型、興趣模型和意圖模型。
行為模型主要是跟蹤用戶周期性行為,比如用戶每天早上通勤時(shí)間會(huì)做什么、晚上下班以后會(huì)做什么、周中工作日會(huì)做什么、周末會(huì)做什么等一些周期性行為。興趣模型則是對(duì)領(lǐng)域知識(shí)內(nèi)的標(biāo)簽進(jìn)行一定的聯(lián)合建模與排序,比如用戶和APP 等平臺(tái)產(chǎn)品進(jìn)行交互后可以得到一些操作日志,日志可以關(guān)聯(lián)解析出結(jié)構(gòu)化、標(biāo)簽化的一些數(shù)據(jù),我們可以把它們分門別類,同時(shí)賦予一定的權(quán)重,最終排序形成一定的興趣畫像。需要注意的是意圖模型更多的是未來式的,是對(duì)用戶未來意圖的預(yù)測(cè)。但是在新用戶還沒有進(jìn)行交互的時(shí)候,如何提前預(yù)知其可能的意圖呢?這個(gè)問題就更偏向于實(shí)時(shí)的、未來的畫像,也對(duì)畫像數(shù)據(jù)的整體基建結(jié)構(gòu)有著更高的要求。
2.用戶畫像基礎(chǔ)應(yīng)用架構(gòu)
了解了畫像的概念以及大致分類后,再來簡要介紹一下用戶畫像的基礎(chǔ)應(yīng)用框架。整個(gè)框架可以分為四個(gè)層次,首先是數(shù)據(jù)收集,其次是數(shù)據(jù)預(yù)處理,再次是基于這些處理好的數(shù)據(jù)進(jìn)行畫像的構(gòu)建和更新,最后就是應(yīng)用層,在應(yīng)用層定義一個(gè)使用協(xié)議,讓下游各種各樣的應(yīng)用能夠比較便捷地、快速地、高效地去使用畫像。
從這個(gè)框架中我們可以發(fā)現(xiàn),用戶畫像應(yīng)用以及用戶畫像算法需要懂得的內(nèi)容特別的廣、特別的雜,因?yàn)槲覀兠鎸?duì)的不只是簡單的、標(biāo)簽化的、文本類的數(shù)據(jù),還有各種多模態(tài)的數(shù)據(jù),可能是音頻、視頻或者圖文,需要通過各種預(yù)處理手段才能得到高質(zhì)量的數(shù)據(jù),然后構(gòu)建出更置信的畫像。這里會(huì)涉及到數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、知識(shí)圖譜、統(tǒng)計(jì)學(xué)習(xí)等各個(gè)方面。用戶畫像與傳統(tǒng)搜推廣算法的不同之處是,我們需要和領(lǐng)域?qū)<颐芮泻献?,才能不斷在迭代和循環(huán)中構(gòu)建更高質(zhì)量的畫像。
二、基于本體論(Ontology)的傳統(tǒng)用戶畫像
在對(duì)用戶畫像的概念有了大致了解后,接下來看一下在早期,非深度學(xué)習(xí)時(shí)代,用戶畫像是怎樣建立的。
在早期,用戶畫像主要依賴于知識(shí)圖譜,知識(shí)圖譜源于本體論(Ontology)的概念。而本體論,則屬于哲學(xué)范疇。首先本體論的定義和畫像的定義非常相似,就是人類可理解、機(jī)器可讀寫的一個(gè)概念系統(tǒng)。當(dāng)然這個(gè)概念系統(tǒng)本身的復(fù)雜程度可以非常高,它是由實(shí)體、屬性、關(guān)系和公理組成的?;?Ontology 的用戶畫像,它的好處是便于對(duì)用戶及內(nèi)容進(jìn)行分類,并且方便生產(chǎn)出可供人類直觀理解的數(shù)據(jù)報(bào)告,再根據(jù)報(bào)告的相關(guān)結(jié)論進(jìn)行決策,這也是為什么非深度學(xué)習(xí)時(shí)代會(huì)選擇這一技術(shù)形態(tài)。
接下來介紹一下 Ontology 中一些基本的概念。要構(gòu)建一個(gè) Ontology,首先要把領(lǐng)域知識(shí)進(jìn)行概念化,也就是構(gòu)造實(shí)體、屬性、關(guān)系和公理,并處理成機(jī)器可讀取的格式,比如 RDF 和 OWL。當(dāng)然,也可以用一些比較簡單的數(shù)據(jù)格式,甚至可能是把 Ontology 退化為關(guān)系數(shù)據(jù)庫或者圖數(shù)據(jù)庫可存儲(chǔ)讀寫和分析的格式。這種畫像的獲得方式,一般都是通過領(lǐng)域?qū)<覙?gòu)建,或者基于已有的一些行業(yè)標(biāo)準(zhǔn),去進(jìn)行豐富和細(xì)化。比如淘寶采用的商品標(biāo)簽體系其實(shí)也是借鑒了國家對(duì)于各種各樣的制造商品行業(yè)的公開標(biāo)準(zhǔn),并在這個(gè)基礎(chǔ)之上豐富和迭代的。
下圖是一個(gè)非常簡單的 Ontology 的例子,其中包含了 3 個(gè)節(jié)點(diǎn),圖里面的實(shí)體是文娛領(lǐng)域的一個(gè)興趣標(biāo)簽,比如在奈飛等平臺(tái)里面有很多電影,每個(gè)電影都有唯一的 ID 標(biāo)識(shí),然后每個(gè)電影又有自己的屬性,比如標(biāo)題、主演,這個(gè)實(shí)體同時(shí)又屬于犯罪題材系列,而犯罪系列又屬于動(dòng)作電影里的子類。我們根據(jù)該可視化的圖去寫成如下圖右邊的 RDF 文本文檔,在該文檔里除了前面我們能夠直觀理解的實(shí)體屬性關(guān)系外,還定義了一些公理,比如里邊約束了“has title”只能作用于電影這個(gè)基本概念域,如果有其他概念域,比如用電影的導(dǎo)演作為實(shí)體去構(gòu)建到 Ontology 里面的時(shí)候,電影導(dǎo)演就不能擁有“has title”的屬性了。以上就是關(guān)于本體論的一些簡單介紹。
在基于本體論去做用戶畫像的早期時(shí)代,會(huì)用類似 TF-IDF 的方法對(duì)構(gòu)建出來的結(jié)構(gòu)化標(biāo)簽計(jì)算權(quán)重。TF-IDF 以往主要用于搜索領(lǐng)域或文本主題領(lǐng)域,主要是對(duì)某個(gè)搜索詞或者主題詞的權(quán)重進(jìn)行計(jì)算,應(yīng)用到用戶畫像里面只需稍微加點(diǎn)限制和變形即可,比如上個(gè)例子中的 TF 就是去數(shù)一下用戶觀看該類標(biāo)簽的電影或者短視頻的數(shù)量,IDF 則是先統(tǒng)計(jì)用戶每一類標(biāo)簽下的觀影或短視頻數(shù)量和所有歷史觀看總量,再根據(jù)圖中公式計(jì)算 IDF 和 TF *IDF。TF-IDF 的計(jì)算方式非常直且效果穩(wěn)定,同時(shí)也可解釋、好用。
但它的缺點(diǎn)也很明顯:TF-IDF 對(duì)標(biāo)簽顆粒度非常敏感,但是又對(duì) Ontology 結(jié)構(gòu)本身是不敏感的,它可能會(huì)存在過度強(qiáng)調(diào)冷門興趣而導(dǎo)致平凡解的情況,比如用戶只偶爾看了某一個(gè)標(biāo)簽下的某一個(gè)視頻,TF 會(huì)非常小,IDF 會(huì)特別大,TF-IDF 有可能會(huì)變成一個(gè)和它的熱門興趣接近的值。更重要的是,我們需要隨著時(shí)間維度進(jìn)行更新、調(diào)整用戶畫像,而傳統(tǒng)的 TF-IDF 方法不太適合這種情況。因此,研究人員提出了新的方法,基于本體論的結(jié)構(gòu)化表達(dá)直接構(gòu)建用戶帶權(quán)重的畫像以滿足動(dòng)態(tài)更新的需求。
該算法從 Ontology 的葉子類目開始,使用用戶在對(duì)應(yīng)標(biāo)簽下的媒體消費(fèi)行為來更新權(quán)重,權(quán)重初始化為0,然后根據(jù)用戶行為定義的 fbehavior函數(shù)進(jìn)行更新。fbehavior函數(shù)會(huì)根據(jù)用戶消費(fèi)的不同程度,給予不同的隱式反饋信號(hào),例如電商領(lǐng)域的點(diǎn)擊、加購和下單,或者視頻領(lǐng)域的播放和完成度。同時(shí)對(duì)不同的用戶行為我們也會(huì)給予不同強(qiáng)度的反饋信號(hào),比如電商消費(fèi)行為里,下單>加購>點(diǎn)擊,視頻消費(fèi)里,更高的播放完成度、更高的播放時(shí)長等也會(huì)設(shè)置更強(qiáng)的 fbehavior值。
葉子類目標(biāo)簽權(quán)重更新后,需要更新父類權(quán)重,需要注意的是更新父類時(shí)需要定義一個(gè)小于1 的衰減系數(shù)。因?yàn)?,如圖所示,用戶可能對(duì)“戰(zhàn)爭”中的“二戰(zhàn)”這個(gè)子類目感興趣,但是對(duì)其他戰(zhàn)爭題材不一定感興趣。這個(gè)衰減系數(shù)可以作為一個(gè)超參數(shù)進(jìn)行自定義,這樣定義是強(qiáng)調(diào)每個(gè)子類興趣對(duì)父類貢獻(xiàn)的平等性,也可以用子類標(biāo)簽數(shù)的倒數(shù)來作為衰減系數(shù),這樣更多的強(qiáng)調(diào)小眾的興趣,比如某些大型父類節(jié)點(diǎn)包含的子類主題廣泛且關(guān)系不緊密,它們之間的受眾面取決于作品數(shù)量,通常情況下這種作品數(shù)量會(huì)非常非常多,衰減速度可以適當(dāng)設(shè)置快一點(diǎn),而較小的分類別標(biāo)簽可能是一些小眾興趣,作品也不多,子類主題間的關(guān)系會(huì)比較緊密,衰減速度可適當(dāng)設(shè)置小一點(diǎn)??傊?,我們可以根據(jù) Ontology 中定義的這些領(lǐng)域知識(shí)屬性來設(shè)定衰減系數(shù)。
以上方式可以做到結(jié)構(gòu)化標(biāo)簽的更新效果,也基本上能夠打平甚至超越 TF-IDF 效果,但是它缺少一個(gè)時(shí)間尺度屬性,即怎樣構(gòu)建一個(gè)對(duì)時(shí)間尺度更敏感的畫像。
我們首先想到可以對(duì)權(quán)重本身的更新去做進(jìn)一步調(diào)整。當(dāng)需要區(qū)分長短期用戶畫像時(shí),可以在權(quán)重上添加一個(gè)滑動(dòng)窗口,并定義一個(gè)時(shí)間衰減系數(shù) a (0-1之間),滑動(dòng)窗口的作用是只關(guān)注窗口期內(nèi)的用戶行為,對(duì)窗口前的進(jìn)行丟棄,原因是用戶的長期興趣也會(huì)隨著人生階段的變化而進(jìn)行緩慢變化,比如用戶可能會(huì)喜歡某一類題材的電影一兩年,之后就不喜歡了。
此外,大家也可能觀察到這個(gè)公式和帶動(dòng)量的 Adam 梯度更新方式有異曲同工之妙,我們通過調(diào)節(jié) a 的大小讓權(quán)重的更新在一定程度上更側(cè)重于歷史或者當(dāng)下。具體來說,當(dāng)給一個(gè)較小的 a 時(shí),會(huì)更側(cè)重于當(dāng)下,然后歷史積累會(huì)有較大的衰減。
以上的方法論都局限在用戶已經(jīng)接收到了的信息里,但我們通常情況下也會(huì)遇到大量的標(biāo)簽丟失的情況,以及用戶冷啟動(dòng)或者在用戶可能沒有接觸到這一類內(nèi)容但不代表用戶不喜歡的情況。在這些情況下就需要進(jìn)行興趣補(bǔ)全和興趣推斷了。
最基礎(chǔ)的方法就是借用推薦系統(tǒng)中的協(xié)同過濾進(jìn)行畫像補(bǔ)全,假設(shè)有一個(gè)標(biāo)簽矩陣,橫軸是用戶,縱軸是各個(gè)標(biāo)簽,這個(gè)超大規(guī)模矩陣?yán)锩娴脑鼐褪怯脩魧?duì)于這個(gè)標(biāo)簽的興趣,這些元素可以是 0 或 1,也可以是興趣權(quán)重。當(dāng)然也可以改造這個(gè)矩陣,使其適應(yīng)人口統(tǒng)計(jì)學(xué)的畫像,比如可以將標(biāo)簽表達(dá)成是否是學(xué)生,或者是否是職業(yè)者,或者哪種職業(yè)等,也可以用一種編碼方式去構(gòu)造這個(gè)矩陣,同樣也可以去應(yīng)用矩陣分解的方式去得到矩陣分解,然后補(bǔ)全缺失的特征值,這個(gè)時(shí)候優(yōu)化目標(biāo)如下圖中的公式。
在這個(gè)公式里可以看到,原矩陣為 M,補(bǔ)全矩陣為 X,外加一個(gè)約束,這個(gè)約束是希望數(shù)值不缺失的地方,X 和 M 是盡可能接近的,同時(shí)也希望 X 是一個(gè)低秩矩陣,因?yàn)槲覀兗僭O(shè)大量用戶的興趣是相似的,在這個(gè)相似用戶的假設(shè)下,標(biāo)簽矩陣一定是低秩的,最后對(duì)這個(gè)矩陣做一個(gè)正則化,完成非負(fù)矩陣分解的目標(biāo)。這個(gè)方法其實(shí)也可以用我們最熟悉的隨機(jī)梯度下降的方法去進(jìn)行求解。
當(dāng)然,除了以矩陣分解的方式進(jìn)行缺失屬性或興趣的推斷,也可以使用傳統(tǒng)機(jī)器學(xué)習(xí)的方法。還是假設(shè)相似的用戶會(huì)有相似的興趣,這時(shí)就可以用 KNN 分類或回歸的方式去進(jìn)行興趣推斷,具體做法為,建立用戶近鄰關(guān)系圖譜后,將用戶近 k 個(gè)近鄰里面最多的標(biāo)簽或者標(biāo)簽權(quán)重均值賦值給用戶缺失的屬性。近鄰關(guān)系圖可以是自己構(gòu)建的,也可以是現(xiàn)成的近鄰圖結(jié)構(gòu),比如社交網(wǎng)絡(luò)的用戶畫像,或者 B 端的企業(yè)畫像--企業(yè)圖譜。
以上就是關(guān)于 Ontology 構(gòu)建傳統(tǒng)畫像的介紹。傳統(tǒng)畫像構(gòu)建算法的價(jià)值在于其非常簡單、直接、易于理解,且容易實(shí)現(xiàn),同時(shí)其效果也不錯(cuò),因此并不會(huì)完全被更高階算法替代,尤其是當(dāng)我們需要對(duì)畫像進(jìn)行 debug 時(shí),這一類傳統(tǒng)算法會(huì)具有更大的便捷性。
三、畫像算法&深度學(xué)習(xí)
1.深度學(xué)習(xí)算法之于畫像算法的價(jià)值
進(jìn)入深度學(xué)習(xí)時(shí)代后,大家希望結(jié)合深度學(xué)習(xí)算法進(jìn)一步提升畫像算法的效果。深度學(xué)習(xí)之于畫像算法到底有哪些價(jià)值?
首先肯定是有更強(qiáng)大的用戶表征能力,在深度學(xué)習(xí)以及機(jī)器學(xué)習(xí)領(lǐng)域,有一個(gè)專門的門類--表征學(xué)習(xí),或者是 metric learning,這種學(xué)習(xí)方法可以幫助我們?nèi)?gòu)建非常強(qiáng)大的用戶表征。其次是更簡單的建模流程,我們可以利用深度學(xué)習(xí)端到端(end to end)的方式簡化建模流程,很多時(shí)候只需要構(gòu)造好特征,做一些特征工程,然后把神經(jīng)網(wǎng)絡(luò)當(dāng)成黑盒將特征輸入進(jìn)去,并在輸出端定義好標(biāo)簽或者其他的監(jiān)督信息,而無須關(guān)注其間的細(xì)節(jié)。
再次,深度學(xué)習(xí)在強(qiáng)大的表達(dá)能力基礎(chǔ)上,我們也在很多任務(wù)上面得到了更高的準(zhǔn)確度。接著,深度學(xué)習(xí)還可以將多模態(tài)的數(shù)據(jù)統(tǒng)一建模。傳統(tǒng)算法時(shí)代我們需要在數(shù)據(jù)預(yù)處理上耗費(fèi)大量精力,比如上文提到的對(duì)視頻類型標(biāo)簽提取需要非常復(fù)雜的預(yù)處理,先把視頻切斷,然后提取主題,再識(shí)別出其中的人臉,逐一打上對(duì)應(yīng)的標(biāo)簽,最后再去構(gòu)建畫像。有了深度學(xué)習(xí)后,想要一個(gè)統(tǒng)一的用戶或 item 表達(dá)時(shí),可以端到端直接處理多模態(tài)的數(shù)據(jù)。
最后,我們希望在迭代中盡可能地降壓成本。前文中提到畫像算法的迭代和搜推廣等其他類目的算法迭代的不同之處是需要很多的人工參與進(jìn)來。有些時(shí)候最可靠的數(shù)據(jù)就是人去標(biāo)注的,或者是通過問卷等方式收取來的數(shù)據(jù),這些數(shù)據(jù)的獲取成本是相當(dāng)高的,那么如何以更低成本獲得更有標(biāo)注價(jià)值的數(shù)據(jù)呢?這個(gè)問題也在深度學(xué)習(xí)時(shí)代有了更多的思路和解決方案。
2.基于深度學(xué)習(xí)的結(jié)構(gòu)化標(biāo)簽預(yù)測(cè)
C-HMCNN 是對(duì) Ontology 結(jié)構(gòu)化標(biāo)簽進(jìn)行預(yù)測(cè)的經(jīng)典深度學(xué)習(xí)方法,它并不是一個(gè) fancy 的網(wǎng)絡(luò)結(jié)構(gòu),而是定義了一種適合標(biāo)簽,尤其是適合結(jié)構(gòu)化的標(biāo)簽分類或預(yù)測(cè)的算法框架。
其核心是把層次化的結(jié)構(gòu)化標(biāo)簽拍平再預(yù)測(cè),如下圖右側(cè)所示,該網(wǎng)絡(luò)直接給出 A/B/C 三個(gè)標(biāo)簽的預(yù)測(cè)概率,不需要考慮結(jié)構(gòu)的層次、深度等。它的 Loss 公式設(shè)計(jì)也能夠盡可能地懲罰違反結(jié)構(gòu)化標(biāo)簽的結(jié)果,公式首先對(duì)葉子類目 B 和 C 用經(jīng)典的交叉熵 Loss,對(duì)父類類目則用 max(yBpB,yCpC)來約束結(jié)構(gòu)信息,只有在子類類目被預(yù)測(cè)為真時(shí)才預(yù)測(cè)父類類目 A,用 1-max(pB,pC)來表達(dá),當(dāng)父類類目標(biāo)簽為假時(shí),強(qiáng)制子類類目的預(yù)測(cè)盡可能也接近于 0,從而實(shí)現(xiàn)對(duì)結(jié)構(gòu)化標(biāo)簽的約束。這樣建模的好處在于計(jì)算 Loss 非常簡單,它對(duì)所有的標(biāo)簽一視同仁地進(jìn)行預(yù)測(cè),幾乎可以無視標(biāo)簽樹深度信息。
最后要提到的一點(diǎn)就是這個(gè)方法要求每個(gè)標(biāo)簽都是 0 或 1,比如 PB只代表用戶喜歡或者不喜歡,而不能設(shè)置成一個(gè)多分類,因?yàn)槎喾诸惖?LOSS 約束會(huì)比較難成立,所以該模型建模時(shí)相當(dāng)于把所有標(biāo)簽全部拍平了,然后進(jìn)行 0、1 預(yù)測(cè)。拍平可能帶來的一個(gè)問題是,當(dāng)標(biāo)簽樹結(jié)構(gòu)里父類標(biāo)簽有海量子標(biāo)簽時(shí)就會(huì)面臨一個(gè)超大規(guī)模的多標(biāo)簽分類問題,一般的處理方式是用一些手段提前過濾掉用戶很可能不感興趣的標(biāo)簽。
3.基于表征學(xué)習(xí)的 lookalike
在用戶畫像的應(yīng)用環(huán)節(jié),lookalike 這一思想經(jīng)常被用到。在畫像下游應(yīng)用可以用 lookalike 去做廣告潛在用戶群的定向,也可以基于種子用戶利用 lookalike找到一些缺失目標(biāo)屬性的用戶,然后把這些用戶相對(duì)應(yīng)的缺失屬性用種子用戶去進(jìn)行替換或表達(dá)。
Lookalike 的應(yīng)用最需要的是一個(gè)強(qiáng)大的表征學(xué)習(xí)器,如下圖所示,最常用的有三類表征建模方式。
第一種是多分類方式,如果我們有多種分類標(biāo)簽畫像數(shù)據(jù),可以在有監(jiān)督信號(hào)的情況下學(xué)到更有針對(duì)性的表征,針對(duì)我們想要去預(yù)測(cè)的某一類標(biāo)簽進(jìn)行預(yù)測(cè)所訓(xùn)練得到的表征對(duì)于定向的標(biāo)簽缺失預(yù)測(cè)非常有價(jià)值。
第二種是 AE( auto encoder) 范式,模型結(jié)構(gòu)是一個(gè)沙漏形式,不需要關(guān)注監(jiān)督信息,而只需要找到一種 encoding 模式,先把用戶 encoding 出來,然后在中間細(xì)腰的地方做信息壓縮并得到表征,這種范式在沒有足夠的監(jiān)督數(shù)據(jù)時(shí)比較靠譜。
第三種是圖范式,目前 GNN 和 GCN 之類的圖網(wǎng)絡(luò)的應(yīng)用領(lǐng)域越來越廣,在畫像里面也一樣,而且 GNN 可以基于最大似然的方法進(jìn)行無監(jiān)督訓(xùn)練,也可以在有標(biāo)簽信息的情況下進(jìn)行有監(jiān)督訓(xùn)練,并且優(yōu)于多分類范式。因?yàn)閳D結(jié)構(gòu)除了表達(dá)標(biāo)簽信息以外,還可以 embedding 進(jìn)去更多圖結(jié)構(gòu)的信息。當(dāng)沒有顯示的圖結(jié)構(gòu)的情況下,也有很多方式去構(gòu)建圖,比如電商領(lǐng)域的知名推薦算法 swing i2i,根據(jù)用戶的共同購買或者共同觀看記錄構(gòu)建二部圖,這樣的圖結(jié)構(gòu)也是有非常豐富的語義信息的,可以幫助我們學(xué)到更好的用戶表征。當(dāng)有了豐富的表征以后,我們可以選定一些種子用戶去用最近鄰檢索進(jìn)行擴(kuò)圈,然后通過擴(kuò)圈擴(kuò)到的用戶進(jìn)行丟失標(biāo)簽的推斷,或者 targeting。
在小規(guī)模的應(yīng)用上面去做最近鄰檢索是很容易的,但是在超大規(guī)模的數(shù)據(jù)上面,比如有幾億月活用戶的大平臺(tái)上面,對(duì)這些用戶進(jìn)行 KNN 檢索是一個(gè)非常耗時(shí)的事情,因此目前最常用的方式是近似最近鄰檢索,其特點(diǎn)是用精度換效率,在保證接近 99% 精度的同時(shí)把檢索的時(shí)間壓縮到原來暴力檢索的 1/ 1000,1/ 10000,甚至 1/ 100000。
目前近似最近鄰檢索的有效方法都是基于圖索引的向量檢索算法,這些方法在當(dāng)下的大模型時(shí)代被重新推向了一個(gè)高潮,也就是前段時(shí)間大模型里面最火的一個(gè)概念-- RAG(檢索增強(qiáng)生成),檢索增強(qiáng)對(duì)文本檢索采用的核心手段就是向量檢索,最常用的方法就是基于圖的向量檢索,最廣泛應(yīng)用到的方法有 HNSW、NSG 和 SSG,后兩者的原版開源代碼和實(shí)現(xiàn)鏈接也放在下圖中。
4.基于主動(dòng)學(xué)習(xí)的畫像迭代
在進(jìn)行畫像迭代的過程中,仍然有一些盲區(qū)是無法覆蓋的,比如有一些低消費(fèi)行為的用戶畫像還是沒法很好地定位,最后很多方法還是會(huì)回退到人工收集方式。然而,我們有那么多低活用戶,如果可以只在其中選擇更有價(jià)值、有代表性的用戶去進(jìn)行標(biāo)注,就可以收集到更有價(jià)值的數(shù)據(jù),因此我們引入了主動(dòng)學(xué)習(xí)框架,主動(dòng)學(xué)習(xí)加上不確定學(xué)習(xí)實(shí)現(xiàn)低成本的畫像迭代。
首先基于已有的標(biāo)注的數(shù)據(jù),訓(xùn)練一個(gè)帶不確定性預(yù)測(cè)的分類模型,使用的方法是概率學(xué)習(xí)領(lǐng)域里面的經(jīng)典方法--貝葉斯網(wǎng)絡(luò)。貝葉斯網(wǎng)絡(luò)的特點(diǎn)是預(yù)測(cè)的時(shí)候不僅可以給出概率,同時(shí)還可以預(yù)測(cè)出它對(duì)于這個(gè)預(yù)測(cè)結(jié)果的不確定性。
貝葉斯網(wǎng)絡(luò)非常容易實(shí)現(xiàn),如下圖右側(cè)所示,在原有的網(wǎng)絡(luò)結(jié)構(gòu)上面增加一些特殊層就可以了,我們?cè)谶@些網(wǎng)絡(luò)中間增加一些 drop out 層,去隨機(jī)丟棄前饋網(wǎng)絡(luò)的一些參數(shù)。貝葉斯網(wǎng)絡(luò)包含多個(gè)子網(wǎng)絡(luò),其中每一個(gè)網(wǎng)絡(luò)參數(shù)完全相同,但由于 dropout 層的特性,在隨機(jī)丟棄時(shí)每個(gè)網(wǎng)絡(luò)參數(shù)被隨機(jī)丟棄的可能性是不一樣的,在最后訓(xùn)練好網(wǎng)絡(luò)進(jìn)行推理的時(shí)候也保留 drop out,這和 drop out 在其他領(lǐng)域的應(yīng)用方式不一樣。其他領(lǐng)域只有在訓(xùn)練的時(shí)候 drop out,在推理的時(shí)候會(huì)應(yīng)用全部參數(shù),只是在最后計(jì)算 logit 和概率值時(shí),對(duì) drop out 帶來的一個(gè)預(yù)測(cè)值的 scale 倍增情況做一個(gè)還原。
貝葉斯網(wǎng)絡(luò)不同的地方是,在前饋推理的時(shí)候要保留所有的 drop out 隨機(jī)性,這樣每一個(gè)網(wǎng)絡(luò)都會(huì)給出這個(gè)標(biāo)簽的一個(gè)不同的概率,然后對(duì)這一組概率求出均值,這個(gè)均值其實(shí)就是一種投票的結(jié)果,也是我們想要預(yù)測(cè)的概率值,同時(shí)對(duì)這一組概率值做一個(gè)方差的計(jì)算用來表達(dá)預(yù)測(cè)的不確定度。當(dāng)一個(gè)樣本經(jīng)歷了不同的 drop out 參數(shù)表達(dá)以后,最后得到的概率值是不一樣的,概率值方差越大,代表學(xué)習(xí)過程中的概率確定性越小。最后就可以對(duì)不確定度高的標(biāo)簽預(yù)測(cè)樣本進(jìn)行人工標(biāo)注,對(duì)確定度高的標(biāo)簽則直接采納機(jī)器打標(biāo)的結(jié)果。然后再不斷回到主動(dòng)學(xué)習(xí)框架的第一步進(jìn)行循環(huán),以上就是主動(dòng)學(xué)習(xí)的基本框架。
5.基于大模型世界知識(shí)的畫像標(biāo)注/預(yù)測(cè)
在大模型時(shí)代,還可以引入大模型的世界知識(shí)進(jìn)行畫像標(biāo)注。下圖舉了兩個(gè)簡單例子,左邊是用大模型對(duì)用戶畫像進(jìn)行標(biāo)注,將用戶的觀影歷史按照一定序列組織起來,形成一個(gè) prompt,會(huì)看到大模型能給出非常詳盡的分析,比如該用戶可能喜歡什么類型、什么導(dǎo)演、什么演員等等。右邊是大模型對(duì)一個(gè)商品的標(biāo)題進(jìn)行分析,給出商品標(biāo)題讓大模型去推測(cè)其屬于哪些類目。
到這里我們發(fā)現(xiàn)一個(gè)很大的問題是大模型的輸出是非結(jié)構(gòu)化的,是比較原始的文本表達(dá),還需要一些后處理的過程。比如需要對(duì)大模型的輸出進(jìn)行實(shí)體識(shí)別、關(guān)系識(shí)別和規(guī)則挖掘、實(shí)體對(duì)齊等等,而這些后處理又屬于知識(shí)圖譜或者 Ontology 范疇里面的基礎(chǔ)應(yīng)用規(guī)則。
為什么用大模型的世界知識(shí)做畫像標(biāo)注會(huì)有更好的效果,甚至可以取代一部分人工?因?yàn)榇竽P褪窃趶V泛的開放網(wǎng)絡(luò)的知識(shí)上進(jìn)行訓(xùn)練的,而推薦系統(tǒng)、搜索引擎等只擁有自己封閉平臺(tái)里的用戶和商品庫之間的一些歷史交互數(shù)據(jù),這些數(shù)據(jù)實(shí)際上是一些 ID 化的系統(tǒng)日志,其中很多相互關(guān)聯(lián)的關(guān)系很難通過現(xiàn)有平臺(tái)里的封閉知識(shí)進(jìn)行詮釋,但大模型的世界知識(shí)可以幫我們填補(bǔ)封閉系統(tǒng)所缺少的這部分知識(shí),從而幫助我們更好地進(jìn)行畫像的標(biāo)注或者預(yù)測(cè)。大模型甚至可以理解為一種高質(zhì)量的對(duì)于世界本身的概念系統(tǒng)的抽象刻畫,這些概念系統(tǒng)非常適合去做畫像和標(biāo)簽體系。
四、總結(jié)與展望
最后簡單總結(jié)一下用戶畫像目前存在的局限,以及未來的發(fā)展方向。
首要問題就是如何進(jìn)一步提高現(xiàn)有畫像的準(zhǔn)確度。阻礙準(zhǔn)確度提升的因素有以下幾個(gè)方面,首先是從虛擬 ID 到自然人的統(tǒng)一,現(xiàn)實(shí)中一個(gè)用戶有多個(gè)設(shè)備去登錄同一個(gè)賬號(hào),也可能有多個(gè)端口、多個(gè)渠道登錄,比如用戶登錄不同的 APP,但這些 APP 同屬于同一個(gè)集團(tuán),我們是否可以在集團(tuán)內(nèi)部進(jìn)行自然人的拉通,把所有的虛擬 ID 映射到同一個(gè)人,然后把它識(shí)別出來。
第二是對(duì)于家庭共享賬戶的主體人識(shí)別問題。這個(gè)問題在視頻領(lǐng)域非常常見,尤其是長視頻領(lǐng)域,我們經(jīng)常會(huì)遇見一些 badcase,比如用戶明明是一個(gè) 40 歲左右的成年人,推薦的卻全是動(dòng)畫片,其實(shí)是一個(gè)家庭共用一個(gè)賬號(hào),每個(gè)人的興趣是不一樣的。針對(duì)這種情況,能否通過一些手段識(shí)別出當(dāng)下的時(shí)間和行為模式,從而實(shí)時(shí)地、快速地去更新畫像,然后確定當(dāng)前的主體人到底是誰,再針對(duì)性地提供個(gè)性化的服務(wù)。
第三是多場景聯(lián)動(dòng)的實(shí)時(shí)意圖預(yù)測(cè)。我們發(fā)現(xiàn)平臺(tái)發(fā)展到一定階段,其搜推廣畫像還是比較割裂的,比如有時(shí)候一個(gè)用戶剛剛有踏入過推薦場景,現(xiàn)在準(zhǔn)備搜索,我們是否可以根據(jù)剛剛推薦場景的實(shí)時(shí)意圖給出一個(gè)更好的搜索推薦詞,或者剛搜過一個(gè)東西,能否根據(jù)這個(gè)意圖擴(kuò)散,預(yù)測(cè)出用戶可能想要看到的一些其他類目的東西,去做意圖預(yù)測(cè)。
從封閉式的 Ontology 到開放式 Ontology 的過渡也是畫像領(lǐng)域亟待解決的一個(gè)問題。在之前很長一段時(shí)間里采用的是一些比較固化的行業(yè)標(biāo)準(zhǔn)來定義 Ontology,但現(xiàn)在很多系統(tǒng)的 Ontology 是完全開放增量更新的,比如短視頻平臺(tái),短視頻的各種各樣的標(biāo)簽本身是用戶和平臺(tái)在共同創(chuàng)作下不停自發(fā)生長、爆發(fā)的狀態(tài),有很多熱詞、熱門標(biāo)簽,是隨著時(shí)間的推進(jìn)不停涌現(xiàn)的。如何在開放式的 Ontology 上提升畫像的時(shí)效性,去掉噪聲,然后去更多地探索和利用一些手段幫助我們提升畫像的準(zhǔn)確度,也是一個(gè)值得研究的問題。
最后,在深度學(xué)習(xí)時(shí)代,如何在畫像算法里面,尤其是應(yīng)用了深度學(xué)習(xí)的畫像算法里面提升可解釋性,以及如何更好地讓大模型在畫像算法中落地,這些都將是未來研究的方向。
以上就是本次分享的內(nèi)容,謝謝大家!
五、Q&A
Q1:畫像的處理和實(shí)際應(yīng)用鏈路非常長,實(shí)際業(yè)務(wù)中采用 AB test 的驗(yàn)收效果可能會(huì)有很多問題,請(qǐng)問傅聰老師在畫像的 AB test 方面有什么經(jīng)驗(yàn)分享嗎?
A1:畫像的應(yīng)用鏈路確實(shí)比較長。如果你的畫像主要服務(wù)對(duì)象是算法,那確實(shí)從畫像的精確度提升到傳導(dǎo)下游的這些模型是有一個(gè)精確度的損失 gap。我其實(shí)不是特別建議做畫像 AB test,我覺得可能更好的一個(gè)應(yīng)用方式是去找運(yùn)營人員,在用戶圈選還有廣告定投等這種偏運(yùn)營性質(zhì)的一些應(yīng)用場景,比如大促的優(yōu)惠券定向投放等場景上進(jìn)行 AB Test。因?yàn)樗鼈兊男Ч侵苯踊谀愕漠嬒駚硎┘佑绊懙?,所以可以考慮這種鏈路比較短的應(yīng)用方合作線上 AB test。另外,我可能會(huì)建議除了 AB test 以外,也考慮一下另外一種 test 方式--交叉檢驗(yàn),給一個(gè)用戶同時(shí)去推薦基于優(yōu)化前后畫像的排序結(jié)果,然后讓用戶去評(píng)估哪個(gè)更好。比如說我們現(xiàn)在可以看到的某些大模型廠商會(huì)讓模型輸出兩個(gè)結(jié)果,然后讓用戶去決定哪個(gè)大模型產(chǎn)出的文本更好。其實(shí)類似這種交叉檢驗(yàn),我覺得可能效果更好,而且它和畫像本身是直接關(guān)聯(lián)的。
Q2:貝葉斯網(wǎng)絡(luò)測(cè)試集上也有 drop out?
A2:不是說在測(cè)試集上有 drop out,而是說我們?cè)跍y(cè)試推理的時(shí)候,依然會(huì)將網(wǎng)絡(luò)里面的 drop out 的隨機(jī)特性保留下來進(jìn)行隨機(jī)推理。
Q3:考慮隱私安全問題,在客戶數(shù)據(jù)不能導(dǎo)出的前提下,如何利用大模型的成果。
A3:很坦誠地說,目前業(yè)界沒有一個(gè)非常好的方案。但是可能存在兩種方式,一種是考慮互信的第三方去做本地化大模型的推理部署。另外一種,也是最近的一種新概念叫做聯(lián)邦網(wǎng)絡(luò),不是聯(lián)邦學(xué)習(xí),可以去看看聯(lián)邦網(wǎng)絡(luò)里所包含的一些可能性。
Q4:與大模型結(jié)合,除了標(biāo)注方面還有其他的結(jié)合可以提一下嗎?
A4:除了標(biāo)注方面,還有用戶的一些分析和推理。可以基于現(xiàn)有的畫像,推測(cè)用戶的下一次的意圖,或者說把大量的用戶數(shù)據(jù)匯集起來,用大模型的方式去分析一些地區(qū)性的,或其他約束限制下的用戶模式。這個(gè)其實(shí)也是有一些開源 Demo,可以去探索一下這個(gè)方向。
源自:DataFunTalk