第10章 基于社交关系的推荐 — 通俗讲解
对应教材:刘宏志《推荐系统》第10章(PDF:
推荐算法.pdf,目录见toc.json,PDF 页 175–187 ≈ 书页 164–176)
前置章节:第2章协同过滤、第3章矩阵分解、第8章情境(社交是情境之一)
经典参考:Ma et al. (2008) SoRec/RSTE/SocialMF;Jamali & Ester (2010) SocialMF
章节目录速览
| 节 | 标题 | PDF 页 |
|---|---|---|
| 10.1 | 社交关系数据 | 164 |
| 10.2 | 基于邻域的社交化推荐 | 166 |
| 10.2.1 | 基于用户的协同过滤 | 166 |
| 10.2.2 | 基于图扩散的推荐 | 167 |
| 10.3 | 基于模型的社交化推荐 | 169 |
| 10.3.1 | 基于潜在社交因子学习的推荐 | 169 |
| 10.3.2 | 基于显式社交关系的推荐 | 171 |
| 10.4 | 基于社会曝光的协同过滤 | 174 |
| 习题 | — | 176 |
一、先搞懂:为什么需要「社交推荐」?
传统 CF 假设用户独立决策;现实中:
约 85% 的中国用户在一定程度上信任家人/朋友的推荐。
看电影、买书、下馆子——我们常问「你试过什么好的?」。社交推荐 = 用社交关系量化用户间相互影响,模拟真实决策过程。
与第8章:社交信息是情境的一种(第9章 9.3.3 也提到社交+位置融合)。
二、10.1 社交关系数据
2.1 两类社交关系
| 类型 | 方向 | 平台示例 |
|---|---|---|
| 信任式 | 单向:(u_i) 信任 (u_j) 不一定反向 | 微博关注、Twitter |
| 好友式 | 双向/对称:互为好友 | 微信、QQ、豆瓣 |
2.2 社交关系矩阵 (S)
(S = [S_{ij}]_{m \times m}):
- (S_{ij} = 1):(u_i) 信任/好友 (u_j)
- (S_{ij} = 0):否则
- 好友式:(S_{ij} = S_{ji})(对称,图 10-1)
- 信任式:一般不对称(图 10-2,行=信任者,列=被信任者)
(S(i) = {u_j \mid S_{ij} = 1}):(u_i) 的社交邻域。
三、10.2 基于邻域的社交化推荐
3.1 10.2.1 社交化 User-CF
核心:用社交信息补充或修正用户相似度 (w_{ij})。
方法一:直接用社交矩阵
wij=Sijw_{ij} = S_{ij}wij=Sij
简单但噪声大(僵尸粉、超活跃账号)。
方法二:熟悉度(Familiarity)
共同好友占比(杰卡德):
f(ui,uj)=∣S(i)∩S(j)∣∣S(i)∪S(j)∣f(u_i, u_j) = \frac{|S(i) \cap S(j)|}{|S(i) \cup S(j)|}f(ui,uj)=∣S(i)∪S(j)∣∣S(i)∩S(j)∣
方法三:熟悉度 + 兴趣相似度
兴趣相似(行为集合 (R(u)) 的杰卡德):
s(ui,uj)=∣R(ui)∩R(uj)∣∣R(ui)∪R(uj)∣s(u_i, u_j) = \frac{|R(u_i) \cap R(u_j)|}{|R(u_i) \cup R(u_j)|}s(ui,uj)=∣R(ui)∪R(uj)∣∣R(ui)∩R(uj)∣
综合相似度:
| 融合 | 公式 |
|---|---|
| 加权和 | (w_{ij} = \alpha f + (1-\alpha)s) |
| 乘积 | (w_{ij} = f \cdot s) |
生活理解:是好友((f) 高)且口味像((s) 高)的人,推荐权重才大——仅有好友关系不够(父母与子女兴趣可完全不同)。
预测公式(与第2章相同,换 (w_{uv}))
Top-N(隐式):
p(u,i)=∑v∈S(u,K)∩N(i)wuvrvip(u,i) = \sum_{v \in S(u,K) \cap N(i)} w_{uv} r_{vi}p(u,i)=v∈S(u,K)∩N(i)∑wuvrvi
评分预测:
rui=∑vwuvrvi∑vwuvr_{ui} = \frac{\sum_{v} w_{uv} r_{vi}}{\sum_{v} w_{uv}}rui=∑vwuv∑vwuvrvi
含用户评分偏差:
rui=rˉu+∑vwuv(rvi−rˉv)∑vwuvr_{ui} = \bar{r}_u + \frac{\sum_{v} w_{uv}(r_{vi} - \bar{r}_v)}{\sum_{v} w_{uv}}rui=rˉu+∑vwuv∑vwuv(rvi−rˉv)
3.2 10.2.2 基于图扩散的推荐
图 10-3:用户–物品二部图 + 用户–用户社交边。
| 边类型 | 典型权重 |
|---|---|
| 用户–物品(行为) | 1 |
| 用户–用户(社交) | (\alpha) |
- (\alpha > 1):更信社交
- (\alpha < 1):更信行为
物质扩散流程(目标用户 (u_1),图 10-4):
- 在 (u_1) 交互过的物品上放资源
- 物品 → 用户
- 用户 → 社交邻居 + 所交互物品
- 迭代至稳定
- 按物品资源量排序推荐
更新公式:
pjt+1=∑i∈N(j)pitwij∑k∈N(i)wikp_j^{t+1} = \sum_{i \in N(j)} \frac{p_i^t w_{ij}}{\sum_{k \in N(i)} w_{ik}}pjt+1=i∈N(j)∑∑k∈N(i)wikpitwij
与第2章 2.7 物质扩散一脉相承,只是图里多了社交边。
四、10.3 基于模型的社交化推荐
社交信息作为辅助数据,参与评分矩阵重构/分解。
4.1 10.3.1 潜在社交因子 — SoRec
假设:
- 社交关系由潜在社交因子 + 潜在用户因子决定
- 评分矩阵 (R) 与社交矩阵 (S) 共享同一用户隐空间
图 10-5:(R_{ij}) 由 (U_i, V_j) 生成;(S_{ik}) 由 (U_i, Z_k) 生成。
目标函数:
LSoRec=12∑i,jIijR(Rij−g(UiVjT))2+λS2∑i,kIikS(Sik−g(UiZkT))2+正则项L_{SoRec} = \frac{1}{2}\sum_{i,j} I_{ij}^R (R_{ij} - g(U_i V_j^T))^2 + \frac{\lambda_S}{2}\sum_{i,k} I_{ik}^S (S_{ik} - g(U_i Z_k^T))^2 + \text{正则项}LSoRec=21i,j∑IijR(Rij−g(UiVjT))2+2λSi,k∑IikS(Sik−g(UiZkT))2+正则项
- (g):Sigmoid,把内积映射到 ([0,1])
- 同时拟合评分和社交结构 → 用户向量 (U_i) 更可靠,缓解冷启动
4.2 10.3.2 显式社交关系
(1)RSTE — 信任好友偏好集成
假设:最终决策 = 自己偏好 + 信任好友影响的加权组合。
R^ij=αUiVjT+(1−α)∑k∈S(i)SikUkVjT\hat{R}_{ij} = \alpha U_i V_j^T + (1-\alpha) \sum_{k \in S(i)} S_{ik} U_k V_j^TR^ij=αUiVjT+(1−α)k∈S(i)∑SikUkVjT
- (\alpha \in [0,1]):多依赖自己 vs 多依赖朋友
- 图 10-6:(R_{ij}^*)(个人)与 (R_{ij}^{**})(社交)加权融合
仅社交预测(矩阵形式):(\hat{R} = SR)(每行是信任好友评分的加权平均)。
RSTE 损失:
LRSTE=12∑i,jIijR(Rij−g(Xij))2+正则L_{RSTE} = \frac{1}{2}\sum_{i,j} I_{ij}^R (R_{ij} - g(X_{ij}))^2 + \text{正则}LRSTE=21i,j∑IijR(Rij−g(Xij))2+正则
其中 (X_{ij} = \alpha U_i V_j^T + (1-\alpha)\sum_k S_{ik} U_k V_j^T)。
(2)SocialMF — 用户向量 = 好友向量加权和
Ui=∑k∈S(i)SikUk(Sik 已归一化)U_i = \sum_{k \in S(i)} S_{ik} U_k \quad (S_{ik} \text{ 已归一化})Ui=k∈S(i)∑SikUk(Sik 已归一化)
图 10-7:好友 (U_k) 加权汇聚成 (U_i),再与 (V_j) 预测 (R_{ij})。
LSocialMF=∥R−UVT∥2+λS∥Ui−∑kSikUk∥2+正则L_{SocialMF} = \|R - UV^T\|^2 + \lambda_S \|U_i - \sum_k S_{ik} U_k\|^2 + \text{正则}LSocialMF=∥R−UVT∥2+λS∥Ui−k∑SikUk∥2+正则
(3)SoReg — 好友向量应相似
正则项:(\sum_{i,k \in S(i)} S_{ik} |U_i - U_k|^2)(好友隐向量靠近,而非 (U_i) 等于加权和)。
五、10.4 基于社会曝光的协同过滤(SERec)
5.1 问题:好友 ≠ 口味相同
前面模型常假设「好友偏好相似」。现实中加好友动机多样(亲戚、同事、营销号)——相似度假设常不成立。
5.2 新视角:社会曝光(Social Exposure)
隐式反馈 (r_{ui} \in {0,1}) 的歧义:
| (r_{ui}=0) 可能含义 |
|---|
| 看到了,不喜欢 |
| 根本没看到(未曝光) |
两步过程:
- 曝光 (\alpha_{ij}):物品是否进入用户视野(受好友行为影响)
- 行为 (R_{ij}):曝光后是否点击/购买
5.3 SERec 框架(图 10-8)
- (\alpha_{ij} \sim \text{Bernoulli}(\mu_{ij}))
- 若 (\alpha_{ij}=0) → (R_{ij}=0)
- 若 (\alpha_{ij}=1) → (R_{ij} \sim \mathcal{N}(U_i V_j^T, \sigma_R^2))
曝光先验:
μij=eij+Φ(S),Φ(S)=∑f∈S(i)s⋅μfj\mu_{ij} = e_{ij} + \Phi(S), \quad \Phi(S) = \sum_{f \in S(i)} s \cdot \mu_{fj}μij=eij+Φ(S),Φ(S)=f∈S(i)∑s⋅μfj
好友若已曝光/交互某物品 → 提高 (u_i) 对该物品的曝光概率。
训练:(\alpha_{ij}) 不可直接观测 → EM 算法
- E 步:估计 (P_{ij} = E[\alpha_{ij} \mid R_{ij}])
- M 步:更新 (U_i, V_j, \mu_{ij})
六、算法对比
| 算法 | 核心思想 | 适用 |
|---|---|---|
| 社交 User-CF | 熟悉度×兴趣相似度 | 有社交图 + 行为,要快 |
| 图扩散 | 行为+社交图上传播资源 | 解释「朋友的朋友」 |
| SoRec | (R) 与 (S) 联合分解 | 评分预测,社交作正则 |
| RSTE | 自偏好与好友偏好加权 | 信任有强度 (S_{ik}) |
| SocialMF/SoReg | 隐向量受好友约束 | PMF 框架扩展 |
| SERec | 先建模曝光再建模偏好 | 隐式反馈、好友≠同类 |
七、与前几章衔接
| 章节 | 关系 |
|---|---|
| 第2章 CF / 图扩散 | 10.2 直接扩展 |
| 第3章 PMF | SoRec/RSTE/SocialMF 基于 PMF |
| 第8章 | 社交是情境;与位置可融合 |
| 第11章 HIN | 社交边可入异质信息网络 |
八、本章小结(背诵版)
- 动机:用户决策受社交影响;(R + S) 联合建模。
- 社交数据:信任式(有向)vs 好友式(对称);矩阵 (S)。
- 邻域法:熟悉度 + 兴趣相似度 → (w_{ij});或二部图+社交边扩散。
- SoRec:(R, S) 共享 (U),同时分解。
- RSTE:(\alpha \cdot) 自偏好 + ((1-\alpha)\cdot) 好友偏好。
- SocialMF:(U_i = \sum S_{ik} U_k);SoReg:(|U_i-U_k|) 正则。
- SERec:曝光 (\alpha) + 偏好 (R);EM 估计;好友推「看见」而非「喜欢」。
九、面试题速记
- 社交推荐 vs 传统 CF? 引入 (S);相似用户可来自社交而非仅行为共现。
- 信任式 vs 好友式? 有向 vs 对称;矩阵是否 (S_{ij}=S_{ji})。
- 熟悉度公式? 共同好友 / 好友并集(杰卡德 on 社交圈)。
- RSTE 中 (\alpha) 含义? 自偏好 vs 社交影响的权重。
- SocialMF 与 SoReg 区别? 前者 (U_i) 等于好友加权和;后者好友 (U) 相近。
- SERec 解决什么? 0 可能=未曝光;社交提高曝光概率。
- 图扩散中 (\alpha) 边权? 用户–用户社交边相对行为边的权重。
十、课后思考(对应习题)
- 简述社交推荐基本思想与主要假设。
- 实现邻域社交推荐并验证。
- 实现潜在社交因子学习模型(如 SoRec 简化版)。
- 实现显式社交关系模型(如 RSTE)。
- 简述社会曝光协同过滤思想。
- 调研社交推荐应用场景与案例。
十一、延伸阅读
- Ma, H. et al. (2008). SoRec: Social Recommendation Using Probabilistic Matrix Factorization. CIKM.
- Jamali, M. & Ester, M. (2010). A Matrix Factorization Technique with Trust Propagation. RecSys.
- 本书 第2章 2.7:图扩散;第3章:PMF / Sigmoid
文档风格与 p23_第8章_基于情境感知的推荐.md 一致。

1300

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



