第8章 基于情境感知的推荐 — 通俗讲解

第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章的关系

第2章 CF 用户-物品

第8章 加入情境 c

第3章 MF 隐向量

第7章 BPR 在 y_ui 加特征

第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 实践中的选择策略

不能

需要情境 c

能否隐式获取?

优先隐式

有足够数据/知识?

推理获取

显式询问

多源交叉验证

工业界常见做法:多种方式组合,互相校验,提高情境识别准确率。


四、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

8.5 情境建模

User+Item+Context

新模型 f_u,i,c

8.4.2 后过滤

全量数据

传统推荐

按 c 过滤/重排

8.4.1 预过滤

全量数据

按 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 实现要点

  1. 事先定好 (s) 或 (d) 的计算方式及权重 (w_1,w_2,w_3)
  2. 高效检索 (N(u,i,t))(三维索引或倒排)
  3. 情境相似度常需领域知识(「下午」与「傍晚」多近?)

七、8.5.2 基于模型的情境建模

邻域法在线计算贵;模型法离线训练一次,在线预测快。教材重点讲 因子分解机 FM 及其扩展 FFM、DeepFM

7.1 从评分表到监督学习

图 8-11:原始表(User, Movie, Rating)→ One-Hot 特征向量 (x) + 标签 (y)。

用户电影评分
AliceTitanic5
BobStar Wars3

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=1pwixi

二阶 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=1pwixi+i=1pj=i+1pvi,vjxixj

符号含义
(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=1pwixi+i=1p1j=i+1pvi,fj,vj,fixixj

  • (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)

稀疏特征 Fields

共享 Embedding 层

FM 分量: 一阶 + 二阶内积

多层 MLP

Sigmoid 融合

预测 y_hat

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=1pwixi+i=1p1j=i+1pvi,vjxixj

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-CFLBS 重排FM / FFM / DeepFM

情境 c 如何融入?

数据太少 per c?

层次泛化 + 预过滤或建模

c 是硬约束?

后过滤 过滤/重排

多特征强耦合?

FM / DeepFM 情境建模

快速上线?

后过滤 → 再演进预过滤/建模


九、完整算例:鞋类 + 时间情境

沿用 图 8-4 数据立方体:

用户物品上午下午晚上
李四运动鞋531
李四拖鞋125

观察:李四上午爱运动鞋,晚上爱拖鞋——同一用户同一品类,因时间情境偏好反转

方法晚上为李四推荐
传统 CF可能仍推运动鞋(历史均分高)
预过滤只用「晚上」切片训练 → 推拖鞋
后过滤全局推运动鞋在前 → 若规则「晚上优先休闲」则重排拖鞋
FM 建模特征 [李四, ?, 晚上] 学到交互 → 直接预测拖鞋分更高

十、与前几章的衔接

章节与本章关系
第2章 邻域 CF8.5.1 把 ((u,i)) 邻域推广为 ((u,i,t))
第3章 MFFM 可看作带特征交互的 MF 推广;DeepFM 共享 Embedding
第5章 混合情境模块可与 CF/CB 并行或级联(特征扩充)
第6章 评测分情境评测;注意稀疏切片上指标波动
第7章 LTR情境特征接入 (\hat{y}_{ui});BPR + 上下文特征
第9章 时空时间/位置作为最重要情境的专项算法

十一、本章小结(背诵版)

  1. 情境感知:(f: U \times I \times C \to A),解决「同人在不同场景要不同东西」。
  2. 情境定义:内在情感(心情/意图/认知)+ 外部环境(物理/社交/媒体)。
  3. 获取方式:隐式优先 → 推理 → 显式;多源组合。
  4. 数据立方体:多维表示;稀疏性是核心难题,树层次泛化缓解。
  5. 预过滤:先按 c 切数据再传统推荐;不改算法,易稀疏。
  6. 后过滤:先全局推荐再按 c 过滤/重排;上线最快。
  7. 情境建模:c 进模型;邻域扩展或 FM/FFM/DeepFM
  8. FM 关键:One-Hot + 二阶隐向量交互;情境 = 额外特征 Field。
  9. DeepFM:FM(低阶)+ DNN(高阶)+ 共享 Embedding。
  10. 选型:硬约束用后过滤;情境改变分布用预过滤;多特征耦合用建模。

十二、面试题速记

  1. 情境感知推荐 vs 传统推荐?
    传统只建模 (p(i|u));情境感知建模 (p(i|u,c)),c 含时间、地点、设备、意图等。

  2. 三种融合方式区别?
    预过滤=输入前切片;后过滤=输出后调整;建模=c 写入 (f(u,i,c))。前两种不改原算法。

  3. 数据立方体为何更稀疏?
    每多一维情境,有效观测被分到更多格子,单格样本指数级减少。

  4. 层次泛化做什么?
    情境树向上合并(周一22点→工作日晚间→任意),用更粗粒度换更多训练样本。

  5. FM 如何解决高维稀疏?
    用 (k) 维隐向量 (\mathbf{v}_i) 分解二阶交互,参数量 (O(kp)) 而非 (O(p^2))。

  6. 情境特征怎么接入 FM?
    One-Hot 拼入 (x),与 user/item 同等对待;多值情境(多个同伴)可权重归一化。

  7. FFM 比 FM 强在哪?
    同一特征对不同 Field 用不同隐向量,交叉更精细。

  8. DeepFM 双塔各干什么?
    FM 显式二阶交叉;DNN 学高阶非线性;Sigmoid 融合输出。

  9. 预过滤和后过滤各适合什么?
    预过滤:情境强烈改变偏好且数据够;后过滤:距离/营业时间等硬约束、快速改造。

  10. 第9章与本章关系?
    本章通用框架;第9章专讲时间效应、时间衰减 CF、会话推荐、LBS 等。


十三、课后思考(对应教材习题)

  1. 简述情境感知推荐的基本思想与主要假设。
  2. 对比预过滤、后过滤、情境建模的优缺点与适用场景(见本文第八节表格)。
  3. 任选一种情境(如「出行方式:步行/驾车/公交」),画树状层次图。
  4. 描述图 8-3 各模块职责:用户库、项目库、情境源、三种建模、推荐算法、列表。
  5. FM 的基本思想:One-Hot 特征 + 一阶线性 + 二阶隐向量内积交互。
  6. (实践)用 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章_基于排序学习的推荐.mdp21_第5章_混合推荐系统.md 一致。

内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值