Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
AGAS — LLM-संचालित एजेंटिक समूह शिलिंग हमला ढांचा जो अनुकूली बहु-भूमिका रणनीतियों का उपयोग करके ब्लैक-बॉक्स सहयोगी-फ़िल्टरिंग सिफ़ारिश रैंकिंग में हेरफेर करता है और साथ ही पकड़ में आने से बचता है। | Kitploit
उपकरण/GitHubGitHub/phkhanhtrinh23/agas
मशीन लर्निंगपेपर और शोधलर्निंग और शिक्षाAI सुरक्षाप्रतिकूल हमला
GitHubphkhanhtrinh23/agas

AGAS

LLM-संचालित एजेंटिक समूह शिलिंग हमला ढांचा जो अनुकूली बहु-भूमिका रणनीतियों का उपयोग करके ब्लैक-बॉक्स सहयोगी-फ़िल्टरिंग सिफ़ारिश रैंकिंग में हेरफेर करता है और साथ ही पकड़ में आने से बचता है।

रिपॉजिटरी देखें
2103 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

रिकमेंडर सिस्टम्स पर एक कुशल और प्रभावी एजेंटिक ग्रुप शिलिंग अटैक

यह पेपर का आधिकारिक कोड है: "An Efficient and Effective Agentic Group Shilling Attack on Recommender Systems"। यह पेपर AGAS प्रस्तुत करता है, जो ब्लैक-बॉक्स कोलैबोरेटिव-फ़िल्टरिंग रिकमेंडर्स के विरुद्ध एक LLM-संचालित शिलिंग अटैक है। एक Coordinator राउंड्स के एक क्रम में फ़ेक-यूज़र workers के एक पूल को ऑर्केस्ट्रेट करता है। प्रत्येक राउंड में, Coordinator आठ रणनीतियों में से एक चुनता है और प्रत्येक worker को एक रोल सौंपता है। इसके बाद Workers अपने स्वयं के ReAct-शैली तर्क लूप का उपयोग करके यह तय करते हैं कि किन आइटम्स को रेट करना है।

AGAS pipeline


1. रेपो अवलोकन```

agent_attack_rs/ bash/ # Reviewer-friendly shell scripts (RQ1–RQ5) prompts/ # Coordinator + per-role prompt templates scripts/run_agas.py # Single entry point (--dataset --victim ...) src/agas/ roles.py # Role enum {PR, SN, CA, IN} (paper symbols) signals.py # WorkerSignals (τ, γ, φ) + EnvSignals (ρ, Δρ, η, ξ, a) strategies.py # 8-strategy enum agents/ # Coordinator + Worker policies simulation/ # Episode runner (= AGAS algorithm outer loop) llm/ # OpenAI / Ollama recsys/ # Surrogate + 11-victim backends data/ # Dataset loaders + preprocessing pipeline tests/ # Pytest suite

root@kitploit:~
## 2. विधि पुनरावलोकन

AGAS चार वर्कर भूमिकाओं को तत्काल सक्रिय करता है (`roles.py` में पेपर प्रतीक):

| प्रतीक | पूरा नाम      | यह क्या करता है                                                            |
|--------|----------------|-------------------------------------------------------------------------|
| `PR`   | प्रोफाइलर       | प्लेटफ़ॉर्म की जाँच करने और ब्रिज पूल बनाने के लिए सुरक्षित फ़िलर-आइटम रेटिंग।  |
| `SN`   | स्नाइपर         | पेलोड भूमिका; सीधा लक्ष्य पुश या ब्रिज-आइटम प्रोन्नति।              |
| `CA`   | कैमोफ्लाजर   | स्टील्थ भूमिका; सौम्य दिखने वाली गतिविधि से विश्वास पुनर्निर्मित करता है।    |
| `IN`   | निष्क्रिय       | इस राउंड में कोई कार्रवाई नहीं (कूल-डाउन या क्वारंटाइन)।                         |

प्रत्येक राउंड में समन्वयक `strategies.py` से आठ रणनीतियों में से ठीक एक चुनता है
(`method_strategies.tex` देखें):

1. **विक्टिम प्रोब** (`S1_VICTIM_PROBE`)
2. **ब्रिज बिल्डिंग** (`S2_BRIDGE_BUILDING`, केवल ग्राफ़ विक्टिम)
3. **वार्म-अप** (`S3_WARM_UP`)
4. **फर्स्ट पुश** (`S4_FIRST_PUSH`)
5. **साइलेंट स्लोडाउन** (`S5_SILENT_SLOWDOWN`)
6. **प्रोफ़ाइल क्लीनअप** (`S6_PROFILE_CLEANUP`)
7. **सेफ रिप्लेसमेंट** (`S7_SAFE_REPLACEMENT`)
8. **मेन अटैक** (`S8_MAIN_ATTACK`)

समन्वयक इन निर्णयों को दो सिग्नल समूहों (`signals.py`) से संचालित करता है:

* **वर्कर सिग्नल** `τ_{t,w}, γ_{t,w}, φ_{t,w}` — विश्वास, जोखिम, और एक
  संरचनात्मक सत्यापनकर्ता। अद्यतन समीकरण `method_coordinator.tex` से
  बिल्कुल मेल खाते हैं (`eq:trust_update`, `eq:risk_update`, `eq:risk_decay`,
  `eq:profile_validator`)।
* **पर्यावरण सिग्नल** `ρ^{(t)}, Δρ^{(t)}, η_t, ξ_t = (q_t, s_t), a_t` —
  रैंक, रैंक-मूवमेंट, स्वीकृति दर, दमन सिग्नल, अलर्ट फ़्लैग। संदेह स्कोर
  `q_t` पाँच सामान्यीकृत पदों `(d̂_t, δ̂_t, m̂_t, ŝ_t, g_t)` का 0.2-भारित योग है
  जो `eq:round_suppression_terms` और `eq:round_suppression_score` से लिया गया है।

### राउंड लूप (ASCII)```
                ┌─────────────────────────────────────────────────┐
   t=0…T-1 ──►  │ 1. Observe ρ^{(t)}, update memory m_t           │
                │ 2. Update τ, γ, φ, η, ξ, a                       │
                │ 3. Coordinator picks Strategy ∈ {S1…S8}          │
                │    and assigns Role ∈ {PR, SN, CA, IN} per worker│
                │ 4. Workers act (filler / bridge / target items)  │
                │ 5. Validate + accept actions → ΔR̃^{(t+1)}        │
                │ 6. Refit / query victim → ρ^{(t+1)}              │
                └─────────────────────────────────────────────────┘
                          │
                          ▼
                   t* = argmin_t ρ^{(t)}, return R* = [R ; R̃^{(≤t*)}]

