AI對抗系列之--你的推薦算法被破防了嗎?
當你在Google搜尋新聞資訊時,搜索結果卻混進了亂七八糟的小黃文……
當你在知網查詢學術文獻時,排在前面的居然是“論咸魚的30種烹飪方式”……
當你在全球最大同性交友社區GitHub搜索摸魚插件時,出來的卻是996icu……
以上場景不是瞎掰,基于AI神經網絡脆弱性帶來的信息檢索攻擊風險,這一切都有可能發生。
對于廣大網民來說,信息檢索無疑是個日常高頻行為——寫論文查文獻、做菜搜食譜、買電影票前看影評口碑……借助搜索引擎/工具進行信息檢索,是我們查詢和獲取信息的主要手段。
而當前的信息檢索算法,為了進一步提升檢索任務的精度,很多都是基于神經網絡設計的模型來優化的。因此,神經網絡的脆弱性,也將更多安全隱患引入了信息檢索領域。本著以攻促防的目的,我們做了一次“擾亂搜索排名”的研究實驗。
首先,利用微軟發布的段落檢索數據集(英文文本)作為本次實驗數據,數據樣本分為查詢詞、正樣本、負樣本三類—— 查詢詞 ,也就是用戶輸入的查詢對象; 正樣本 ,表示屬于此查詢詞下的段落; 負樣本 ,表示和此查詢詞無關的段落。
這里舉個例子:
查詢詞: about how much paint do you need to paint a bedroom (粉刷臥室需要多少油漆)
正樣本: If you choose to tackle a painting project yourself, there are several items you'll need to purchase. The first is paint. Expect to pay between $15 and $30 per gallon of paint, and you'll need 2-3 gallons for an average-sized bedroom (with some left over for contingencies and touch-ups). You also have several options for the shine or gloss of your paint. Flat finish or wall paint is paint with a matte surface that doesn't reflect light. (大意:需要7~12升的油漆)
負樣本: 1 Note: Detailing clay does not remove oxidized paint or fill in blemishes. 2 If your paint is mildly oxidized, clean the paint with clay and then use a polish to remove the oxidized paint. 3 If the oxidation is severe, polish first because the oxidized paint may flake off as you clay and ruin the clay bar. (大意:黏土使用的一些注意事項)
這個例子中,正樣本與查詢詞的相關性得分為 73.344040 ,負樣本的得分為 61.572620 。
我們知道,信息與查詢詞的相關性越高,搜索排名就越靠前,也就越容易得到曝光。而我們實驗要做的,就是給負樣本的段落中加入一定長度的字詞作為trigger,提升該負樣本與查詢詞的相關性,從而使其獲得更高的搜索排名,更容易被搜索引擎“找到”。
于是,根據上述例子中的查詢詞,采用公開論文介紹的AI算法,學習生成了一個長度為5個單詞的trigger:
“bedroom formula paintings national code”
當我們對負樣本的段落加入該trigger后,發現負樣本與查詢詞的相關性得分,從原來的 61.572620 提升至 78.570793 ,超過了正樣本的得分。這就意味著,通過為段落加入trigger,能夠增強與特定查詢詞的搜索相關性。
為了測試對比不同長度trigger的攻擊效果,這里分別測試了trigger長度為1、5、10個單詞情況下的效果,在每種情況下分別列出了在3個樣本被攻擊后的相關性得分情況——

如圖表所示,trigger僅為1個單詞時,也能一定程度提升段落在特定查詢下的相關性得分,但是效果相對有限。

可以看到,對負樣本加入5個單詞的trigger時,段落在特定查詢詞下的相關性得分得到了比較顯著的提升。

而當trigger長度增加到10個單詞時,效果進一步增強,在大部分情況下負樣本相關性得分甚至超過了正樣本的得分——這樣的攻擊效果,足以造成檢索結果大亂套的后果。
此外,我們以上述在查詢詞(about how much paint do you need to paint a bedroom)下學到的trigger(bedroom formula paintings national code)為例,隨機選取100個樣本,計算將trigger拼接在其他段落后和當前查詢詞相關性得分的變化,結果如下圖所示:

圖:100個樣本加入同一個trigger后,與當前查詢詞的相關性得分變化
圖中,每條紅線的末端圓點為加入trigger前負樣本的段落得分,紅線頂端圓點為加入trigger后的得分??梢钥吹?,所有樣本在加入trigger后,相關性均得到顯著提升,得分平均提升22.21%。由此可以得到結論,trigger在不同段落上具備遷移性,通過AI學習獲取的trigger,可以提升不同文檔在當前查詢詞下的檢索排名。
總而言之,對檢索對象增加對抗擾動,從而擾亂搜索相關性排名,是一個具備可行性且具有顯著實際危害的攻擊場景。一旦信息檢索算法被攻擊,檢索結果出錯,將導致用戶被誤導或被欺詐等嚴重后果。該攻擊手法也有可能被不法分子利用作惡,比如用來定向輸出種族主義言論、傳播黃賭毒信息等。因此,重視這里面的風險并提前防范尤為重要。
當前,攻擊方法生成的trigger還難以控制語法結構的正確性,因此對信息檢索場景文檔進行語法分析,能夠一定程度幫助過濾發現攻擊。另外,類似圖像領域的對抗訓練也有助于增強信息檢索模型的健壯性,幫助降低被攻擊風險。


























