以毒攻毒Fight Fire with Fire: Towards Robust Recommender Systems via Adversarial Poisoning Training论文解读
1 摘要
最近的研究表明,推薦系統是脆弱的,攻擊者很容易將精心設計的惡意配置文件注入系統,從而導致有偏見的推薦。我們不能否認這些數據的合理性,因此建立一個強大的推薦系統勢在必行。對抗性訓練已被廣泛研究以獲得可靠的建議。然而,傳統的對抗訓練給參數(輸入)增加了小的擾動,這不符合推薦系統中的中毒機制。因此,對于非常擅長學習現有數據的實用模型,它的表現并不好。為了解決上述限制,我們提出了對抗性中毒訓練(APT)。它通過注入虛假用戶(ERM 用戶)來模擬中毒過程,這些虛假用戶致力于最小化經驗風險以構建一個強大的系統。此外,為了生成 ERM 用戶,我們探索了一種近似方法來估計每個假用戶對經驗風險的影響。盡管“以火取勝”的策略似乎違反直覺,但我們從理論上證明了所提出的 APT 可以提高中毒魯棒性的上限。此外,我們提供了第一個理論證明,即對抗性訓練對增強推薦穩健性具有積極影響。通過對四個真實世界數據集進行五次中毒攻擊的廣泛實驗,結果表明 APT 的魯棒性改進顯著優于基線。值得一提的是,APT 在大多數情況下也提高了模型泛化能力。
2 預備知識
2.1 矩陣分解
問:矩陣分解為什么不能進行精確分解?也就是R=UVR = UVR=UV,而不是R≈UVR \approx UVR≈UV。
答:從欠定方程、正定方程、超定方程角度考慮,由于評分矩陣上需要擬合的點比變量多,通過最小二乘法進行誤差最小擬合。
問:為什么需要正則項?
答:為了防止過擬合。
問:為什么正則項必須是二范數?
答:一范數和二范數,還有其它的都可以作為正則項,推薦去看B站上的浙江大學胡浩基老師的《機器學習》的視頻,里面有理論推導。
2.2 針對推薦系統的對抗訓練
對抗訓練向模型參數(或輸入)添加擾動以迫使推薦系統適應這種噪聲并學習擾動的非魯棒性特征,從而增強面對對抗性攻擊的魯棒性。
Δ\DeltaΔ是專門用于破壞推薦的附加擾動,?>0\epsilon > 0?>0限制擾動的幅度,λadv\lambda_{adv}λadv?控制擾動的影響,D\mathcal{D}D、θR\theta_RθR?和L\mathcal{L}L分別是推薦系統的數據集、參數和訓練損失。
簡而言之,對抗訓練在推薦者和攻擊對手之間進行零和博弈,并在博弈中尋求魯棒模型。
問:公式(2)里面為什么有min?\minmin,還有max?\maxmax?
答:這個公式很有意思,可以分為兩個步驟來理解,第一步是在已經訓練好的模型(即固定參數θR\theta_RθR?),攻擊者通過加入擾動Δ\DeltaΔ使得模型的誤差最大,這樣可以保證攻擊的效果最佳;第二步是利用已經污染后的數據集進行重新訓練模型,也就是改變θR\theta_RθR?,如果是矩陣分解,就是重新計算新的子矩陣UUU和VVV,使得損失最小。
2.3 威脅模型
攻擊目標。根據攻擊者的意圖,他們可以設計各種攻擊,包括提升攻擊、降級攻擊和可用性攻擊[22]。提升攻擊(降級攻擊)通常旨在增加(降低)目標項目的受歡迎程度(例如,提高(降低)項目在基于排名的模型上的推薦排名 [24])。對于可用性攻擊,攻擊者希望最大化推薦誤差以最終使模型無用。我們不能刪除現有的評分,因此降級攻擊可以通過增加非目標項目的受歡迎程度來實現,直到目標項目不在用戶的推薦列表中[42],這在某種意義上相當于提升攻擊。此外,可用性攻擊本質上是提升攻擊和降級攻擊的混合體。為簡單起見,我們主要專注于防御提升攻擊。
攻擊能力。理論上,只要注入的假配置文件足夠大,任何模型都是脆弱的。顯然,模型的魯棒性和攻擊能力不能解耦。另外,注入過多的假用戶操作難度大,難免會產生與正常用戶不同的簽名,導致被檢測到。鑒于上述考慮,我們限制攻擊者最多注冊 𝑛′ 惡意用戶,每個用戶的評分上限為 𝑚′。
攻擊知識。 我們考慮白盒攻擊下的研究; 也就是說,攻擊者可以掌握推薦系統的一切,包括使用的算法、具體的參數設置,甚至用戶的歷史行為。 盡管獲取知識的挑戰使得這種理想的攻擊不如黑盒攻擊實用,但我們工作的重點是防御。 白盒攻擊為防御提供了最差的假設,也是評估推薦穩健性的最嚴格的測試,超越了黑盒攻擊。
3 對抗性中毒訓練
假設D={r1,…,rn}\mathcal{D}=\{r_1, \dots, r_n\}D={r1?,…,rn?}是可能被污染的數據集。D?={r1?,…,rn??}\mathcal{D}^*=\{r_1^*, \dots, r_{n^*}^*\}D?={r1??,…,rn???}是一組致力于最小化經驗風險的 n?n^*n?假用戶,那么對抗性中毒訓練的框架定義如下:
與公式(2)中描述的傳統對抗訓練相比,APT 的內在目標是最小化操作,APT 中使用的擾動是中毒用戶,我們稱之為 ERM 用戶或防御用戶。
問:又如何來理解公式(3)呢?
答:這個公式也可以分為兩個步驟來理解,第一步是一批假用戶進行評分得到數據集D?D^*D?,這個假用戶的評分不能破壞原有評分的分布,也就是在原有參數θR\theta_RθR?不變的情況下,損失最小;第二步是利用原有數據+新構造的數據集,重新訓練新的參數θR\theta_RθR?。
APT本質上模擬了對手的中毒過程,可以解決推薦中對抗訓練的偽中毒問題。 當前的主要挑戰是如何優化公式(3)的內在目標以產生ERM用戶。 由于影響函數在決策預測中的應用 [19],我們通過估計每個用戶對經驗風險的影響來推導出一個近似求解器來生成 ERM 用戶。
影響函數評估數據變化對決策的敏感性。 具體來說,對于訓練集中的一個點zzz,我們對其添加一個小的擾動δ\deltaδ,使其成為z′=z+δz' = z + \deltaz′=z+δ。那么這個修改對測試點ztestz_{test}ztest?的影響定義為:
Ipert,loss(z,δ):=?1n?θL(ztest,θ^)THθ^?1?z?θL(z,θ^)δ\mathcal{I}_{pert, loss}(z, \delta) := -\frac{1}{n} \nabla_\theta \mathcal{L}(z_{test}, \hat{\theta})^T H_{\hat{\theta}}^{-1} \nabla_z \nabla_\theta \mathcal{L}(z, \hat{\theta}) \deltaIpert,loss?(z,δ):=?n1??θ?L(ztest?,θ^)THθ^?1??z??θ?L(z,θ^)δ
符號說明:nnn是用戶數,L\mathcal{L}L是公式一中的訓練損失(training loss),HθH_\thetaHθ?是訓練損失的Hessian矩陣,?\nabla?一般表示梯度,在這里文章沒有說明到底是什么。
影響向量I\mathcal{I}I為:
啃公式太吃力了,我們還是來看看算法流程吧:
看了算法流程之后,我對這篇文章的工作有了一個大致的理解,分為五個步驟:
(1)隨機添加一些用戶構成假用戶集D?\mathcal{D}^*D?;
(2)對原始數據集D\mathcal{D}D進行訓練(矩陣分解);
(3)根據訓練后的loss計算影響向量I\mathcal{I}I;
(4)以概率exp(?tIi)∑j∈Φexp(?tIj)\frac{exp(-tI_i)}{\sum_{j \in \Phi} exp(-tI_j)}∑j∈Φ?exp(?tIj?)exp(?tIi?)?從項目集Φ\PhiΦ中選擇m?m^*m?個項目,讓假用戶對這些項目進行評分,評分服從(μi+r+,σi)(\mu_i + r^+, \sigma_i)(μi?+r+,σi?);
(5)新的數據集為:D′=D∪D?\mathcal{D}^{'} = \mathcal{D} \cup \mathcal{D}^*D′=D∪D?,對新的數據集重新進行訓練(矩陣分解)。
作者認為通過這種方式構建的新數據集可以有效的抵抗中毒攻擊。
4 吐個槽,不對的地方請指正
看了這篇文章后,感覺有些關鍵的地方沒有看懂:
(1)如何構建假用戶集?
(2)選哪些項目來進行評分,也就是說具體的選擇策略是什么?
(3)新的數據集為什么能抵抗中毒攻擊?
個人覺得這篇文章有幾個地方需要改進:
(1)符號系統較為凌亂,比如D?\mathcal{D}^*D?,一會兒指代假用戶集,一會兒指代假用戶評分后構建的數據集,可否增加一個符號系統;
(2)缺乏一個running example,也就是一個例子,通過這個例子可以幫助讀者理解作者的具體做法。
總結
以上是生活随笔為你收集整理的以毒攻毒Fight Fire with Fire: Towards Robust Recommender Systems via Adversarial Poisoning Training论文解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java listview颜色_[摘]a
- 下一篇: mac 上传ftp服务器文件夹权限,ma