बाहरी लूप src/agas/simulation/episode.py में लागू किया गया है और algorithms/agas_end_to_end.tex को दर्शाता है।

3. वातावरण

PyTorch और CUDA केवल डीप-लर्निंग विक्टिम मॉडल ([targets] extra) के लिए आवश्यक हैं। मुख्य AGAS लूप और नियम-आधारित / सरोगेट पथ बिना किसी GPU निर्भरता के CPU पर चलते हैं।

4. इंस्टॉल```bash

pip install -e .

If you want to use the deep-learning victim models (LightGCN, NeuMF, …)

pip install -e '.[targets]'

root@kitploit:~
आवश्यक environment variables:

| Variable           | उद्देश्य                                                       | डिफ़ॉल्ट                  |
|--------------------|---------------------------------------------------------------|--------------------------|
| `OPENAI_API_KEY`   | Coordinator / worker LLMs के लिए OpenAI Responses API key।   | *(unset → fallback)*     |
| `OPENAI_MODEL`     | OpenAI को पास किया गया model name।                                  | `gpt-5.1`                |

## 4. Datasets

यह पेपर छह सार्वजनिक CF benchmarks पर मूल्यांकन करता है (देखें `experiment.tex`):

| Short name  | Source                    | Users     | Items  | Interactions       | Download                                                          | Place raw files in  |
|-------------|---------------------------|----------:|-------:|-------------------:|-------------------------------------------------------------------|---------------------|
| ML-100K     | MovieLens 100K            |       943 |  1,682 |            100,000 | [GroupLens](https://files.grouplens.org/datasets/movielens/ml-100k.zip) | `data/ml-100k/`     |
| ML-1M       | MovieLens 1M              |     6,040 |  3,706 |          1,000,209 | [GroupLens](https://files.grouplens.org/datasets/movielens/ml-1m.zip)   | `data/ml-1m/`       |
| Genome 2021 | MovieLens Tag Genome 2021 |    37,941 | 84,661 | 2,000,000 (capped) | [GroupLens](https://grouplens.org/datasets/movielens/tag-genome-2021/)  | `data/genome2021/`  |
| Netflix     | Netflix Prize             |   342,445 | 17,434 | 2,000,000 (capped) | [Kaggle](https://www.kaggle.com/datasets/netflix-inc/netflix-prize-data) | `data/netflix/`     |
| Douban      | Douban Movie              |    28,057 | 49,176 |          8,085,679 | [HKUST](http://shichuan.org/HIN_dataset.html)                     | `data/douban/`      |
| Amazon      | Amazon Reviews 2018       |   998,653 | 30,964 | 2,000,000 (capped) | [UCSD](https://nijianmo.github.io/amazon/index.html)              | `data/amazon/`      |

raw downloads को `data/<dataset>/` में डालने के बाद, चलाएँ:```bash
python scripts/preprocess_all.py --data-root data --output-root processed

