全書從推薦系統(tǒng)的發(fā)展歷史、基本構成開始,依次剖析推薦系統(tǒng)的內容召回、協(xié)同過濾召回、深度學習召回中具有代表性的模型;再從經(jīng)典排序模型到基于深度學習的排序,順勢介紹會話推薦、強化學習推薦及工業(yè)級推薦,搭建了完整的推薦系統(tǒng)技術體系,這是一個由淺入深的系統(tǒng)學習過程。
本書的目標讀者應該對深度學習有基本的了解,掌握概率論、線性代數(shù)、微積分等學科的基本知識,具備使用Python語言進行編程的基本能力。本書可以作為各大院校人工智能相關專業(yè)的教材,也可以作為培訓機構的教材,還適合作為人工智能技術愛好者自學用書。
1.以操作實踐為學習的切入點,而不是直接切入理論講解。
2.以任務為驅動,貫穿知識內容。
3.充分考慮學習者的認知曲線,由淺入深,邊講邊練邊切入理論知識。
4.通過項目實訓訓練技能的綜合使用能力。
肖睿,課工場創(chuàng)始人,北京大學教育學博士,北京大學軟件學院特約講師,北京大學學習科學實驗室特約顧問。作為北大青鳥 Aptech 的聯(lián)合創(chuàng)始人,歷任學術總監(jiān)、研究院院長、公司副總裁等核心崗位,擁有20多年的IT職業(yè)教育產(chǎn)品管理和企業(yè)管理經(jīng)驗。于2015年創(chuàng)辦課工場,兼任總經(jīng)理,旨在為大學生提供更可靠的 IT 就業(yè)教育及服務。
第 1章 推薦系統(tǒng)簡介...1
技能目標... 1
本章任務... 1
任務1.1 了解推薦系統(tǒng)的發(fā)展歷史 ...2
任務1.2 掌握推薦系統(tǒng)的核心要素... 4
1.2.1 用戶... 4
1.2.2 物品和內容 ... 4
1.2.3 事件.. .5
1.2.4 語境... 6
任務1.3 掌握推薦系統(tǒng)的基本構成... 6
1.3.1 召回模塊 ...8
1.3.2 排序模塊... 13
1.3.3 過濾模塊... 14
任務1.4 了解推薦系統(tǒng)的新發(fā)展... 15
1.4.1 基于會話的推薦系統(tǒng)... 15
1.4.2 強化學習與推薦系統(tǒng)... 17
任務1.5 認清推薦系統(tǒng)的發(fā)展方向... 17
本章小結... 18
本章習題...18
第 2章 搭建試驗平臺...19
技能目標... 19
本章任務... 19
任務2.1 安裝和配置Anaconda ... 20
2.1.1 下載并安裝Anaconda ... 21
2.1.2 新建環(huán)境... 22
2.1.3 管理環(huán)境... 23
2.1.4 添加國內的安裝源 ... 25
2.1.5 安裝scikit-surprise軟件包... 26
2.1.6 安裝其他軟件包 ... 27
任務2.2 獲取試驗數(shù)據(jù)集MovieLens... 28
2.2.1 下載數(shù)據(jù)集 ... 28
2.2.2 檢查文件內容 ... 29
2.2.3 分析評分數(shù)據(jù)...31
任務2.3 安裝集成開發(fā)環(huán)境PyCharm... 35
2.3.1 下載PyCharm ... 35
2.3.2 創(chuàng)建項目Recommender ... 35
2.3.3 創(chuàng)建測試文件 ...37
任務2.4 測試集成開發(fā)環(huán)境Spyder... 38
任務2.5 測試Jupyter Notebook . 40
2.5.1 安裝并啟動Jupyter Notebook . 41
2.5.2 設置根目錄 . 42
2.5.3 Jupyter Notebook基本用法 .. 44
2.5.4 運行測試文件 46
本章小結. 47
本章習題. 48
第3章 推薦系統(tǒng)的評測 .49
技能目標. 49
本章任務. 49
任務3.1 學習用戶成長飛輪模型. 50
任務3.2 掌握推薦系統(tǒng)的評測方法. 51
3.2.1 離線測試.. 51
3.2.2 用戶測試.. 52
3.2.3 線上測試.. 54
任務3.3 掌握推薦系統(tǒng)的評測指標. 55
3.3.1 預測準確率 . 55
3.3.2 覆蓋率.. 61
3.3.3 多樣性.. 62
3.3.4 驚喜度.. 63
3.3.5 新穎度.. 64
3.3.6 實時性.. 65
3.3.7 健壯性.. 65
3.3.8 商業(yè)目標.. 66
3.3.9 小結 68
任務3.4 實際評測推薦系統(tǒng) 69
3.4.1 線下測試.. 69
3.4.2 線上測試.. 72 本章小結. 74
本章習題. 74
第4章 基于內容的召回 .75
技能目標. 75
本章任務. 75
任務4.1 掌握物品特征抽取的基本方法 .. 76
4.1.1 抽取基本特征 77
4.1.2 抽取文本特征 79
4.1.3 抽取圖像特征 81
任務4.2 掌握相似度的衡量方法. 84
4.2.1 曼哈頓距離 . 85
4.2.2 歐氏距離.. 85
4.2.3 余弦相似度 . 86
任務4.3 實際開發(fā)一款基于內容召回的推薦系統(tǒng) 86
4.3.1 準備電影特征 87
4.3.2 計算電影間的相似度. 89
4.3.3 預測用戶評分 91
4.3.4 生成頭部推薦 92
任務4.4 掌握橫向評測框架的開發(fā)和使用方法 .. 93
4.4.1 自定義預測算法 .. 93
4.4.2 比較控制器 . 95
4.4.3 評測內容召回推薦算法 97
任務4.5 理解基于內容召回的優(yōu)點和缺點 . 99
4.5.1 內容召回的優(yōu)點 .. 99
4.5.2 內容召回的缺點 100
本章小結.. 100
本章習題.. 100
第5章 基于協(xié)同過濾的召回 .102
技能目標.. 102
本章任務.. 102
任務5.1 掌握協(xié)同過濾的基本思想和主要分類 103
任務5.2 掌握協(xié)同過濾中相似性的衡量方法 . 104
5.2.1 行為數(shù)據(jù)的特點 105
5.2.2 相似性的衡量 . 105
任務5.3 實際開發(fā)一款基于用戶的協(xié)同過濾推薦系統(tǒng).. 108
5.3.1 創(chuàng)建用戶評分矩陣 .. 108 5.3.2 創(chuàng)建用戶相似度矩陣.. 108
5.3.3 尋找相似用戶 . 109
5.3.4 根據(jù)相似用戶的喜好給出推薦 .. 109
5.3.5 排序并過濾推薦電影列表(基于用戶的協(xié)同過濾) ..110
5.3.6 運行項目.110
任務5.4 實際開發(fā)一款基于物品的協(xié)同過濾推薦系統(tǒng)112
5.4.1 創(chuàng)建電影評分矩陣 113
5.4.2 創(chuàng)建電影相似度矩陣114
5.4.3 獲取當前用戶喜好 114
5.4.4 根據(jù)用戶喜好給出推薦115
5.4.5 排序并過濾推薦電影列表(基于電影的協(xié)同過濾) ..115
5.4.6 運行項目.115
任務5.5 實際評測協(xié)同過濾與評分預測融合模型..118
5.5.1 基于用戶的K近鄰推薦118
5.5.2 基于物品的K近鄰推薦118
5.5.3 評測K近鄰推薦算法119
本章小結.. 120
本章習題.. 121
第6章 基于深度學習的召回 .122
技能目標.. 122
本章任務.. 122
任務6.1 掌握并實際評測矩陣分解算法 124
任務6.2 掌握并實際評測受限玻爾茲曼機算法 129
任務6.3 掌握并實際評測自動編碼機算法 .. 133
任務6.4 掌握優(yōu)兔基于深度學習的召回模型 . 136
任務6.5 了解Netflix的推薦模型 139
本章小結.. 141
本章習題.. 141
第7章 經(jīng)典排序模型142
技能目標.. 142
本章任務.. 142
任務7.1 下載并探索一個排序用數(shù)據(jù)集 143
任務7.2 掌握并實際評測邏輯回歸排序算法 . 146
7.2.1 邏輯回歸的基本原理.. 146
7.2.2 邏輯回歸示例代碼 .. 147
任務7.3 掌握并實際評測梯度提升決策樹和邏輯回歸融合模型 .. 150 7.3.1 梯度提升決策樹的工作原理 150
7.3.2 梯度提升決策樹與邏輯回歸融合模型 152
7.3.3 梯度提升決策樹和邏輯回歸融合模型的示例代碼.. 153
任務7.4 掌握并實際評測貝葉斯個性化排序算法. 156
7.4.1 貝葉斯法則 .. 157
7.4.2 貝葉斯個性化排序算法原理 162
7.4.3 貝葉斯個性化排序示例代碼 163
本章小結.. 170
本章習題.. 170
第8章 基于深度學習的排序 .171
技能目標.. 171
本章任務.. 171
任務8.1 掌握因子分解機的基本原理. 172
任務8.2 掌握廣度和深度融合模型的基本原理 177
任務8.3 掌握優(yōu)兔深度學習排序模型的基本原理. 185
本章小結.. 187
本章習題.. 188
第9章 基于會話的推薦 ..189
技能目標.. 189
本章任務.. 189
任務9.1 了解基于會話的推薦系統(tǒng)的發(fā)展歷史 190
任務9.2 掌握循環(huán)神經(jīng)網(wǎng)絡在推薦系統(tǒng)中的應用. 192
9.2.1 基于門控循環(huán)單元的推薦系統(tǒng) .. 193
9.2.2 多會話迷你批處理 .. 194
9.2.3 批處理中的負采樣 .. 194
9.2.4 排序損失函數(shù)的選擇.. 195
9.2.5 實驗過程 195
任務9.3 學習將語境信息融入循環(huán)神經(jīng)網(wǎng)絡推薦系統(tǒng).. 196
9.3.1 語境的重要性 . 197
9.3.2 語境的融入方法 198
9.3.3 融合語境的循環(huán)神經(jīng)網(wǎng)絡模型 .. 199
9.3.4 實驗過程 202
本章小結.. 203
本章習題.. 204
第 10章 基于強化學習的推薦 ..205
技能目標.. 205 本章任務.. 205
任務10.1 了解在推薦系統(tǒng)中應用強化學習的背景.. 206
任務10.2 了解強化學習的技術基礎 207
10.2.1 情境描述. 207
10.2.2 策略學習. 209
10.2.3 用戶長期參與度 . 210
任務10.3 深入研究“探索與開采并舉”的強化學習推薦系統(tǒng) 210
10.3.1 提升多樣性的強化學習推薦系統(tǒng) .. 210
10.3.2 試驗過程. 213
10.3.3 試驗結果. 216
本章小結.. 217
本章習題.. 218
第 11章 工業(yè)級推薦系統(tǒng).219
技能目標.. 219
本章任務.. 219
任務11.1 了解深度規(guī);∈鑿埩烤W(wǎng)絡引擎 220
任務11.2 掌握DSSTNE深度學習框架的使用方法 221
11.2.1 轉換數(shù)據(jù) . 224
11.2.2 訓練階段 . 224
11.2.3 預測階段 . 226
任務11.3 了解工業(yè)級推薦系統(tǒng)的架構方法 226
11.3.1 系統(tǒng)架構 . 227
11.3.2 并行化.. 228
11.3.3 結束語.. 229
本章小結.. 229
本章習題.. 230