第8章 基于情境感知的推荐 — 通俗讲解
对应教材:刘宏志《推荐系统》第8章(PDF:
推荐算法.pdf,目录见toc.json,PDF 页 145–157 ≈ 书页 134–146)
前置章节:第2章协同过滤、第3章矩阵分解、第5章混合推荐、第7章排序学习
后续章节:第9章时空信息推荐(时间/位置是本章「情境」中最常见的两类)
经典参考:Schilit et al. (1994) Context-Aware Computing;Adomavicius & Tuzhilin (2011) Context-Aware Recommender Systems
章节目录速览
| 节 | 标题 | PDF 页 |
|---|---|---|
| 8.1 | 情境信息的定义 | 134 |
| 8.2 | 情境信息的获取 | 136 |
| 8.3 | 基于情境感知的推荐系统框架 | 136 |
| 8.3.1 | 数据立方体 | 137 |
| 8.3.2 | 基于树的层次信息表达 | 138 |
| 8.4 | 融合情境信息的推荐模型 | 139 |
| 8.4.1 | 情境预过滤 | 140 |
| 8.4.2 | 情境后过滤 | 141 |
| 8.5 | 情境建模 | 141 |
| 8.5.1 | 基于邻域的方法 | 142 |
| 8.5.2 | 基于模型的方法 | 143 |
| 习题 | — | 146 |
一、先搞懂:为什么需要「情境感知」?
1.1 传统推荐的盲区
前面各章的推荐算法,核心逻辑都是:
看用户和物品之间的历史关系,预测用户会不会喜欢某个物品。
这在很多场景下够用,但忽略了一个关键事实:
同一个人,在不同情境下,想要的东西完全不同。
| 场景 | 情境变化 | 推荐应如何变 |
|---|---|---|
| 看电影 | 和伴侣 vs 和父母 | 类型、尺度完全不同 |
| 看新闻 | 工作日早晨 vs 周末 | 时事资讯 vs 娱乐购物 |
| 买书 | 职业技能 vs 送礼 vs 日常 | 品类、价位、风格各异 |
| 听音乐 | 开心 vs 难过 | 欢快 vs 舒缓 |
| 点外卖 | 在公司 vs 在家 | 快餐 vs 精致料理 |
传统推荐把「用户 u 喜欢物品 i」当成固定关系;情境感知推荐则问:「用户 u 在情境 c 下,会不会喜欢物品 i?」
1.2 情境感知推荐的目标
教材用一句话概括(Schilit 1994 提出「情境感知」概念):
在正确的时间、正确的地点、正确的情况下,通过正确的媒介,向用户推荐满足其偏好、需求和意图的信息。
可以记成 「五个正确」:时间、地点、情况、媒介、内容。
1.3 与第7章、第9章的关系
- 第7章:在排序得分 (\hat{y}_{ui}) 里加特征(与本章「情境建模」思路相通)。
- 第9章:时间、位置是情境中最常见、最好获取的两类,本章讲通用框架,第9章讲专项算法。
二、8.1 情境信息的定义
2.1 什么叫「情境」?
学术界没有唯一标准定义。在推荐系统里,教材采用实用定义:
除了用户–物品评分/反馈、用户属性、物品属性之外,任何能影响用户行为(评分或反馈)的因素,都可以视为情境因素。
2.2 情境 = 内在情感 + 外部环境
从用户视角,情境分为两大部分(图 8-1):
(1)内在情感
| 类型 | 含义 | 推荐影响举例 |
|---|---|---|
| 用户心情 | 当前情绪状态 | 开心 → upbeat 音乐;难过 → 舒缓音乐 |
| 用户意图 | 当前目的 | 工作采购 vs 日常消费 → 品类/品牌/价位不同 |
| 用户认知 | 对领域的熟悉度 | 新手更倾向选「入门」「易懂」类内容 |
(2)外部环境
物理环境:时间、位置(经纬度/周边 POI)、天气、温度等。
时空信息最常用——易获取、预测力强。例如:位置 + 地图 → 商场/景区/公司/家;再叠加时间 → 饭点推餐厅、节假日推促销。
社交信息:当前同伴、社交网络中他人的行为。
- 有同伴时,推荐要考虑群体偏好(Group Recommendation)。
- 独自一人时,朋友最近在看什么电影,也会影响选择。
交互媒体:设备(PC/平板/手机)、媒体类型(文字/图片/视频/语音)。
- 小屏设备:Top 几项的准确性更重要。
- 不同媒体需不同分析(文本 NLP、图像识别等)。
三、8.2 情境信息的获取
有了「情境是什么」,还要解决「怎么拿到」。教材分三类:
3.1 显式获取
做法:直接问用户——弹窗、标签、分类筛选。
| 场景 | 示例 |
|---|---|
| 音乐 | 选心情(放松/伤感/安静/兴奋)或场景(散步/学习/开车/睡前) |
| 电商/图书 | 选购买意图(学习/儿童/休闲) |
优点:准确、可解释。
缺点:用户未必清楚自己的情境,或不愿填写 → 干扰体验。
3.2 隐式获取
做法:从环境或数据中被动采集,用户无感知。
| 来源 | 示例 |
|---|---|
| GPS / 基站 | 当前位置 |
| 系统时钟 | 当前时间 |
| 设备传感器 | 加速度、网络类型 |
优点:真实、不打扰。
缺点:依赖硬件/权限,并非所有情境都能直接测到。
3.3 推理获取
做法:用规则或统计/机器学习推断情境。
| 输入 | 推断结果 |
|---|---|
| 可穿戴设备生理数据 + 活动状态 | 用户心情 |
| 位置(办公室/家)+ 时间(工作时间/休息) | 工作意图 vs 个人生活 |
| 近期会话行为、IP、线下支付 | 当前意图或地理位置 |
优点:显式/隐式都不可行时的补充。
缺点:需要领域知识或大量历史数据。
3.4 实践中的选择策略
工业界常见做法:多种方式组合,互相校验,提高情境识别准确率。
四、8.3 基于情境感知的推荐系统框架
4.1 从二维到三维:问题形式化
| 类型 | 映射函数 | 含义 |
|---|---|---|
| 传统推荐 | (f: \text{User} \times \text{Item} \to \text{Action}) | 用户 + 物品 → 行为 |
| 情境感知推荐 | (f: \text{User} \times \text{Item} \times \text{Context} \to \text{Action}) | 用户 + 物品 + 情境 → 行为 |
图 8-2 对比:传统模型只有「用户」「物品」两路输入;情境感知模型增加「情境」第三路,共同决定用户行为。
生活类比:
- 传统:「张三喜欢川菜」→ 永远推川菜。
- 情境感知:「张三工作日午餐喜欢快餐,周末晚餐喜欢火锅」→ 分情境推。
4.2 系统结构(图 8-3)
相对传统系统,多了一条「情境数据源 → 情境建模 → 推荐算法」的链路。
4.3 8.3.1 数据立方体
情境信息常用 数据立方体(Data Cube) 表示——把二维「用户–物品」表推广到多维。
定义:情境是各情境属性笛卡尔积的一个子集,例如:
Context=Time×Location×Companion\text{Context} = \text{Time} \times \text{Location} \times \text{Companion}Context=Time×Location×Companion
图 8-4 示例(鞋类电商 + 时间情境):
| 维度 | 取值示例 |
|---|---|
| 用户 | 101 张三、102 李四… |
| 物品 | 202 运动鞋、203 皮鞋… |
| 时间(情境) | 1 上午、2 下午、3 晚上 |
每个「用户–物品–时间」格子存一个评分 (r_{u,i,t})。
同一用户、同一双鞋,上午和晚上的评分可以不同——这就是情境的价值。
核心矛盾:数据稀疏性
| 传统 2D 矩阵 | 加入情境后的立方体 |
|---|---|
| 用户 × 物品 | 用户 × 物品 × 时间 × 地点 × … |
| 已经稀疏 | 更稀疏——每个切片上样本更少 |
→ 引出下一节的「层次化」缓解手段。
4.4 8.3.2 基于树的层次信息表达
很多情境属性天然有层次结构,用树表示,并在数据不足时向上泛化。
时间(图 8-5):
时间
├── 节假日
│ ├── 上午 / 中午 / 晚上
└── 非节假日
├── 工作日 → 上午 / 下午 / 晚上
└── 周末 → 上午 / 下午 / 晚上
购买意图(图 8-6):
购买意图
├── 个人用品 → 工作 / 生活
└── 礼物
├── 朋友 → 同学同事 / 情侣
└── 亲人 → 父母 / 儿童
位置 也可层次化:
Location:=⟨Lat,Lon,Road,District,City,Province,Country⟩\text{Location} := \langle \text{Lat}, \text{Lon}, \text{Road}, \text{District}, \text{City}, \text{Province}, \text{Country} \rangleLocation:=⟨Lat,Lon,Road,District,City,Province,Country⟩
街道 → 区县 → 城市 → 省 → 国家,越往上数据越聚合、越不稀疏,但越粗糙。
泛化策略(预过滤/后过滤都会用到):
「周一晚上 10 点」数据不够 → 泛化到「周一晚上」→「工作日晚间」→「任意时间」
直到行为集合达到可训练阈值;再往上泛化会引入噪声,需停止。
五、8.4 融合情境信息的三种推荐模型
图 8-7 回顾传统流程:输入 (U \times I \times A) → 模型 (U \times I \to A) → 输出推荐列表。
加入情境后,映射变为 (f: \text{User} \times \text{Item} \times \text{Context} \to \text{Action})。
教材按情境介入的时机,分三大类:
| 方法 | 情境何时介入 | 是否改原有算法 |
|---|---|---|
| 情境预过滤 | 推荐之前,先按 c 切数据 | 否 |
| 情境后过滤 | 推荐之后,再按 c 调整结果 | 否 |
| 情境建模 | 模型内部显式纳入 c | 是 |
5.1 8.4.1 情境预过滤(Context Pre-filtering)
核心思想:先按给定情境 (c) 过滤输入数据,只保留该情境下的「数据切片」,再跑传统推荐。
图 8-8 流程:
输入 U×I×C×A → [过滤: 保留 c] → U×I×A(c) → 传统模型 U×I→A → 推荐列表
图 8-9:数据立方体按「时间=上午」切一片,只在上午切片里建协同过滤 / 训练矩阵分解。
两个视角
| 视角 | 做法 |
|---|---|
| 个体 | 对给定 ((u, c)):滤出 c 的数据 → 建模型 → 为 u 推荐 |
| 系统 | 离线:按每个 (c_i) 预计算相似度/邻域或训练模型参数;在线:查对应 c 的模型出结果 |
优缺点
| 优点 | 缺点 |
|---|---|
| 不改现有 CF/MF 代码,工程简单 | 每个情境一份模型,存储与计算随情境数增长 |
| 各情境模型专精,解释直观 | 切片后数据更稀疏,小情境可能训不出模型 |
| 适合情境离散、可枚举(早/中/晚) | 需配合层次泛化缓解稀疏 |
生活类比:图书馆按「儿童区 / 成人区」分开书架;你在儿童区,只在儿童书库里找推荐——不会混进成人文学。
5.2 8.4.2 情境后过滤(Context Post-filtering)
核心思想:先忽略情境,用全部历史数据做传统推荐,得到初始列表后,再用情境 (c) 过滤或重排。
图 8-10 流程:
输入 U×I×C×A → 传统模型(忽略C) → i₁,i₂,i₃… → [按 c 调整] → 符合 c 的最终列表
两种调整方式
| 方式 | 做法 | 示例 |
|---|---|---|
| 过滤 | 删掉不符合 c 的物品 | 当前情境「素食」→ 去掉含肉餐厅 |
| 重排序 | 按与 c 的匹配度重新打分排序 | 按与用户当前位置的距离重排餐厅 |
优缺点
| 优点 | 缺点 |
|---|---|
| 不改推荐算法,实现最快 | 初始列表可能大量被滤掉,甚至为空 |
| 离线只训一个全局模型 | 过滤粗暴时多样性下降 |
| 适合 c 主要做硬约束(营业时间、地域) | 未在排序阶段考虑 c,Top 项可能本就不适配 |
生活类比:搜索引擎先按关键词排出 100 条结果,你再点「仅看今天营业的」——后过滤。
预过滤 vs 后过滤 怎么选?
| 选预过滤 | 选后过滤 |
|---|---|
| 情境强烈改变偏好分布(早/晚穿搭) | 情境是硬约束(距离、库存、时段营业) |
| 各情境数据量足够 | 想快速在现有系统上叠加情境 |
| 可接受多模型维护成本 | 只有一个全局模型 |
5.3 8.5 情境建模(Context Modeling)— 总述
核心思想:把情境写进模型本身,学习 (f(u, i, c)) 的联合关系,而不是先切或后补。
| 特点 | 说明 |
|---|---|
| 数据 | 高维(用户 + 物品 + 多种情境特征) |
| 复杂度 | 高于预/后过滤 |
| 效果 | 能挖掘 u–i–c 耦合关系,情境与偏好强相关时最优 |
| 代表 | 邻域扩展、因子分解机 FM / FFM / DeepFM |
下面 8.5.1、8.5.2 是两类具体实现。
六、8.5.1 基于邻域的情境建模
把第2章邻域协同过滤从 ((u, i)) 推广到 ((u, i, t)) 三元组((t) 为情境,如时间)。
6.1 预测公式(式 8-1)
r^u,i,t=∑(u′,i′,t′)∈N(u,i,t)s[(u,i,t),(u′,i′,t′)]⋅ru′,i′,t′∑(u′,i′,t′)∈N(u,i,t)s[(u,i,t),(u′,i′,t′)]\hat{r}_{u,i,t} = \frac{\sum_{(u', i', t') \in N(u,i,t)} s\big[(u,i,t), (u',i',t')\big] \cdot r_{u',i',t'}}{\sum_{(u', i', t') \in N(u,i,t)} s\big[(u,i,t), (u',i',t')\big]}r^u,i,t=∑(u′,i′,t′)∈N(u,i,t)s[(u,i,t),(u′,i′,t′)]∑(u′,i′,t′)∈N(u,i,t)s[(u,i,t),(u′,i′,t′)]⋅ru′,i′,t′
- (N(u,i,t)):与目标 ((u,i,t)) 相似的历史样本集合
- (s[\cdot,\cdot]):样本间相似度
- 本质:在「用户–物品–情境」三维空间里找邻居,加权平均它们的评分
6.2 样本相似度:加权分解(式 8-2)
s[(u,i,t),(u′,i′,t′)]=w1s1(u,u′)+w2s2(i,i′)+w3s3(t,t′)s\big[(u,i,t), (u',i',t')\big] = w_1 s_1(u,u') + w_2 s_2(i,i') + w_3 s_3(t,t')s[(u,i,t),(u′,i′,t′)]=w1s1(u,u′)+w2s2(i,i′)+w3s3(t,t′)
其中 (w_1 + w_2 + w_3 = 1)。
| 分量 | 常见定义 |
|---|---|
| (s_1(u,u’)) | 用户相似度(皮尔逊、余弦等,见第2章) |
| (s_2(i,i’)) | 物品相似度 |
| (s_3(t,t’)) | 情境相似度:相同则 1,否则 0;或按时间差衰减 |
直觉:两个样本「像不像」,看用户像不像、物品像不像、情境像不像,再加权综合。
6.3 样本相似度:距离反比(式 8-3)
s[(u,i,t),(u′,i′,t′)]=1d[(u,i,t),(u′,i′,t′)]s\big[(u,i,t), (u',i',t')\big] = \frac{1}{d\big[(u,i,t), (u',i',t')\big]}s[(u,i,t),(u′,i′,t′)]=d[(u,i,t),(u′,i′,t′)]1
加权曼哈顿距离:
d=w1d1(u,u′)+w2d2(i,i′)+w3d3(t,t′)d = w_1 d_1(u,u') + w_2 d_2(i,i') + w_3 d_3(t,t')d=w1d1(u,u′)+w2d2(i,i′)+w3d3(t,t′)
加权欧氏距离:
d=w1d12+w2d22+w3d32d = \sqrt{w_1 d_1^2 + w_2 d_2^2 + w_3 d_3^2}d=w1d12+w2d22+w3d32
情境距离示例:(d_3(t,t’) = |t - t’|)(时间差);或 (t \neq t’) 时为 (+\infty)(必须同一情境)。
6.4 实现要点
- 事先定好 (s) 或 (d) 的计算方式及权重 (w_1,w_2,w_3)
- 高效检索 (N(u,i,t))(三维索引或倒排)
- 情境相似度常需领域知识(「下午」与「傍晚」多近?)
七、8.5.2 基于模型的情境建模
邻域法在线计算贵;模型法离线训练一次,在线预测快。教材重点讲 因子分解机 FM 及其扩展 FFM、DeepFM。
7.1 从评分表到监督学习
图 8-11:原始表(User, Movie, Rating)→ One-Hot 特征向量 (x) + 标签 (y)。
| 用户 | 电影 | 评分 |
|---|---|---|
| Alice | Titanic | 5 |
| Bob | Star Wars | 3 |
One-Hot 后,Alice = ((1,0,0,\ldots)),Titanic = ((0,0,1,0,\ldots)),拼成稀疏高维 (x),(y=5)。
7.2 因子分解机 FM
一阶(线性回归,式 8-4)——只看单个特征权重:
y^(x)=w0+∑i=1pwixi\hat{y}(x) = w_0 + \sum_{i=1}^{p} w_i x_iy^(x)=w0+i=1∑pwixi
二阶 FM(式 8-5 / 8-6)——加上特征两两交互:
y^(x)=w0+∑i=1pwixi+∑i=1p∑j=i+1p⟨vi,vj⟩xixj\hat{y}(x) = w_0 + \sum_{i=1}^{p} w_i x_i + \sum_{i=1}^{p}\sum_{j=i+1}^{p} \langle \mathbf{v}_i, \mathbf{v}_j \rangle x_i x_jy^(x)=w0+i=1∑pwixi+i=1∑pj=i+1∑p⟨vi,vj⟩xixj
| 符号 | 含义 |
|---|---|
| (p) | 特征总维数 (\approx |
| (\mathbf{v}_i \in \mathbb{R}^k) | 第 (i) 个特征的 (k) 维隐向量 |
| (\langle \mathbf{v}_i, \mathbf{v}_j \rangle) | 特征 (i) 与 (j) 的交互强度 |
| (k \ll p) | 参数量可控,缓解高维稀疏 |
为什么 FM 适合推荐?
- One-Hot 下 (p) 极大、矩阵极稀疏,直接学 (w_{ij}) 参数量 (O(p^2)) 不可行
- FM 用低秩隐向量分解交互项,复杂度 (O(kp)),样本少也能训
情境怎么加?——把情境特征拼进 (x),模型形式不变。
图 8-12 示例:
日志:(B, StarWars, Mood=Normal, Companion={A,C}, Rating=4)
特征向量在 User / Movie / Mood / Companion 各 Field 里 One-Hot;同伴 A、C 各赋 0.5(归一化)。预测时 FM 自动学习「Bob × StarWars × Normal × {A,C}」的组合效应。
7.3 域感知因子分解机 FFM(式 8-7)
FM 里特征 (i) 与 (j) 交互共用同一隐向量 (\mathbf{v}_i)。
FFM 认为:同一特征与不同 Field 交互时,应使用不同隐向量。
y^(x):=w0+∑i=1pwixi+∑i=1p−1∑j=i+1p⟨vi,fj,vj,fi⟩xixj\hat{y}(x) := w_0 + \sum_{i=1}^{p} w_i x_i + \sum_{i=1}^{p-1}\sum_{j=i+1}^{p} \langle \mathbf{v}_{i,f_j}, \mathbf{v}_{j,f_i} \rangle x_i x_jy^(x):=w0+i=1∑pwixi+i=1∑p−1j=i+1∑p⟨vi,fj,vj,fi⟩xixj
- (f_i):特征 (i) 所属 Field(用户域、电影域、心情域…)
- (\mathbf{v}_{i,f_j}):特征 (i) 与 Field (f_j) 交互时用的隐向量
效果:比 FM 更细,CTR 预估常用;训练更慢。
7.4 DeepFM(式 8-8 ~ 8-13)
动机:FM 只显式建模二阶交互;用户–物品–情境之间可能有高阶非线性关系 → 加 DNN。
结构(图 8-13):
FM 分量(式 8-8):
yFM(x)=w0+∑i=1pwixi+∑i=1p−1∑j=i+1p⟨vi,vj⟩xixjy_{FM}(x) = w_0 + \sum_{i=1}^{p} w_i x_i + \sum_{i=1}^{p-1}\sum_{j=i+1}^{p} \langle \mathbf{v}_i, \mathbf{v}_j \rangle x_i x_jyFM(x)=w0+i=1∑pwixi+i=1∑p−1j=i+1∑p⟨vi,vj⟩xixj
Embedding(式 8-9 ~ 8-10):每个 Field 的 One-Hot 映射为稠密向量 (e_i),拼接后送入 DNN:
a(0)=[e1,e2,…,em]a^{(0)} = [e_1, e_2, \ldots, e_m]a(0)=[e1,e2,…,em]
DNN 前向(式 8-11):
a(l+1)=f(W(l)a(l)+b(l))a^{(l+1)} = f(W^{(l)} a^{(l)} + b^{(l)})a(l+1)=f(W(l)a(l)+b(l))
输出融合(式 8-12 ~ 8-13):
yDNN=W(L)a(L)+b(L),y^:=sigmoid(yFM+yDNN)y_{DNN} = W^{(L)} a^{(L)} + b^{(L)}, \qquad \hat{y} := \text{sigmoid}(y_{FM} + y_{DNN})yDNN=W(L)a(L)+b(L),y^:=sigmoid(yFM+yDNN)
| 组件 | 捕获什么 |
|---|---|
| FM | 低阶、可解释的特征交叉(用户×物品、用户×时间…) |
| DNN | 高阶非线性组合 |
| 共享 Embedding | 两路共用表示,减少参数、信息一致 |
工业联系:DeepFM 思路与广告/推荐精排模型(Wide&Deep、DeepFM、xDeepFM)一脉相承;情境特征作为 Field 接入即可。
八、三种方法全面对比
| 维度 | 预过滤 | 后过滤 | 情境建模 |
|---|---|---|---|
| 改造量 | 小(数据管道) | 最小(结果后处理) | 大(新模型) |
| 模型数量 | 每情境一个 | 一个全局 | 通常一个联合模型 |
| 稀疏性 | 切片后更稀疏 | 不影响训练稀疏 | 高维但 FM 等可处理 |
| 情境耦合 | 弱(分而治之) | 弱 | 强 |
| 典型场景 | 早中晚偏好分明 | 距离/营业硬约束 | 多情境特征联合决策 |
| 代表算法 | 分时段 Item-CF | LBS 重排 | FM / FFM / DeepFM |
九、完整算例:鞋类 + 时间情境
沿用 图 8-4 数据立方体:
| 用户 | 物品 | 上午 | 下午 | 晚上 |
|---|---|---|---|---|
| 李四 | 运动鞋 | 5 | 3 | 1 |
| 李四 | 拖鞋 | 1 | 2 | 5 |
观察:李四上午爱运动鞋,晚上爱拖鞋——同一用户同一品类,因时间情境偏好反转。
| 方法 | 晚上为李四推荐 |
|---|---|
| 传统 CF | 可能仍推运动鞋(历史均分高) |
| 预过滤 | 只用「晚上」切片训练 → 推拖鞋 |
| 后过滤 | 全局推运动鞋在前 → 若规则「晚上优先休闲」则重排拖鞋 |
| FM 建模 | 特征 [李四, ?, 晚上] 学到交互 → 直接预测拖鞋分更高 |
十、与前几章的衔接
| 章节 | 与本章关系 |
|---|---|
| 第2章 邻域 CF | 8.5.1 把 ((u,i)) 邻域推广为 ((u,i,t)) |
| 第3章 MF | FM 可看作带特征交互的 MF 推广;DeepFM 共享 Embedding |
| 第5章 混合 | 情境模块可与 CF/CB 并行或级联(特征扩充) |
| 第6章 评测 | 分情境评测;注意稀疏切片上指标波动 |
| 第7章 LTR | 情境特征接入 (\hat{y}_{ui});BPR + 上下文特征 |
| 第9章 时空 | 时间/位置作为最重要情境的专项算法 |
十一、本章小结(背诵版)
- 情境感知:(f: U \times I \times C \to A),解决「同人在不同场景要不同东西」。
- 情境定义:内在情感(心情/意图/认知)+ 外部环境(物理/社交/媒体)。
- 获取方式:隐式优先 → 推理 → 显式;多源组合。
- 数据立方体:多维表示;稀疏性是核心难题,树层次泛化缓解。
- 预过滤:先按 c 切数据再传统推荐;不改算法,易稀疏。
- 后过滤:先全局推荐再按 c 过滤/重排;上线最快。
- 情境建模:c 进模型;邻域扩展或 FM/FFM/DeepFM。
- FM 关键:One-Hot + 二阶隐向量交互;情境 = 额外特征 Field。
- DeepFM:FM(低阶)+ DNN(高阶)+ 共享 Embedding。
- 选型:硬约束用后过滤;情境改变分布用预过滤;多特征耦合用建模。
十二、面试题速记
-
情境感知推荐 vs 传统推荐?
传统只建模 (p(i|u));情境感知建模 (p(i|u,c)),c 含时间、地点、设备、意图等。 -
三种融合方式区别?
预过滤=输入前切片;后过滤=输出后调整;建模=c 写入 (f(u,i,c))。前两种不改原算法。 -
数据立方体为何更稀疏?
每多一维情境,有效观测被分到更多格子,单格样本指数级减少。 -
层次泛化做什么?
情境树向上合并(周一22点→工作日晚间→任意),用更粗粒度换更多训练样本。 -
FM 如何解决高维稀疏?
用 (k) 维隐向量 (\mathbf{v}_i) 分解二阶交互,参数量 (O(kp)) 而非 (O(p^2))。 -
情境特征怎么接入 FM?
One-Hot 拼入 (x),与 user/item 同等对待;多值情境(多个同伴)可权重归一化。 -
FFM 比 FM 强在哪?
同一特征对不同 Field 用不同隐向量,交叉更精细。 -
DeepFM 双塔各干什么?
FM 显式二阶交叉;DNN 学高阶非线性;Sigmoid 融合输出。 -
预过滤和后过滤各适合什么?
预过滤:情境强烈改变偏好且数据够;后过滤:距离/营业时间等硬约束、快速改造。 -
第9章与本章关系?
本章通用框架;第9章专讲时间效应、时间衰减 CF、会话推荐、LBS 等。
十三、课后思考(对应教材习题)
- 简述情境感知推荐的基本思想与主要假设。
- 对比预过滤、后过滤、情境建模的优缺点与适用场景(见本文第八节表格)。
- 任选一种情境(如「出行方式:步行/驾车/公交」),画树状层次图。
- 描述图 8-3 各模块职责:用户库、项目库、情境源、三种建模、推荐算法、列表。
- FM 的基本思想:One-Hot 特征 + 一阶线性 + 二阶隐向量内积交互。
- (实践)用 Python + 公开数据实现 FM,加入「时间」或「设备」One-Hot 特征,对比不加情境的 RMSE/NDCG。
十四、延伸阅读
- Schilit, B. et al. (1994). Context-Aware Computing Applications. WMCSA.
- Adomavicius, G. & Tuzhilin, A. (2011). Context-Aware Recommender Systems. Recommender Systems Handbook.
- Rendle, S. (2010). Factorization Machines. ICDM.
- Juan, Y. et al. (2016). Field-aware Factorization Machines for CTR Prediction. RecSys.
- Guo, H. et al. (2017). DeepFM: A Factorization-Machine based Neural Network for CTR Prediction. IJCAI.
- 本书 第9章:时间/空间情境的专项算法;第5章 5.6.2:特征扩充式混合
文档风格与 p22_第7章_基于排序学习的推荐.md、p21_第5章_混合推荐系统.md 一致。

87

被折叠的 条评论
为什么被折叠?