प्रत्येक डेटासेट को processed/<dataset>/ के अंतर्गत canonical interactions.csv + items.csv फ़ाइलों में पुनः लिखा जाता है। स्मोक टेस्ट MovieLens के साथ आने वाले बहुत छोटे ml-latest-small सैंपल का उपयोग करते हैं।

ट्रेन / टेस्ट स्प्लिट प्रोटोकॉल

प्रीप्रोसेसिंग पाइपलाइन कोई स्प्लिट फ़ाइल संग्रहीत नहीं करती — यह पूर्ण इंटरैक्शन लॉग निर्यात करती है। स्प्लिट रनटाइम पर लागू किए जाते हैं:

यह मानक शिलिंग-अटैक मूल्यांकन प्रोटोकॉल का अनुसरण करता है: हमलावर ट्रेनिंग-सेट उपयोगकर्ताओं पर विक्टिम की रैंकिंग देखता है और तदनुसार ऑप्टिमाइज़ करता है, जो ब्लैक-बॉक्स डिप्लॉयमेंट परिदृश्य की नकल करता है।

5. कैसे चलाएँ

scripts/run_agas.py एकमात्र एंट्री पॉइंट है। पेपर प्रोटोकॉल द्वारा आवश्यक सात फ़्लैग हैं:``` python scripts/run_agas.py
--dataset ml-100k
--victim lightgcn
--rounds 18
--seed 42
--n_workers 8
--budget 0.01
--out outputs/agas_ml100k_lightgcn_seed42.json

root@kitploit:~
| फ़्लैग           | अर्थ                                                                                          |
|----------------|--------------------------------------------------------------------------------------------------|
| `--dataset`    | `ml-100k`, `ml-1m`, `genome2021`, `netflix`, `douban`, `amazon`, `ml-latest-small` में से एक।       |
| `--victim`     | `experiment.tex` से 11 शिकारों में से एक (`mf`, `bpr`, `neumf`, `gmf`, `ncf`, `ngcf`, `lightgcn`, `simgcl`, `xsimgcl`, `egcf`, `lightccf`)। |
| `--rounds`     | AGAS राउंड की संख्या `T` (पेपर डिफ़ॉल्ट `18`)।                                                  |
| `--seed`       | रैंडम सीड (पेपर पाँच पर औसत निकालता है)।                                                          |
| `--n_workers`  | फ़ेक-यूज़र पूल का आकार |
| `--budget`     | प्रति-उपयोगकर्ता इंटरैक्शन बजट `L`, जिसे के भिन्न के रूप में व्यक्त किया गया है।                                |
| `--out`        | पूर्ण एपिसोड ट्रेस और सारांश मेट्रिक्स के लिए आउटपुट JSON पथ।                                 |

### एक छोटे ML-100K नमूने पर प्रत्येक शोध प्रश्न का पुनरुत्पादन```bash
bash bash/run_performance.sh          # RQ1
bash bash/run_stealth_and_detect.sh   # RQ2 + RQ3
bash bash/run_ablation.sh             # RQ4
bash bash/run_efficiency.sh           # RQ5

प्रत्येक स्क्रिप्ट प्रिंट करती है कि वह कौन-सा प्रयोग चला रही है, आउटपुट पथ, और पेपर में संबंधित चित्र/तालिका की ओर इशारा करता एक नोट।

