個人評價:很有意思的一個話題,我在實際工作中也遇到過,不過這本書寫的一般,有點兒“掉書袋”,太學術化、太YY、前提假設條件太強。姑且看看做借鑑吧。
通常推薦系統利用用戶數據的時候,是假定用戶是善良的、誠實的。而攻擊,就只值認爲設法影響系統的結果、性能。
攻擊的維度:1. 針對某個物品,擡高或者降低其評分;2. 針對特定的用戶羣;3. 針對某個系統,然系統推薦不準確,甚至系統崩潰。
所有的攻擊都是通過某種方式(例如:模擬用戶行爲)來向推薦系統中注入某種特定數據來達到目的的。
攻擊類型:
1. 隨機攻擊
向系統中注入隨機數值,從而達到對推薦系統的干擾的目的。
2. 均值攻擊
在隨機攻擊的基礎之上,利用評分均值,構造更加“像”的注入數據
3. 造勢攻擊
比均值攻擊更加高明的地方在於,除了有對目標物品的高評分(或者低平分)之外,還包含了很多熱門物品的高評分,這樣的目的在於:很多用戶的使用記錄也包含了這些熱門物品,注入的數據更容易和用戶形成“近鄰”關係,從而更容易被推薦系統採用,更容易影響到最終的用戶。
4. 局部攻擊
比造勢攻擊更加高明的地方在於,局部攻擊能夠識別出特定的用戶羣體,並據此發生攻擊。——個人評價:識別特定用戶羣,在攻擊中應該很難,除非竊取了推薦系統的部分數據。
5. 針對性的打壓攻擊
與擡高某個物品的評分的目的不同,打壓攻擊是爲了要降低某個物品的評分。方法就是上面的方法,反其道而行之。通常,打壓攻擊更加容易得手——學術界還沒有解釋出爲什麼會存在這種不對稱性。
6. 點擊流攻擊和隱式反饋
手段是模擬用戶在網頁上的操作,來達到注入數據的目的。——個人懷疑,前面五種方法都是怎麼注入數據的?難不成直接修改人家後臺數據庫吧?!
點擊流攻擊通常影響的是“看了這本書的同學很多人也看了那本書”
攻擊對策
1. 提升數據注入成本
2. 自動檢測異常數據,方法因不同系統而各異,如:短時間內同方向大量數據進入、相比其他數據的異常數據進入
保護數據隱私
1. 在正常數據中加入隨機擾動
2. 分佈式存儲——同一個用戶的數據被存在多個地方,即便某一個地方泄露,也不能獲取整個用戶記錄
完。