本書介紹當(dāng)前推薦系統(tǒng)領(lǐng)域中的經(jīng)典方法。不僅詳細(xì)討論了各類方法,還對同類技術(shù)進(jìn)行了歸納總結(jié),這有助于讀者對當(dāng)前推薦系統(tǒng)研究領(lǐng)域有全面的了解。書中提供了大量的例子和習(xí)題來幫助讀者深入理解和掌握相關(guān)技術(shù)。此外,本書還介紹了當(dāng)前新的研究方向,為讀者進(jìn)行推薦系統(tǒng)技術(shù)的研究提供參考。本書既可以作為計(jì)算機(jī)相關(guān)專業(yè)本科生和研究生的教材,也適合開發(fā)人員和研究人員閱讀。
前言Recommender Systems: The Textbook大自然呈現(xiàn)在我們面前的只是一頭獅子的尾巴。但不要懷疑獅子的存在,盡管它因?yàn)樯硇途薮蟛荒荞R上現(xiàn)出全身。
——Albert Einstein隨著Web成為商務(wù)和電子交易的重要媒介,推薦系統(tǒng)在20世紀(jì)90年代變得越來越重要。人們很早就認(rèn)識到Web為個(gè)性化服務(wù)提供了空前的機(jī)會(huì),這是其他渠道是不可能做到的。特別是Web為數(shù)據(jù)收集提供了便利,并且提供了一種非侵入式地推薦物品的用戶界面。
自此以后,在公眾眼中,推薦系統(tǒng)已經(jīng)得到了顯著的發(fā)展。這一事實(shí)的證據(jù)是,有許多會(huì)議和研討會(huì)專門探討該領(lǐng)域。會(huì)議ACM Conference on Recommender Systems特別值得一提,因?yàn)樗鼮樵擃I(lǐng)域定期貢獻(xiàn)了許多前沿工作。推薦系統(tǒng)領(lǐng)域非常多樣化,因?yàn)樗軌蚴褂酶鞣N類型的用戶偏好數(shù)據(jù)和用戶需求數(shù)據(jù)來做推薦。推薦系統(tǒng)中最著名的方法包括協(xié)同過濾方法、基于內(nèi)容的方法和基于知識的方法。這三種方法構(gòu)成了推薦系統(tǒng)研究領(lǐng)域的基本支柱。近年來,已經(jīng)設(shè)計(jì)了一些專門的方法來針對不同的數(shù)據(jù)領(lǐng)域和上下文,例如時(shí)間、位置和社會(huì)信息。針對專門的場景提出了大量高級的方法,這些方法可以調(diào)整用于不同的應(yīng)用領(lǐng)域,例如查詢?nèi)罩就诰、新聞推薦和計(jì)算廣告。本書的結(jié)構(gòu)安排體現(xiàn)了這些重要的話題。本書的章節(jié)可以分為三類:
1)算法和評估:這些章節(jié)討論了推薦系統(tǒng)中的基本算法,包括協(xié)同過濾方法(第2和4章)、基于內(nèi)容的方法(第4章)和基于知識的方法(第5章)。這些方法的混合在第6章中討論。第7章討論了推薦系統(tǒng)評估。
2)特定領(lǐng)域和上下文的推薦:推薦系統(tǒng)的上下文在提供有效推薦方面扮演了至關(guān)重要的角色。例如,一個(gè)用戶想要用其位置作為附加的上下文(context)來查找飯店。推薦的上下文可以被看作是影響推薦目標(biāo)的重要輔助信息。不同類型的域,例如時(shí)間數(shù)據(jù)、空間數(shù)據(jù)和社會(huì)數(shù)據(jù),提供了不同類型的上下文。相關(guān)的方法在第8~11章中討論。第11章也討論了利用社會(huì)信息來增加推薦過程可信度的話題。最近的話題(如分解機(jī)和可信推薦系統(tǒng))在這些章節(jié)中也有涉及。
3)高級話題和應(yīng)用:在第12章中,我們將從各個(gè)角度討論推薦系統(tǒng)的健壯性,例如欺詐(shilling)系統(tǒng)、攻擊模式及其防御。此外,近期的一些話題,例如排名學(xué)習(xí)、多臂賭博機(jī)、組推薦系統(tǒng)、多標(biāo)準(zhǔn)推薦系統(tǒng)和主動(dòng)學(xué)習(xí)系統(tǒng),將在第13章中討論。該章的一個(gè)重要目標(biāo)是向讀者介紹當(dāng)前研究的基本思想和原則。雖然不可能在一本書里對當(dāng)前所有的研究技術(shù)細(xì)節(jié)進(jìn)行討論,但我們希望最后一章能夠在高級話題方面為讀者“破冰”。在這一章中,我們也研究了推薦技術(shù)的一些應(yīng)用環(huán)境,例如新聞推薦、查詢推薦和計(jì)算廣告。本章還討論了如何將前面章節(jié)中介紹的方法應(yīng)用于各個(gè)不同的領(lǐng)域。
盡管本書是作為教科書來編寫的,但仍有很多來自于工業(yè)界和學(xué)術(shù)界的讀者。因此,我們也從應(yīng)用角度和文獻(xiàn)角度來撰寫此書。書中提供了大量的示例和習(xí)題,使得它可以被用作教科書。由于大部分推薦系統(tǒng)課程只涵蓋基礎(chǔ)話題,因此有關(guān)基礎(chǔ)話題的章節(jié)和算法著重于課堂教學(xué)。另一方面,工業(yè)界人員也許發(fā)現(xiàn)討論上下文敏感的推薦系統(tǒng)的章節(jié)很有用,因?yàn)樵谠S多真實(shí)的應(yīng)用中會(huì)有大量可用的上下文輔助信息。第13章的應(yīng)用部分是特別為工業(yè)界人員編寫的,不過教師也許會(huì)發(fā)現(xiàn)它在推薦課程中也是有用的。
最后,我們對所使用的符號進(jìn)行簡要的介紹。本書中一直使用一個(gè)m×n的評分矩陣,記為R,其中m是用戶的數(shù)量,n是物品的數(shù)量。矩陣R是不完整的,因?yàn)橹挥幸徊糠猪?xiàng)是已觀測的。R的第(i,j)項(xiàng)表示用戶i對物品j的評分,當(dāng)它是已觀測項(xiàng)時(shí),被記為rij。當(dāng)項(xiàng)(i,j)是由推薦算法預(yù)測得到(而不是用戶指定)時(shí),被記為帶“帽子”符號(即抑揚(yáng)符號)的r∧ij,表示它是一個(gè)預(yù)測的值。向量用“上劃線”來表示,例如X或y。
致謝Recommender Systems: The Textbook感謝在撰書期間妻子和女兒給予我的愛和支持,感謝父母給我持續(xù)的愛。
本書得到了很多人直接和間接的幫助,我很感激他們。在撰寫本書時(shí),我收到了許多同事的反饋,他們是Xavier Amatriain、Kanishka Bhaduri、Robin Burke、Martin Ester、Bart Goethals、Huan Liu、Xia Ning、Saket Sathe、Jiliang Tang、Alexander Tuzhilin、Koen Versetrepen和Jieping Ye。感謝他們所提供的建設(shè)性反饋。這些年來,我從大量合作者那里受益良多。這些見解直接或間接地影響了本書。首先感謝多年來與我合作的Philip S. Yu。其他重要的合作者還包括Tarek F. Abdelzaher、Jing Gao、Quanquan Gu、Manish Gupta、Jiawei Han、Alexander Hinneburg、Thomas Huang、Nan Li、Huan Liu、Ruoming Jin、Daniel Keim、Arijit Khan、Latifur Khan、Mohammad M. Masud、Jian Pei、Magda Procopiuc、Guojun Qi、Chandan Reddy、Saket Sathe、Jaideep Srivastava、Karthik Subbian、Yizhou Sun、Jiliang Tang、MinHsuan Tsai、Haixun Wang、Jianyong Wang、Min Wang、Joel Wolf、Xifeng Yan、Mohammed Zaki、ChengXiang Zhai和Peixiang Zhao。我也要感謝導(dǎo)師James B. Orlin在早期對我的指導(dǎo)。
還要感謝我的經(jīng)理Nagui Halim在我撰寫此書時(shí)所提供的巨大支持。他的專業(yè)支持對我過去和現(xiàn)在的許多書都起著重要的作用。
最后,感謝Lata Aggarwal用微軟PowerPoint軟件幫我繪制了一些圖片。
目錄
Recommender Systems: The Textbook
出版者的話
譯者序
前言
致謝
作者簡介
第1章推薦系統(tǒng)概述
1.1引言
1.2推薦系統(tǒng)的目標(biāo)
1.2.1推薦系統(tǒng)應(yīng)用范圍
1.3推薦系統(tǒng)的基本模型
1.3.1協(xié)同過濾模型
1.3.2基于內(nèi)容的推薦系統(tǒng)
1.3.3基于知識的推薦系統(tǒng)
1.3.4人口統(tǒng)計(jì)推薦系統(tǒng)
1.3.5混合集成的推薦系統(tǒng)
1.3.6對推薦系統(tǒng)的評價(jià)
1.4推薦系統(tǒng)領(lǐng)域特有的挑戰(zhàn)
1.4.1基于上下文的推薦系統(tǒng)
1.4.2時(shí)間敏感的推薦系統(tǒng)
1.4.3基于位置的推薦系統(tǒng)
1.4.4社交信息系統(tǒng)
1.5高級論題和應(yīng)用
1.5.1推薦系統(tǒng)中的冷啟動(dòng)問題
1.5.2抗攻擊推薦系統(tǒng)
1.5.3組推薦系統(tǒng)
1.5.4多標(biāo)準(zhǔn)推薦系統(tǒng)
1.5.5推薦系統(tǒng)中的主動(dòng)學(xué)習(xí)
1.5.6推薦系統(tǒng)中的隱私問題
1.5.7應(yīng)用領(lǐng)域
1.6小結(jié)
1.7相關(guān)工作
1.8習(xí)題
第2章基于近鄰的協(xié)同過濾
2.1引言
2.2評分矩陣的關(guān)鍵性質(zhì)
2.3通過基于近鄰的方法預(yù)測評分
2.3.1基于用戶的近鄰模型
2.3.2基于物品的近鄰模型
2.3.3高效的實(shí)現(xiàn)和計(jì)算復(fù)雜度
2.3.4基于用戶的方法和基于物品的方法的比較
2.3.5基于近鄰方法的優(yōu)劣勢
2.3.6基于用戶的方法和基于物品的方法的聯(lián)合
2.4聚類和基于近鄰的方法
2.5降維與近鄰方法
2.5.1處理偏差
2.6近鄰方法的回歸模型視角
2.6.1基于用戶的最近鄰回歸
2.6.2基于物品的最近鄰回歸
2.6.3基于用戶的方法和基于物品的方法的結(jié)合
2.6.4具有相似度權(quán)重的聯(lián)合插值
2.6.5稀疏線性模型
2.7基于近鄰方法的圖模型
2.7.1用戶物品圖
2.7.2用戶用戶圖
2.7.3物品物品圖
2.8小結(jié)
2.9相關(guān)工作
2.10習(xí)題
第3章基于模型的協(xié)同過濾
3.1引言
3.2決策和回歸樹
3.2.1將決策樹擴(kuò)展到協(xié)同過濾
3.3基于規(guī)則的協(xié)同過濾
3.3.1將關(guān)聯(lián)規(guī)則用于協(xié)同過濾
3.3.2面向物品的模型與面向用戶的模型
3.4樸素貝葉斯協(xié)同過濾
3.4.1處理過擬合
3.4.2示例:使用貝葉斯方法處理二元評分
3.5將任意分類模型當(dāng)作黑盒來處理
3.5.1示例:使用神經(jīng)網(wǎng)絡(luò)作為黑盒分類器
3.6潛在因子模型
3.6.1潛在因子模型的幾何解釋
3.6.2潛在因子模型的低秩解釋
3.6.3基本矩陣分解原理
3.6.4無約束矩陣分解
3.6.5奇異值分解
3.6.6非負(fù)矩陣分解
3.6.7理解矩陣因子分解方法族
3.7集成因子分解和近鄰模型
3.7.1基準(zhǔn)估計(jì):非個(gè)性化偏倚中心模型
3.7.2模型的近鄰部分
3.7.3模型的潛在因子部分
3.7.4集成近鄰和潛在因子部分
3.7.5求解優(yōu)化模型
3.7.6關(guān)于精度的一些觀察
3.7.7將潛在因子模型集成到任意模型
3.8小結(jié)
3.9相關(guān)工作
3.10習(xí)題
第4章基于內(nèi)容的推薦系統(tǒng)
4.1引言
4.2基于內(nèi)容的系統(tǒng)的基本組件
4.3預(yù)處理和特征提取
4.3.1特征提取
4.3.2特征表示和清洗
4.3.3收集用戶的偏好
4.3.4監(jiān)督特征選擇和加權(quán)
4.4學(xué)習(xí)用戶畫像和過濾
4.4.1最近鄰分類
4.4.2與基于案例的推薦系統(tǒng)的關(guān)聯(lián)性
4.4.3貝葉斯分類器
4.4.4基于規(guī)則的分類器
4.4.5基于回歸的模型
4.4.6其他學(xué)習(xí)模型和比較概述
4.4.7基于內(nèi)容的系統(tǒng)的解釋
4.5基于內(nèi)容的推薦與協(xié)同推薦
4.6將基于內(nèi)容的模型用于協(xié)同過濾
4.6.1利用用戶畫像
4.7小結(jié)
4.8相關(guān)工作
4.9習(xí)題
第5章基于知識的推薦系統(tǒng)
5.1引言
5.2基于約束的推薦系統(tǒng)
5.2.1返回相關(guān)結(jié)果
5.2.2交互方法
5.2.3排序匹配的物品
5.2.4處理不可接受的結(jié)果或空集
5.2.5添加約束
5.3基于案例的推薦系統(tǒng)
5.3.1相似性度量
5.3.2批評方法
5.3.3批評的解釋
5.4基于知識的系統(tǒng)的持久個(gè)性化
5.5小結(jié)
5.6相關(guān)工作
5.7習(xí)題
第6章基于集成的混合推薦系統(tǒng)
6.1引言
6.2從分類角度看集成方法
6.3加權(quán)型混合系統(tǒng)
6.3.1幾種模型組合的方法
6.3.2對分類中的bagging算法的調(diào)整
6.3.3隨機(jī)性注入算法
6.4切換型混合系統(tǒng)
6.4.1為解決冷啟動(dòng)問題的切換機(jī)制
6.4.2桶模型
6.5級聯(lián)型混合系統(tǒng)
6.5.1推薦結(jié)果的逐步優(yōu)化
6.5.2boosting算法
6.6特征放大型混合系統(tǒng)
6.7元級型混合系統(tǒng)
6.8特征組合型混合系統(tǒng)
6.8.1回歸分析和矩陣分解
6.8.2元級特征
6.9交叉型混合系統(tǒng)
6.10小結(jié)
6.11相關(guān)工作
6.12習(xí)題
第7章推薦系統(tǒng)評估
7.1引言
7.2評估范例
7.2.1用戶調(diào)查
7.2.2在線評估
7.2.3使用歷史數(shù)據(jù)集進(jìn)行離線評估
7.3評估設(shè)計(jì)的總體目標(biāo)
7.3.1精確性
7.3.2覆蓋率
7.3.3置信度和信任度
7.3.4新穎度
7.3.5驚喜度
7.3.6多樣性
7.3.7健壯性和穩(wěn)定性
7.3.8可擴(kuò)展性
7.4離線推薦評估的設(shè)計(jì)要點(diǎn)
7.4.1Netflix Prize數(shù)據(jù)集的案例研究
7.4.2為訓(xùn)練和測試分解評分
7.4.3與分類設(shè)計(jì)的比較
7.5離線評估的精確性指標(biāo)
7.5.1度量預(yù)測評分的精確性
7.5.2通過相關(guān)性評估排名
7.5.3通過效用評估排名
7.5.4通過ROC曲線評估排名
7.5.5哪種排名方式最好
7.6評估指標(biāo)的局限性
7.6.1避免評估游戲
7.7小結(jié)
7.8相關(guān)工作
7.9習(xí)題
第8章上下文敏感的推薦系統(tǒng)
8.1引言
8.2多維方法
8.2.1層級的重要性
8.3上下文預(yù)過濾:一種基于降維的方法
8.3.1基于集成的改進(jìn)
8.3.2多級別的估計(jì)
8.4后過濾方法
8.5上下文建模
8.5.1基于近鄰的方法
8.5.2潛在因子模型
8.5.3基于內(nèi)容的模型
8.6小結(jié)
8.7相關(guān)工作
8.8習(xí)題
第9章時(shí)間與位