उदाहरण अपेक्षित कंसोल आउटपुट (छोटा किया गया):``` [RQ1] Performance benchmark — tiny ML-100K sample [RQ1] Output directory: agent_attack_rs/outputs/rq1_performance [RQ1] Map outputs to tables/benchmark_unpopular.tex === ml-latest-small / lightgcn / seed=42 === Round 0 | ρ = 1834 Δρ = +0 strategy = S1_VICTIM_PROBE Round 1 | ρ = 1450 Δρ = +384 strategy = S1_VICTIM_PROBE Round 2 | ρ = 1212 Δρ = +238 strategy = S3_WARM_UP … [RQ1] Done. Expected outputs in agent_attack_rs/outputs/rq1_performance

root@kitploit:~
### LightGCN के विरुद्ध ट्रांसफर हमला (इन-लूप)

LightGCN को एपिसोड मॉडल और मूल्यांकन लक्ष्य दोनों के रूप में चलाता है। प्रत्येक राउंड के बाद पीड़ित (victim) पुनः प्रशिक्षण करता है ताकि Coordinator को वास्तविक रैंक फीडबैक प्राप्त हो और वह तदनुसार भूमिकाओं और रणनीति को अनुकूलित कर सके।```bash
agas run-transfer \
  --dataset ml-latest-small \
  --target-item-id 7114 \
  --target-keyword horror \
  --num-agents 50 \
  --num-steps 10 \
  --victim-model-hint lightgcn \
  --profiler-bridge-method cooccurrence \
  --probe-steps 0 \
  --graph-sniper \
  --clone-segment-users-to-agents \
  --transfer-mode option-b \
  --target-models lightgcn \
  --target-epochs 50 \
  --target-embedding-dim 32 \
  --target-lightgcn-layers 3 \
  --min-active-fraction 0.5 \
  --min-sniper-fraction 0.3 \
  --output outputs/optb_warmstart_clean_cooc_50ag_10r.json

फ़्लैगअर्थ
--profiler-bridge-method cooccurrenceब्रिज आइटम्स को लक्ष्य के रेटर क्लस्टर के साथ सह-घटना द्वारा चुना जाता है।
--graph-sniperस्नाइपर्स ब्रिज आइटम्स और लक्ष्य को सीधे रेट करते हैं (दोहरी क्रिया)।

रन के बाद, परिणाम प्रिंट किए जाते हैं और आउटपुट JSON में सहेजे जाते हैं:``` Bridge-item selection (cooccurrence): 50 items selected for profiler pool. ... Transfer evaluation saved to outputs/optb_warmstart_clean_cooc.json Option B (in-loop target models): lightgcn: final rank (best in-loop at step , best-seq retrain rank )

root@kitploit:~
## 6. टोकन लॉगिंग, भूमिका सक्रियण और रणनीति ट्रैकिंग

प्रत्येक `run-episode` कॉल स्वचालित रूप से तीन प्रकार की एनालिटिक्स की गणना और लॉगिंग करता है:

### 6a. टोकन उपयोग

टोकन प्रति LLM कॉल के अनुसार गिने जाते हैं और एपिसोड के दौरान समन्वयक तथा प्रत्येक वर्कर एजेंट के लिए अलग-अलग संचित किए जाते हैं। एपिसोड के बाद इन्हें कंसोल पर प्रिंट किया जाता है और आउटपुट JSON में `token_usage` के अंतर्गत सहेजा जाता है।

**कंसोल आउटपुट उदाहरण:**```
--- Token Usage ---
  Coordinator : prompt=20,043  completion=2,526  total=22,569
  agent_1     : prompt=1,308   completion=619    total=1,927
  agent_2     : prompt=3,930   completion=451    total=4,381
  agent_3     : prompt=0       completion=0      total=0
  AGGREGATE   : prompt=25,281  completion=3,596  total=28,877
-------------------

JSON संरचना (output["token_usage"]):```json { "coordinator": {"prompt_tokens": 20043, "completion_tokens": 2526, "total_tokens": 22569}, "by_agent": {"agent_1": {"prompt_tokens": 1308, ...}, ...}, "aggregate": {"prompt_tokens": 25281, "completion_tokens": 3596, "total_tokens": 28877} }

root@kitploit:~
**सहेजे गए रन से टोकन गणना पढ़ना:**```python
import json
with open("outputs/my_run.json") as f:
    data = json.load(f)

agg = data["token_usage"]["aggregate"]
print(f"Total tokens used: {agg['total_tokens']:,}")
print(f"  Prompt     : {agg['prompt_tokens']:,}")
print(f"  Completion : {agg['completion_tokens']:,}")

# Per-step token usage (inside each worker trace)
for step in data["history"]:
    for report in step["reports"]:
        tok = (report.get("trace") or {}).get("token_usage") or {}
        print(f"Step {step['step']} {report['agent_id']}: {tok.get('total_tokens', 0)} tokens")

प्रदाता नोट्स:

प्रदातापढ़े गए फ़ील्ड
OpenAI Responses APIresponse.usage.input_tokens, .output_tokens
Ollama /api/generatedata["prompt_eval_count"], data["eval_count"]

6b. भूमिका सक्रियण गणनाएँ

