《推荐系统实践》第5章:利用上下文信息的推荐系统

主要分为时间上下文和地点上下文,其中时间上下文主要是保证系统的实时性。下面介绍几种算法。

时间上下文推荐算法

  1. 最近最热门

计算公式:
n i ( T ) = ∑ ( u , i , t ) ∈  Train,  t < T 1 1 + α ( T − t ) n_{i}(T)=\sum_{(u, i, t) \in \text { Train, } t<T} \frac{1}{1+\alpha(T-t)} ni(T)=(u,i,t) Train, t<T1+α(Tt)1

  1. 时间上下文相关的ItemCF算法

对物品相似度和在线推荐两步进行时间相关改进:
回顾:
sim ⁡ ( i , j ) = ∑ u ∈ N ( i ) ∩ N ( i ) 1 / l o g ( 1 + ∣ N ( u ) ∣ ) ∣ N ( i ) ∣ ∣ N ( j ) ∣ \operatorname{sim}(i, j)=\frac{\sum_{u \in N(i) \cap N(i)} 1/log(1+|N(u)|)}{\sqrt{|N(i)||N(j)|}} sim(i,j)=N(i)N(j) uN(i)N(i)1/log(1+N(u))

p ( u , i ) = ∑ j ∈ N ( w ) sim ⁡ ( i , j ) p(u, i)=\sum_{j \in N(w)} \operatorname{sim}(i, j) p(u,i)=jN(w)sim(i,j)
改进:

sim ⁡ ( i , j ) = ∑ u ∈ N ( i ) ∩ N ( i ) f ( ∣ t u i − t u j ∣ ) ∣ N ( i ) ∣ ∣ N ( j ) ∣ \operatorname{sim}(i, j)=\frac{\sum_{u \in N(i) \cap N(i)} f\left(\left|t_{u i}-t_{u j}\right|\right)}{\sqrt{|N(i)||N(j)|}} sim(i,j)=N(i)N(j) uN(i)N(i)f(tuituj)
p ( u , i ) = ∑ j ∈ N ( u ) ∩ S ( i , K ) sim ⁡ ( i , j ) 1 1 + β ∣ t 0 − t i j ∣ p(u, i)=\sum_{j \in N(u) \cap S(i, K)} \operatorname{sim}(i, j) \frac{1}{1+\beta\left|t_{0}-t_{i j}\right|} p(u,i)=jN(u)S(i,K)sim(i,j)1+βt0tij1
衰减函数:

f ( ∣ t w − t w ∣ ) = 1 1 + α ∣ t w i − t w ∣ f\left(\left|t_{w}-t_{w}\right|\right)=\frac{1}{1+\alpha\left|t_{w i}-t_{w}\right|} f(twtw)=1+αtwitw1

  1. 时间上下文相关的UserCF算法

类似ItemCF算法,此法对用户兴趣相似度和预测公式进行改造。

用户之间相似度改造:
w u v = ∣ N ( u ) ∩ N ( v ) ∣ ∣ N ( u ) ∣ ∪ ∣ N ( v ) ∣ w u v = ∑ i ∈ N ( u ) ∩ N ( v ) 1 1 + α ∣ t u i − t v i ∣ ∣ N ( u ) ∣ U ∣ N ( v ) ∣ \begin{aligned} &w_{u v}=\frac{|N(u) \cap N(v)|}{\sqrt{|N(u)| \cup|N(v)|}}\\ \\ &w_{u v}=\frac{\sum_{i \in N(u) \cap N(v)} \frac{1}{1+\alpha\left|t_{u i}-t_{v i}\right|}}{\sqrt{|N(u)| U|N(v)|}} \end{aligned} wuv=N(u)N(v) N(u)N(v)wuv=N(u)UN(v) iN(u)N(v)1+αtuitvi1

预测用户对物品兴趣改造:

p ( u , i ) = ∑ v ∈ S ( u , K ) w u v r v i p(u, i)=\sum_{v \in S(u, K)} w_{u v} r_{v i} p(u,i)=vS(u,K)wuvrvi
p ( u , i ) = ∑ v ∈ S ( u , K ) w u v r v i 1 1 + α ( t 0 − t v i ) p(u, i)=\sum_{v \in S(u, K)} w_{u v} r_{v i} \frac{1}{1+\alpha\left(t_{0}-t_{v i}\right)} p(u,i)=vS(u,K)wuvrvi1+α(t0tvi)1

时间段图模型

首先构建一个时间段图模型。

使用PersonalRank,时间复杂度较高,作者提出了一种路径融合算法来度量图上两个顶点的相关性。
还记得图顶点相关性的三个特征么?为了满足后两条,构建了下面的路径权重计算公式:
Γ ( P ) = σ ( v n ) ∏ i = 1 n − 1 σ ( v i ) ⋅ w ( v i , v i + 1 ) ∣ out ⁡ ( v i ) ∣ ρ \Gamma(P)=\sigma\left(v_{n}\right) \prod_{i=1}^{n-1} \frac{\sigma\left(v_{i}\right) \cdot w\left(v_{i}, v_{i+1}\right)}{\left|\operatorname{out}\left(v_{i}\right)\right|^{\rho}} Γ(P)=σ(vn)i=1n1out(vi)ρσ(vi)w(vi,vi+1)
通过路径权重定义顶点相关度公式:
d ( v , v ′ ) = ∑ P ∈ P ( v , v ; K ) Γ ( P ) d\left(v, v^{\prime}\right)=\sum_{P \in P(v, v ; K)} \Gamma(P) d(v,v)=PP(v,v;K)Γ(P)
顶点的权重:
σ ( v ) = { 1 − α ( v ∈ U ) α ( v ∈ S U ) 1 − β ( v ∈ I ) β ( v ∈ S I ) \sigma(v)=\left\{\begin{array}{c} {1-\alpha(v \in U)} \\ {\alpha\left(v \in S_{U}\right)} \\ {1-\beta(v \in I)} \\ {\beta\left(v \in S_{I}\right)} \end{array}\right. σ(v)=1α(vU)α(vSU)1β(vI)β(vSI)
最后,路径融合算法使用的是BFS算法。

基于位置的推荐算法(LARS)

特点:兴趣本地化和活动本地化。

数据集1(用户,用户位置,物品,评分)将地理位置信息按照郭嘉、省、市、县的结构构造一个树,将用户分配到树的叶子结点上去,每个叶子结点就是同一个位置的用户的行为数据集。

作者提出了一个金字塔模型,按照一定的权重将路径上每个结点学习的多个推荐模型进行线性组合。

数据集2(用户,物品,物品位置,评分)

RecScore ⁡ ( u , i ) = P ( u , i ) −  TravelPenalty  ( u , i ) \operatorname{RecScore}(u, i)=P(u, i)-\text { TravelPenalty }(u, i) RecScore(u,i)=P(u,i) TravelPenalty (u,i)
其中TravelPenalty方法表示物品i对用户u的代价,即物品i与用户u之前评分所有物品的位置距离的平均值。
数据集3(用户,用户位置,物品,物品位置,评分)
无深入讨论。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值