Poisoning Attacks to Graph-Based Recommender Systems ACSAC’18
这篇文章虽然是攻击图推荐模型,但是实际攻击的是Random Walk算法
Random Walk
- 选择N步作为随机步数的总数,即停止的目标
- 从初始点开始( starting point),我们走得每一步都有一个概率,来决定我们继续或是重新开始(回到初始点)
- 当你决定要继续random walk时,你会统一(如果你的边是带有权重的,你可以做权重采样,比如rating)随机地从接下来的点(node)里选择一个邻居。接下来跳到选择的邻居那里。这样就完成了N步中的一步;
- 重复2、3
- 最后统计我们跳到同样的点的次数,最多次数的那个点就是我们的推荐内容
用随机游走给用户 u u u推荐物品时,从节点 u u u出发,每次有 1 − α 1-\alpha 1−α的概率跳转到邻居节点,也有 α \alpha α的概率回到初始 u u u节点。所有物品会得到一个转移概率,转移概率大的物品应该推荐给用户 u u u。
公式化描述就是:
p u = ( 1 − α ) ⋅ Q ⋅ p u + α ⋅ e u Q x y = { r x y ∑ z ∈ Γ x r x z if ( x , y ) ∈ E 0 otherwise p_{u}=(1-\alpha) \cdot Q \cdot p_{u}+\alpha \cdot e_{u} \\ Q_{x y}=\left\{\begin{array}{ll} \frac{r_{x y}}{\sum_{z \in \Gamma_{x}} r_{x z}} & \text { if }(x, y) \in E \\ 0 & \text { otherwise } \end{array}\right. pu=(1−α)⋅Q⋅pu+α⋅euQxy={ ∑z∈Γxr