
基于用戶(hù)行為分析建立用戶(hù)偏好模型
我們經(jīng)常將個(gè)性化推薦的思想簡(jiǎn)單地抽象為:通過(guò)用戶(hù)的行為推測(cè)出用戶(hù)的興趣,從而給用戶(hù)推薦滿(mǎn)足他們興趣的物品。那我們其實(shí)就是要通過(guò)用戶(hù)行為分析建立一個(gè)用戶(hù)偏好(偏好即興趣)模型,模型中包含各個(gè)用戶(hù)的一個(gè)或更多個(gè)偏好。
插敘一段
像「用戶(hù)行為」,「用戶(hù)興趣」這樣的詞,大多數(shù)人都有一個(gè)默認(rèn)的感知,甚至對(duì)于這種詞的理解可能已固化為常識(shí),所以我很少見(jiàn)到有文章使用這些詞時(shí)解釋它們。我感覺(jué)涉及到算法模型時(shí),對(duì)這些詞的不加限定的寬泛認(rèn)知就容易影響對(duì)算法模型的深入理解,會(huì)導(dǎo)致感知模糊卻不自知。因?yàn)椴煌藢?duì)這些詞的基本理解可能一致,但是拓展理解各不相同。本文會(huì)作出限定解釋?zhuān)冶疚乃動(dòng)脩?hù)行為都是指網(wǎng)絡(luò)(可以是電信網(wǎng)絡(luò),互聯(lián)網(wǎng))上的行為。
概念解釋
實(shí)體域
當(dāng)我們想基于用戶(hù)行為分析來(lái)建立用戶(hù)偏好模型時(shí),我們必須把用戶(hù)行為和興趣主題限定在一個(gè)實(shí)體域上。個(gè)性化推薦落實(shí)在具體的推薦中都是在某個(gè)實(shí)體域的推薦。比如對(duì)于閱讀網(wǎng)站,實(shí)體域包括所有的圖書(shū),我們可以稱(chēng)之為圖書(shū)域。其他還有,個(gè)性化音樂(lè)推薦,個(gè)性化電影推薦,個(gè)性化資訊推薦等。
用戶(hù)行為
用戶(hù)在門(mén)戶(hù)網(wǎng)站點(diǎn)擊資訊,評(píng)論資訊,在社交網(wǎng)站發(fā)布狀態(tài),評(píng)論狀態(tài),在電商網(wǎng)站瀏覽商品,購(gòu)買(mǎi)商品,點(diǎn)評(píng)商品,以及在其他類(lèi)型網(wǎng)站的種種行為都可是用戶(hù)行為。本文所指的用戶(hù)行為都是指用戶(hù)在某實(shí)體域上的行為。比如用戶(hù)在圖書(shū)域產(chǎn)生的行為有閱讀,購(gòu)買(mǎi),評(píng)分,評(píng)論等。
興趣主題
用戶(hù)的興趣維度,同樣是限定在某實(shí)體域的興趣,通??梢砸詷?biāo)簽的形式來(lái)表示。比如,對(duì)于圖書(shū)閱讀,興趣主題可以是「懸疑」,「科技」,「情感」等等分類(lèi)標(biāo)簽。值得一提的是,興趣主題,只是從用戶(hù)行為中抽象出來(lái)的興趣維度,并無(wú)統(tǒng)一標(biāo)準(zhǔn)。比如qq閱讀和豆瓣閱讀的圖書(shū)分類(lèi)標(biāo)簽大不一樣。而興趣維度的粒度也不固定,就像門(mén)戶(hù)網(wǎng)站有「新聞」,「體育」,「娛樂(lè)」等一級(jí)分類(lèi),而新聞下有「國(guó)內(nèi)」,「社會(huì)」,「國(guó)際」二級(jí)分類(lèi),娛樂(lè)下有「明星」,「星座」,「八卦」二級(jí)分類(lèi)。我們選取什么粒度的興趣空間取決于我們對(duì)用戶(hù)偏好模型的要求。
興趣空間
在同一層次上興趣維度的集合,比如豆瓣閱讀中,可以用「新上架」,「熱門(mén)」,「特價(jià)」,「免費(fèi)」來(lái)構(gòu)成一個(gè)興趣空間(當(dāng)然,如果使用這個(gè)興趣空間來(lái)表征用戶(hù)的興趣,就太粗了,這里只是假設(shè)),也可以用「小說(shuō)」,「幻想」,「計(jì)算機(jī)」,「科技」,「歷史」·····「美食」構(gòu)成一個(gè)興趣空間。這是兩種不同的分類(lèi)維度。如果將「新上架」也加入到后者集合里,就顯然有些莫名其妙。值得一提是,這也并非不可能,這取決于一個(gè)如何看待這個(gè)集合的問(wèn)題,如果不把它看作基于內(nèi)容的分類(lèi),而是圖書(shū)標(biāo)簽庫(kù),那么也是可行的,甚至利于建立更好地模型。本文后面我有提到。
用戶(hù)行為數(shù)據(jù)
項(xiàng)亮在他的《推薦系統(tǒng)實(shí)踐》的2.1節(jié)有詳細(xì)介紹。通常在經(jīng)過(guò)對(duì)行為日志的匯總處理后生成的比較容易理解的數(shù)據(jù)就是一份描述用戶(hù)行為的會(huì)話(huà)日志。這種日志記錄了用戶(hù)的各種行為,比如在圖書(shū)閱讀app中這些行為主要包括點(diǎn)擊,試讀,購(gòu)買(mǎi),閱讀(在本地app中,閱讀行為有可能追蹤不到),評(píng)分,評(píng)論。
建立用戶(hù)偏好模型
基于用戶(hù)行為分析建立用戶(hù)偏好模型的核心工作就是:將用戶(hù)的行為轉(zhuǎn)換為用戶(hù)的偏好。
我們采用矩陣運(yùn)算的思維方式,以圖書(shū)閱讀為例說(shuō)明。
下圖表示用戶(hù)(user)集合:
下圖表示圖書(shū)(item)集合:
那么用戶(hù)的行為矩陣可以表達(dá)為:
行表示用戶(hù),列表示圖書(shū),我們暫只考慮圖書(shū)的購(gòu)買(mǎi)行為,1表示用戶(hù)看過(guò)該圖書(shū),0表示用戶(hù)沒(méi)有看過(guò)該圖書(shū)。
如何將上述用戶(hù)行為矩陣轉(zhuǎn)化為用戶(hù)興趣矩陣(即行代表用戶(hù),列代表興趣維度),一種顯著的方法是我們先確定圖書(shū)與興趣維度的對(duì)應(yīng)關(guān)系矩陣。而這個(gè)的前提是我們確定了使用何種興趣空間。一種常見(jiàn)的方式是專(zhuān)家給出一些樣本的分類(lèi)結(jié)果,也就是一般意義的訓(xùn)練數(shù)據(jù),然后通過(guò)分類(lèi)算法,得到分類(lèi)模型,然后應(yīng)用到其余數(shù)據(jù)的分類(lèi)問(wèn)題當(dāng)中,解決其余大量數(shù)據(jù)的分類(lèi)問(wèn)題。這種分類(lèi)的特點(diǎn)是一本圖書(shū)只被標(biāo)記為一種類(lèi)別,假如有3個(gè)類(lèi)別,
那么圖書(shū)-興趣矩陣為:
那么用戶(hù)行為矩陣轉(zhuǎn)換為用戶(hù)興趣矩陣的運(yùn)算公式即可表示為下圖,行表示用戶(hù),列表示興趣,算出的矩陣再經(jīng)過(guò)歸一化后,每個(gè)值就代表某個(gè)用戶(hù)在某個(gè)興趣的偏好權(quán)重。
選擇這樣的興趣空間的局限顯而易見(jiàn):一本圖書(shū)只能屬于一個(gè)興趣維度。實(shí)際情況中,一本圖書(shū)通常不只屬于某個(gè)分類(lèi),并且當(dāng)圖書(shū)的數(shù)據(jù)巨大時(shí),寄希望于編輯分類(lèi)可能會(huì)越來(lái)越難以維持,所以通常是由用戶(hù)主動(dòng)給圖書(shū)添加標(biāo)簽,或者機(jī)器基于內(nèi)容,提取關(guān)鍵詞。但是這種形式得到的標(biāo)簽集會(huì)存在同義,生僻,維度過(guò)多等情況,需要經(jīng)過(guò)標(biāo)簽清洗的重要工作。前面已經(jīng)看到興趣空間的選擇真的是非常重要,直接影響所得到用戶(hù)的興趣矩陣。所以同樣的方法都得到了用戶(hù)偏好,但是好不好用,就跟這部分工作有關(guān)了。
用戶(hù)行為加權(quán)
上面展示的用戶(hù)行為矩陣示例是一個(gè)非常簡(jiǎn)單的,直接可以從數(shù)據(jù)庫(kù)里提取的例子。而實(shí)際中在數(shù)據(jù)能夠支撐的情況下,我們不可能只考慮一種行為。為了獲得更合理的行為矩陣,我們就需要進(jìn)行行為加權(quán)。比如,A1表示用戶(hù)點(diǎn)擊的行為矩陣,A2表示購(gòu)買(mǎi)的行為矩陣,A3表示評(píng)分的行為矩陣,那么加權(quán)矩陣就是:
至于各矩陣的權(quán)重跟我們建立用戶(hù)偏好模型的目的有關(guān),如果我們更希望找準(zhǔn)用戶(hù)的品味偏好,那么權(quán)重可能是:a1 < a2 < a3;如果我們更希望用戶(hù)購(gòu)買(mǎi),那么權(quán)重可能是:a1 < a3 < a2。
其他用戶(hù)行為分析方法
上面介紹的方法也算是一種主流的方法。但是從上面介紹的「興趣主題」,「興趣空間」也可以看出作出好的分類(lèi)并不容易,分類(lèi)粒度,分類(lèi)維度等都不好控制,用戶(hù)打標(biāo)簽也需要復(fù)雜的標(biāo)簽清洗工作。在圖書(shū),電影這樣的實(shí)體域,我們還可以通過(guò)類(lèi)別給用戶(hù)推薦喜歡的物品,而在個(gè)性化資訊推薦領(lǐng)域(這里僅舉個(gè)例子,資訊推薦應(yīng)該有其特殊之處),我們不見(jiàn)得能通過(guò)類(lèi)別推薦用戶(hù)喜歡的資訊,甚至用戶(hù)本身也不在意類(lèi)別。我們并不需要顯式地構(gòu)建物品-興趣對(duì)應(yīng)關(guān)系矩陣,也可以將用戶(hù)和所喜歡類(lèi)別的物品關(guān)聯(lián)起來(lái)。這就涉及到隱含語(yǔ)義分析技術(shù)。這個(gè)部分會(huì)日后在此文補(bǔ)充。
小總結(jié)
以上可以看出基于用戶(hù)行為分析的用戶(hù)偏好建模的常規(guī)方法非常簡(jiǎn)單明了。事實(shí)上也的確如此,在使用這些方法或者思想編寫(xiě)程序計(jì)算都不是什么難事。而實(shí)際上,我們遇到的問(wèn)題卻并非是方法本身,而是數(shù)據(jù)本身。數(shù)據(jù)方面的兩大問(wèn)題是稀疏和長(zhǎng)尾分布。通常有行為數(shù)據(jù)用戶(hù)很少,而用戶(hù)的行為對(duì)象也集中在不多的物品上。方法易學(xué),而數(shù)據(jù)問(wèn)題只能在實(shí)戰(zhàn)中才能深刻體會(huì),才會(huì)發(fā)現(xiàn)主要的精力和難點(diǎn)都在解決數(shù)據(jù)的稀疏和長(zhǎng)尾上。希望日后能結(jié)合實(shí)際問(wèn)題寫(xiě)寫(xiě)解決數(shù)據(jù)問(wèn)題的文章。
此外,上面雖然是用矩陣運(yùn)算的思想講述,但我在實(shí)際項(xiàng)目中發(fā)現(xiàn)其運(yùn)算的本質(zhì)其實(shí)是對(duì)用戶(hù)行為的統(tǒng)計(jì)。所以在實(shí)戰(zhàn)中,不一定要先建矩陣,再做計(jì)算,直接在數(shù)據(jù)庫(kù)里使用sql計(jì)算非常方便。
數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢(xún)效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話(huà)題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類(lèi)型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專(zhuān)業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專(zhuān)業(yè)操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶(hù)體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷(xiāo)案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷(xiāo)成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類(lèi)分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類(lèi)分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10