प्रत्येक एपिसोड के बाद, CLI गिनता है कि प्रत्येक भूमिका को सभी एजेंटों और सभी चरणों में कितनी बार सौंपा गया। कंसोल पर प्रिंट किया जाता है और output["activation_stats"]["role_counts"] के अंतर्गत सहेजा जाता है।

कंसोल आउटपुट उदाहरण:``` --- Role Activations --- inactive : 10 profiler : 4 --- Role Activations by Agent --- agent_1 : inactive=3 profiler=1
agent_2 : profiler=3 inactive=2 agent_3 : inactive=5

root@kitploit:~
**प्रोग्रामेटिक रूप से भूमिका गणनाएँ पढ़ना:**```python
stats = data["activation_stats"]
print("Most used role:", max(stats["role_counts"], key=stats["role_counts"].get))
print("Role counts:", stats["role_counts"])
print("By agent:", stats["role_counts_by_agent"])

6c. रणनीति सक्रियण गणनाएँ

समन्वयक के भूमिका-आवंटन पैटर्न को प्रत्येक चरण में निम्नलिखित अनुमान नियमों का उपयोग करके आठ पेपर रणनीतियों (S1–S8) में से एक में मैप किया जाता है:

output["activation_stats"]["strategy_counts"] के अंतर्गत सहेजा गया।

कंसोल आउटपुट उदाहरण:``` --- Strategy Activations --- S1_VICTIM_PROBE : 1 S3_WARM_UP : 4

root@kitploit:~
### 6d. प्रति-रन मानव-पठनीय लॉग

प्रत्येक आउटपुट JSON के साथ स्वचालित रूप से एक `.log` फ़ाइल लिखी जाती है
(जैसे `outputs/my_run.log`)। इसमें शामिल होता है:

- एपिसोड मेटाडेटा (डेटासेट, लक्ष्य, एजेंट संख्या, नीतियाँ)
- प्रति-चरण टाइमलाइन: रैंक, रणनीति, प्रत्येक एजेंट की भूमिका, क्रियाएँ, और प्रति-कॉल टोकन गणना
- टोकन उपयोग सारांश
- भूमिका और रणनीति सक्रियण गणनाएँ

**CLI चलाना और लॉग पढ़ना:**```bash
agas run-episode \
  --dataset ml-latest-small \
  --target-item-id 2571 \
  --target-keyword "Matrix" \
  --num-agents 3 \
  --num-steps 10 \
  --coordinator-policy openai \
  --worker-policy openai \
  --output outputs/run_matrix.json

# Human-readable log is at:
cat outputs/run_matrix.log

# JSON output is at:
python -c "
import json
d = json.load(open('outputs/run_matrix.json'))
print('Token aggregate:', d['token_usage']['aggregate'])
print('Role counts:',    d['activation_stats']['role_counts'])
print('Strategy counts:',d['activation_stats']['strategy_counts'])
"

7. प्रोटोकॉल और प्रॉम्प्ट

Coordinator और प्रत्येक worker LLM एजेंट हैं जो prompts/<role>/{system,user}.txt से पढ़ते हैं। पूरा प्रोटोकॉल — Coordinator अपने प्रॉम्प्ट में क्या इंटरपोलेट करता है, workers कौन से वेरिएबल देखते हैं, और अपेक्षित JSON आउटपुट स्कीमा — prompts/README.md में है।

संक्षिप्त सारांश:

  • Coordinator → JSON with {"strategy": "S?_…", "assignments": {agent: ROLE}}.
  • Workers → JSON with {"actions": [{"item_id": …, "rating": …, "reason": …}]}.
  • अनुमत item pools role-निर्भर हैं (filler pool, bridge pool, target + competitors) और host code द्वारा लागू किए जाते हैं।

8. पेपर से पुनरुत्पादित परिणाम

नीचे दी गई सभी संख्याएँ 5 seeds पर mean ± 95 % CI, 10³ से स्केल की गई हैं (अर्थात, 40.0±0.2 का एक सेल HR@10 = 0.0400 ± 0.0002 दर्शाता है)। Bold = सर्वश्रेष्ठ, italic = दूसरा सर्वश्रेष्ठ, जो पेपर में tables/benchmark_unpopular.tex और tables/detection_mf.tex से मेल खाता है।

अलोकप्रिय-लक्ष्य प्रचार (tables/benchmark_unpopular.tex)

