第10章 基于社交关系的推荐 — 通俗讲解

第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% 的中国用户在一定程度上信任家人/朋友的推荐。

看电影、买书、下馆子——我们常问「你试过什么好的?」。社交推荐 = 用社交关系量化用户间相互影响,模拟真实决策过程。

传统 CF 仅行为矩阵 R

社交推荐 R + 社交矩阵 S

10.2 邻域: 相似度/图扩散

10.3 模型: SoRec/RSTE/SocialMF

10.4 曝光: SERec

与第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)=vS(u,K)N(i)wuvrvi

评分预测

rui=∑vwuvrvi∑vwuvr_{ui} = \frac{\sum_{v} w_{uv} r_{vi}}{\sum_{v} w_{uv}}rui=vwuvvwuvrvi

含用户评分偏差

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+vwuvvwuv(rvirˉv)


3.2 10.2.2 基于图扩散的推荐

图 10-3:用户–物品二部图 + 用户–用户社交边

边类型典型权重
用户–物品(行为)1
用户–用户(社交)(\alpha)
  • (\alpha > 1):更信社交
  • (\alpha < 1):更信行为

物质扩散流程(目标用户 (u_1),图 10-4):

  1. 在 (u_1) 交互过的物品上放资源
  2. 物品 → 用户
  3. 用户 → 社交邻居 + 所交互物品
  4. 迭代至稳定
  5. 按物品资源量排序推荐

更新公式

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=iN(j)kN(i)wikpitwij

与第2章 2.7 物质扩散一脉相承,只是图里多了社交边。


四、10.3 基于模型的社交化推荐

社交信息作为辅助数据,参与评分矩阵重构/分解。

4.1 10.3.1 潜在社交因子 — SoRec

假设

  1. 社交关系由潜在社交因子 + 潜在用户因子决定
  2. 评分矩阵 (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,jIijR(Rijg(UiVjT))2+2λSi,kIikS(Sikg(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α)kS(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,jIijR(Rijg(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=kS(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=RUVT2+λSUikSikUk2+正则

(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) 可能含义
看到了,不喜欢
根本没看到(未曝光)

两步过程

  1. 曝光 (\alpha_{ij}):物品是否进入用户视野(受好友行为影响)
  2. 行为 (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)=fS(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章 PMFSoRec/RSTE/SocialMF 基于 PMF
第8章社交是情境;与位置可融合
第11章 HIN社交边可入异质信息网络

八、本章小结(背诵版)

  1. 动机:用户决策受社交影响;(R + S) 联合建模。
  2. 社交数据:信任式(有向)vs 好友式(对称);矩阵 (S)。
  3. 邻域法:熟悉度 + 兴趣相似度 → (w_{ij});或二部图+社交边扩散。
  4. SoRec:(R, S) 共享 (U),同时分解。
  5. RSTE:(\alpha \cdot) 自偏好 + ((1-\alpha)\cdot) 好友偏好。
  6. SocialMF:(U_i = \sum S_{ik} U_k);SoReg:(|U_i-U_k|) 正则。
  7. SERec:曝光 (\alpha) + 偏好 (R);EM 估计;好友推「看见」而非「喜欢」。

九、面试题速记

  1. 社交推荐 vs 传统 CF? 引入 (S);相似用户可来自社交而非仅行为共现。
  2. 信任式 vs 好友式? 有向 vs 对称;矩阵是否 (S_{ij}=S_{ji})。
  3. 熟悉度公式? 共同好友 / 好友并集(杰卡德 on 社交圈)。
  4. RSTE 中 (\alpha) 含义? 自偏好 vs 社交影响的权重。
  5. SocialMF 与 SoReg 区别? 前者 (U_i) 等于好友加权和;后者好友 (U) 相近。
  6. SERec 解决什么? 0 可能=未曝光;社交提高曝光概率。
  7. 图扩散中 (\alpha) 边权? 用户–用户社交边相对行为边的权重。

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

  1. 简述社交推荐基本思想与主要假设。
  2. 实现邻域社交推荐并验证。
  3. 实现潜在社交因子学习模型(如 SoRec 简化版)。
  4. 实现显式社交关系模型(如 RSTE)。
  5. 简述社会曝光协同过滤思想。
  6. 调研社交推荐应用场景与案例。

十一、延伸阅读

  • 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 一致。

内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖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、付费专栏及课程。

余额充值