Slate-based Recommender Systems 论文解读
Posted 白水baishui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Slate-based Recommender Systems 论文解读相关的知识,希望对你有一定的参考价值。
Reinforcement Learning for Slate-based Recommender Systems: A Tractable Decomposition and Practical Methodology
本博客对SlateQ论文进行了解读,如有错误请评论指正。
文章目录
1. 论文算法介绍(第四、五章)
1.1. SlateQ: 基于强化学习的推荐列表分解技术Sl
SlateQ算法将推荐列表(Slate)的整体生成 分解为了 生成单个推荐项再组成推荐列表。它的提出基于两个假设(论文第10页):
- SC(Single choice)
用户一次只在推荐列表中点击一个推荐项或不点击任何推荐项 - RTDS(Reward/transition dependence on selection)
用户对推荐项的选择会产生不同的回报和状态转移
由上述两个假设,可以得到以下两个推论(论文11页公式12和13):
R
(
s
,
A
,
i
)
=
R
(
s
,
A
′
,
i
)
=
R
(
s
,
i
)
∀
A
,
A
′
containing
i
R(s,A,i)=R(s,A',i)=R(s,i)\\qquad\\forall A,A'\\ \\text{containing}\\ i
R(s,A,i)=R(s,A′,i)=R(s,i)∀A,A′ containing i
P
(
s
′
∣
s
,
A
,
i
)
=
P
(
s
′
∣
s
,
A
′
,
i
)
=
P
(
s
′
∣
s
,
i
)
∀
A
,
A
′
containing
i
P(s'|s,A,i)=P(s'|s,A',i)=P(s'|s,i)\\qquad\\forall A,A'\\ \\text{containing}\\ i
P(s′∣s,A,i)=P(s′∣s,A′,i)=P(s′∣s,i)∀A,A′ containing i
这两个公式表达了:无论推荐项 i i i 出现在哪一个推荐列表中,只要它被用户选择了,那么它所产生的回报值和状态转移都是一样的。
在以上推论的前提下,论文利用马尔科夫决策过程模型(MDP)构造了推荐项辅助函数(论文11页公式14),用于计算在状态
s
s
s 时推荐列表中单个推荐项的 LTV(long-term value,长期价值):
Q
‾
π
(
s
,
i
)
=
R
(
s
,
i
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
i
)
V
π
(
s
′
)
\\overline{Q}^\\pi(s,i)=R(s,i)+\\gamma\\sum_{s'\\in S}P(s'|s,i)V^\\pi(s')
Qπ(s,i)=R(s,i)+γs′∈S∑P(s′∣s,i)Vπ(s′)
在有了单个推荐项LTV的基础上,计算出推荐列表整体的LTV(论文11页Proposition 1),即所有推荐项LTV的期望值:
Q
π
(
s
,
A
)
=
∑
i
∈
A
P
(
i
∣
s
,
A
)
Q
‾
π
(
s
,
i
)
Q^\\pi(s,A)=\\sum_{i\\in A}P(i|s,A)\\overline{Q}^\\pi(s,i)
Qπ(s,A)=i∈A∑P(i∣s,A)Qπ(s,i)
当个推荐项LTV值 Q ‾ π ( s , i ) \\overline{Q}^\\pi(s,i) Qπ(s,i)可以用TD方法来更新(论文12页公式19): Q ‾ π ( s , i ) ← α ( r + γ ∑ j ∈ A ′ P ( j ∣ s ′ , A ′ ) Q ‾ π ( s ′ , j ) ) + ( 1 − α ) Q ‾ π ( s , i ) \\overline{Q}^\\pi(s,i)\\leftarrow \\alpha(r+\\gamma\\sum_{j\\in A'}P(j|s',A')\\overline{Q}^\\pi(s',j))+(1-\\alpha)\\overline{Q}^\\pi(s,i) Qπ(s,i)←α(r+γj∈A′∑P(j∣s′,A′)Qπ(s′,j))+(1−α)Qπ(s,i)
也可以用Q-Learning的方法来更新(论文13页公式20): Q ‾ π ( s , i ) ← α ( r + γ max A ′ ∈ A ∑ j ∈ A ′ P ( j ∣ s ′ , A ′ ) Q ‾ π ( s ′ , j ) ) + ( 1 − α ) Q ‾ π ( s , i ) \\overline{Q}^\\pi(s,i)\\leftarrow \\alpha(r+\\gamma\\max_{A'\\in A}\\sum_{j\\in A'}P(j|s',A')\\overline{Q}^\\pi(s',j))+(1-\\alpha)\\overline{Q}^\\pi(s,i) Qπ(s,i)←α(r+γA′∈Amaxj∈A′∑P(j∣s′,A′)Qπ(s′,j))+(1−α)Qπ(s,i)
显然,使用Q-Learning的方法来更新时可以选取到最大的 Q ‾ π ( s , i ) \\overline{Q}^\\pi(s,i) Qπ(s,i),也就可以得到最优的 Q π ( s , A ) Q^\\pi(s,A) Qπ(s,A)(论文13页公式Proposition 3): Q ( s , A ) = ∑ i ∈ A P ( i ∣ s , A ) Q ‾ ( s , i ) Q(s,A)=\\sum_{i\\in A}P(i|s,A)\\overline{Q}(s,i) Q(s,A)=i∈A∑P(i∣s,A)Q(s,i)
1.2. 用Q值对推荐列表进行优化
在已经明确可以通过组合单个推荐项得到整体推荐列表的情况下,我们具体怎么去得到最优的推荐列表 A A A呢?这就涉及到对 Q π ( s , A ) Q^\\pi(s,A) Qπ(s,A)的优化了。
如论文13页Proposition 3 和 论文14页公式21所示,对 Q ( s , A ) Q(s,A) Q(s,A)的最优化公式表示为: Q ( s , A ) = max A ∈ I , ∣ A ∣ = k Q π ( S , A ) = max A ∈ I , ∣ A ∣ = k ∑ i ∈ A P ( i ∣ s , A ) Q ‾ ( s , i ) Q(s,A)=\\max_{A\\in I,|A|=k}Q^\\pi(S,A)=\\max_{A\\in I,|A|=k}\\sum_{i\\in A}P(i|s,A)\\overline{Q}(s,i) Q(s,A)=A∈I,∣A∣=kmaxQπ(S,A)=week9——recommender systems
Item-Based Collaborative Recommender System
Ng第十六课:推荐系统(Recommender Systems)
推荐系统介绍:(协同过滤)—Intro to Recommender Systems: Collaborative Filtering
CreateML Recommender 训练错误:推荐模型中的项目 ID 必须编号为 0、1、...、num_items - 1