इसके साथ पुनरुत्पादित करें:```bash bash bash/run_performance.sh # RQ1; writes outputs/rq1_performance/

root@kitploit:~
**एम्बेडिंग-आधारित विक्टिम्स** (सेल = `H@10 / NDCG@10`):

| Method | ML-100K·MF(BPR) | ML-100K·NeuMF | ML-1M·GMF | ML-1M·NCF | Amazon·MF(BPR) | Amazon·NCF | Genome·GMF | Genome·NeuMF | Netflix·MF(BPR) | Netflix·NeuMF |
|---|---|---|---|---|---|---|---|---|---|---|
| NoneAttack | 1.8±0.2 / 0.7±0.5 | 2.2±0.2 / 0.9±0.6 | 0.9±0.1 / 0.4±0.3 | 0.8±0.1 / 0.3±0.2 | 0.4±0.1 / 0.1±0.2 | 0.5±0.1 / 0.2±0.2 | 0.2±0.1 / 0.1±0.2 | 0.5±0.1 / 0.2±0.2 | 0.6±0.1 / 0.2±0.2 | 0.7±0.1 / 0.3±0.2 |
| RandomAttack | 4.1±0.3 / 1.6±0.6 | 4.7±0.3 / 1.8±0.6 | 2.4±0.2 / 1.0±0.5 | 2.0±0.2 / 0.8±0.4 | 1.2±0.1 / 0.5±0.3 | 1.3±0.1 / 0.5±0.3 | 0.7±0.1 / 0.3±0.2 | 1.3±0.1 / 0.5±0.3 | 1.8±0.2 / 0.7±0.4 | 2.0±0.2 / 0.8±0.5 |
| BandwagonAttack | 6.2±0.3 / 2.5±0.7 | 6.8±0.3 / 2.7±0.8 | 3.4±0.2 / 1.4±0.6 | 2.9±0.2 / 1.2±0.5 | 2.0±0.1 / 0.8±0.4 | 2.2±0.1 / 0.9±0.4 | 1.2±0.1 / 0.5±0.3 | 2.0±0.1 / 0.8±0.4 | 2.7±0.2 / 1.1±0.5 | 3.0±0.2 / 1.2±0.5 |
| AUSH | 10.6±0.6 / 4.3±1.2 | 10.0±0.5 / 4.1±1.1 | 6.5±0.4 / 2.6±0.9 | 4.3±0.3 / 1.8±0.7 | 3.3±0.3 / 1.3±0.6 | 3.1±0.3 / 1.2±0.6 | 1.9±0.2 / 0.8±0.5 | 2.8±0.3 / 1.1±0.6 | 4.2±0.3 / 1.7±0.7 | 4.5±0.3 / 1.8±0.8 |
| PoisonRec | 13.4±0.7 / 5.3±1.6 | 11.5±0.6 / 4.7±1.5 | 7.6±0.5 / 3.0±1.1 | 5.5±0.4 / 2.1±0.9 | _5.8±0.5_ / _2.3±1.0_ | 4.8±0.3 / 1.9±0.8 | 2.3±0.3 / 0.9±0.6 | 3.2±0.3 / 1.3±0.7 | 5.6±0.4 / 2.2±1.0 | 5.7±0.4 / 2.3±1.0 |
| PGA | 11.5±0.6 / 4.6±1.3 | 12.2±0.6 / 5.0±1.4 | 8.4±0.5 / 3.4±1.1 | 6.0±0.4 / 2.4±0.9 | 4.3±0.3 / 1.7±0.8 | 4.0±0.3 / 1.6±0.7 | 2.8±0.2 / 1.1±0.6 | 3.8±0.3 / 1.5±0.7 | 5.5±0.4 / 2.2±1.0 | 6.0±0.5 / 2.4±1.0 |
| AgentSA | 12.7±0.6 / 5.2±1.4 | _12.5±0.6_ / _5.1±1.4_ | 8.2±0.4 / 3.3±1.0 | _7.2±0.4_ / _2.9±1.0_ | 5.6±0.3 / 2.2±0.9 | 4.9±0.3 / 1.9±0.8 | _2.9±0.2_ / _1.1±0.6_ | 4.2±0.3 / 1.7±0.7 | _6.3±0.4_ / _2.5±1.0_ | 6.5±0.4 / 2.6±1.0 |
| AgentAttack | _13.6±0.7_ / _5.5±1.5_ | 12.1±0.6 / 4.9±1.4 | _8.8±0.5_ / _3.5±1.1_ | 6.8±0.4 / 2.7±1.0 | 5.7±0.3 / 2.2±0.9 | _5.2±0.3_ / _2.0±0.9_ | 2.7±0.2 / 1.0±0.6 | _4.5±0.3_ / _1.8±0.8_ | 6.1±0.4 / 2.4±1.0 | _6.9±0.5_ / _2.8±1.0_ |
| **AGAS (Ours)** | **40.0±0.2 / 16.1±0.3** | **35.0±0.2 / 14.2±0.3** | **22.6±0.1 / 9.0±0.2** | **17.6±0.1 / 7.1±0.2** | **16.1±0.1 / 6.3±0.2** | **15.0±0.1 / 5.9±0.2** | **8.2±0.1 / 3.2±0.2** | **11.5±0.1 / 4.6±0.2** | **18.2±0.1 / 7.3±0.2** | **19.6±0.1 / 7.9±0.2** |
| **Improvement** | **+187.8% / +182.5%** | **+186.9% / +184.0%** | **+162.8% / +164.7%** | **+155.1% / +153.6%** | **+177.6% / +173.9%** | **+172.7% / +168.2%** | **+192.9% / +190.9%** | **+161.4% / +155.6%** | **+198.4% / +192.0%** | **+192.5% / +192.6%** |

**ग्राफ-आधारित विक्टिम्स** (सेल = `H@10 / NDCG@10`):

| Method | ML-100K·NGCF | ML-100K·LightGCN | ML-1M·SimGCL | ML-1M·XSimGCL | Amazon·EGCF | Amazon·LightCCF | Genome·NGCF | Genome·LightGCN | Douban·NGCF | Douban·LightGCN |
|---|---|---|---|---|---|---|---|---|---|---|
| NoneAttack | 1.9±0.2 / 0.8±0.5 | 2.4±0.2 / 1.0±0.6 | 0.8±0.1 / 0.3±0.2 | 0.9±0.1 / 0.4±0.3 | 0.4±0.1 / 0.2±0.2 | 0.5±0.1 / 0.2±0.2 | 0.2±0.1 / 0.1±0.2 | 0.3±0.1 / 0.1±0.2 | 0.7±0.1 / 0.3±0.2 | 0.6±0.1 / 0.2±0.2 |
| RandomAttack | 4.5±0.3 / 1.8±0.6 | 5.0±0.3 / 2.0±0.7 | 1.8±0.2 / 0.7±0.4 | 2.2±0.2 / 0.9±0.5 | 1.1±0.1 / 0.4±0.3 | 1.2±0.1 / 0.5±0.3 | 0.6±0.1 / 0.2±0.2 | 0.6±0.1 / 0.2±0.2 | 2.0±0.2 / 0.8±0.5 | 1.9±0.2 / 0.7±0.4 |
| BandwagonAttack | 5.9±0.3 / 2.4±0.7 | 6.7±0.3 / 2.7±0.8 | 2.4±0.2 / 1.0±0.5 | 2.9±0.2 / 1.2±0.6 | 1.8±0.2 / 0.7±0.4 | 1.9±0.2 / 0.8±0.4 | 1.1±0.1 / 0.4±0.3 | 1.0±0.1 / 0.4±0.3 | 2.8±0.2 / 1.1±0.6 | 2.7±0.2 / 1.1±0.5 |
| GSPAttack | 11.0±0.6 / 4.5±1.3 | 11.5±0.6 / 4.7±1.3 | 4.8±0.3 / 1.9±0.8 | 5.8±0.4 / 2.3±0.9 | 3.2±0.3 / 1.3±0.6 | 3.4±0.3 / 1.4±0.6 | 2.0±0.2 / 0.8±0.5 | 1.8±0.2 / 0.7±0.5 | 5.0±0.3 / 2.0±0.8 | 4.8±0.3 / 1.9±0.8 |
| TargetedAttack | 11.9±0.6 / 4.8±1.3 | 12.6±0.6 / 5.1±1.4 | 5.4±0.4 / 2.2±0.8 | 6.4±0.4 / 2.5±1.0 | 4.7±0.3 / 1.9±0.7 | 4.5±0.3 / 1.8±0.7 | 2.5±0.2 / 1.0±0.6 | 2.2±0.2 / 0.9±0.5 | 5.4±0.4 / 2.2±0.8 | 5.2±0.3 / 2.1±0.8 |
| CLeaR | 13.1±0.7 / 5.4±1.4 | 13.9±0.7 / 5.7±1.5 | 6.4±0.4 / 2.6±0.9 | 7.7±0.5 / 3.1±1.0 | 4.6±0.3 / 1.8±0.7 | 5.2±0.4 / 2.1±0.8 | 2.9±0.3 / 1.2±0.6 | 2.8±0.2 / 1.1±0.6 | 5.8±0.4 / 2.3±0.9 | 5.5±0.3 / 2.2±0.9 |
| AgentSA | 13.8±0.6 / 5.6±1.4 | _14.2±0.7_ / _5.8±1.5_ | 6.1±0.4 / 2.4±0.8 | _8.4±0.5_ / _3.3±1.0_ | 4.5±0.3 / 1.8±0.7 | _5.4±0.3_ / _2.2±0.8_ | 2.8±0.2 / 1.1±0.6 | _2.9±0.2_ / _1.1±0.6_ | 5.4±0.3 / 2.2±0.8 | _5.8±0.4_ / _2.3±0.9_ |
| AgentAttack | _14.4±0.7_ / _5.9±1.5_ | 14.0±0.7 / 5.6±1.5 | _6.6±0.4_ / _2.6±0.9_ | 8.0±0.5 / 3.1±1.0 | _4.9±0.3_ / _1.9±0.7_ | 5.0±0.3 / 2.0±0.8 | _3.1±0.3_ / _1.2±0.6_ | 2.5±0.2 / 1.0±0.5 | _6.0±0.4_ / _2.4±0.9_ | 5.5±0.3 / 2.2±0.9 |
| **AGAS (Ours)** | **40.0±0.2 / 17.0±0.3** | **40.5±0.2 / 16.5±0.3** | **16.8±0.1 / 6.7±0.2** | **20.7±0.1 / 8.2±0.2** | **13.1±0.1 / 5.2±0.2** | **13.8±0.1 / 5.4±0.2** | **8.9±0.1 / 3.4±0.2** | **7.8±0.1 / 3.1±0.2** | **17.0±0.1 / 6.8±0.2** | **16.9±0.1 / 6.7±0.2** |
| **Improvement** | **+181.7% / +193.1%** | **+189.3% / +194.6%** | **+162.5% / +157.7%** | **+155.6% / +156.2%** | **+178.7% / +173.7%** | **+165.4% / +157.1%** | **+196.7% / +183.3%** | **+178.6% / +181.8%** | **+193.1% / +195.7%** | **+196.5% / +191.3%** |

## 9. लाइसेंस

MIT License।
टूल डाउनलोड करें
घटकआवश्यकतापरीक्षण किया गया
Python≥ 3.103.13.5
PyTorch≥ 2.1 (केवल targets)2.11.0+cu128
CUDAवैकल्पिक12.8
NumPy≥ 1.242.4.2
Pandas≥ 2.03.0.1
SciPy≥ 1.101.17.0
scikit-learn≥ 1.31.8.0
openai SDK≥ 1.122.21.0
चरणउपयोग किया गया डेटाविवरण
ट्रेनिंगinteractions.csv में सभी इंटरैक्शनसरोगेट (और कोई भी लक्ष्य मॉडल) ऐतिहासिक रेटिंग्स के पूर्ण सेट पर फिट किया जाता है।
अटैक मूल्यांकनसेगमेंट उपयोगकर्ताओं पर रैंकिंगप्रत्येक राउंड के बाद, लक्ष्य आइटम की औसत रैंक उन वास्तविक बेनाइन उपयोगकर्ताओं में मापी जाती है जिन्होंने कम से कम एक लक्ष्य-क्लस्टर आइटम पर ≥ 4.0 रेटिंग दी (अधिकतम 2 000 उपयोगकर्ता)। डिस्क पर कोई होल्ड-आउट टेस्ट सेट नहीं लिखा जाता।
फ़ेक इंजेक्शनइन-मेमोरी में जोड़ा गयाफ़ेक-यूज़र इंटरैक्शन जोड़े जाते हैं और प्रत्येक राउंड में मॉडल को इंक्रीमेंटली री-फिट किया जाता है। इन्हें कभी भी canonical CSV फ़ाइलों में नहीं मिलाया जाता।
शर्तअनुमानित रणनीति
प्रोब चरण / डायग्नोस्टिक एजेंट सक्रियS1_VICTIM_PROBE
अलर्ट फ़्लैग सेट (a_t = 1)S7_SAFE_REPLACEMENT
अधिकतम संदेह स्कोर ≥ 0.5S6_PROFILE_CLEANUP
कोई स्नाइपर नहीं + दृश्यमान डिस्काउंटिंगS5_SILENT_SLOWDOWN
कोई स्नाइपर नहीं + कोई डिस्काउंटिंग नहींS3_WARM_UP
स्नाइपर सक्रियS4_FIRST_PUSH
स्नाइपर सक्रियS8_MAIN_ATTACK