{
  "fetched_at": "2026-10-24T09:37:52Z",
  "source_url": "https://www.kaggle.com/competitions/adversarial-attacks-against-spam-detectors/data",
  "pages": [
    {
      "name": "rules",
      "content": "The winners need to release their codes and reproduce the winning submissions to qualify for the prize.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "data-description",
      "content": "",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "A spamming attack will be evaluated based on how much it can withstand our spam detectors to promote the revenue of the designated target products (yes, we know what products are manipulated, but the evaluation codes will not access that knowledge). We call this metric Practical Effect (PE).\n\nMore specifically, the pipeline looks like this:\n1. Download the files parameters.csv, review_graph.txt, and target_spammer.pickle to create attacks using your algorithms.\n2. An attack is in the form of reviews with time and ratings. There is no review content involved.\n3. We add the reviews in each of your attacks to the existing review data and run our detectors.\n4. We compute how much the remaining spams can promote the target products.\n5. The final performance is averaged over the multiple attacks.\n\nSee the Notebooks for a full pipeline from data loading to attack generation and evaluation.\n\nWhen your algorithm finishes the attacks specified in the file parameters.csv, you should generated 48 'submission_k.txt' files, where k=0,...,47. The format of the submission files are specified in the Notebooks. Zip and submit the submission files into a single file name <team_name>.zip and submit the zip file to the following Google Form:\n[https://forms.gle/tF91i5FDGTaQmVEU9](https://forms.gle/tF91i5FDGTaQmVEU9)\n\nEach team will be identified by a unique email address. You need to input the email address along with each submission. All submissions from a team will be linked to that email address. We will contact the winners using these addresses.\n\nWe will update the evaluation and the Leaderboard on the workshop website daily:\n[https://truthdiscoverykdd2020.github.io](https://truthdiscoverykdd2020.github.io)",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "##Background\nReview spams are prevalent on review platforms such as Amazon and Yelp. They are manipulating items (e.g., books on Amazon and restaurants on Yelp) evaluation and affecting customer decision making. It is of critical importance to remove review spams and make users of the review platforms aware of such threats.\n\n<p align=\"center\">\n<img align=\"center\" height=\"100\" width=\"500\" src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F5118738%2F60469fc13b6bf8928aff33f8fbec08aa%2Ffigures.png?generation=1590372808142530&alt=media\">\n</p>\n\nHowever, these fake reviews are rather challenging to detect due to the following reasons:\n1) there is very little labeled data to train accurate machine learning detectors; 2) humans have great difficulty in telling fake reviews from genuine ones; 3) the number of fake reviews are paramount and are overwhelming human inspection bandwidth. Current machine learning and data mining approach to review spam detection is limited by the above factors and is not evaluated using more practical metrics in the business sense. This contest calls for attention to the above limitation of current methods and takes a stab to the above problems.\n\nThe contestants will act as spammers to create review spams to evade a grey-box spam detector. Not every review created by the contestants qualifies as spam, though. It is those reviews that can practically manipulate the rating of the target businesses that should be tamed and thus qualify as spams.\n\n##Threat model\n- The spammers are interested in promoting a given set of target products.\n- The spammers are given a set of spamming accounts on the platform for posting a fixed number of spams towards <it>any</it> products on the platform.\n- The spams must be posted in a given period.\n- The spammers can choose the ratings of the spams from {1,2,3,4,5}\n- The spammers will NOT create the review contents.\n- The spammers can NOT create new spamming accounts to post spams.\n- No new product can be added to the current review platform.\n- The spammers know what detection models are used but don't know the implementation and parameters.\n\n##Detection assumptions\n- The detector will use only the rating and post time of the reviews, and the connections between accounts and products for detection. No contents, profiles, and external information of the accounts and products will be used for detection.\n- The detector does not know the spammer accounts and the target products.\n- The detector detects spams after the spammers post their spams to the existing reviews.\n- The given review data are considered non-spams.\n\n##What you will start with\nWe prepare a startup package for you to get your solution up and running quickly.\nIn the Notebook tab, you will find a notebook containing Python functions that can:\n- Read the input review data as bipartite graph representation.\n<p align=\"center\">\n  <img width=\"230\" height=\"150\" src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F5118738%2F6f9d60f0d3643321ac86c258a26189d3%2Fbipartite.png?generation=1590373739112751&alt=media\">\n</p>\n- Read attack settings, including selected spamming accounts, target items, attacking time period, attack size, and top-k detection parameter. There will be multiple attacks that need to be created and the evaluation metric will be averaged over these attacks.\n- Manipulate the graph by adding or removing reviews. These functionalities are useful for executing and evaluating spam attacks.\n- Evaluation codes that compute the metric. As we don't use typical metrics, such as accuracy, AUC, F1 score, we feel necessary to make our evaluation method transparent.\n- A simple randomized spamming attack to show you the submission format of an attack.\n- A simple detector based on detection features that are used in prior spam detection methods. You can run this detector against your attack and see how much you can evade the detector and achieve high scores!\n\n##Files to download\n- parameters.csv: the file contains multiple lines with a header. Each line is an attack scenario. The meaning of the parameters are specified in the header.\n- review_graph.txt: this file contains the input clean review graph. See the helper notebook for its format.\n- target_spammers.pickle: this file specified the target products and spammer accounts. The detector will not seek spams out of the entire dataset, which is rather large compared to available human inspection efforts. Therefore, it specifies within what range the detector is operating. See the function \"evaluation\" in the Notebooks for more details.\n\n##How to win\nThe challenge is a grey-box adversarial attack. Your job is to act like a spammer and probe the following main-stream published detectors:\n\n- FRAUDAR: Bounding Graph Fraud in the Face of Camouflage. KDD 2016.\n- GANG: Detecting Fraudulent Users in Online Social Networks via Guilt-by-Association on Directed Graphs. ICDM 2017.\n- Collective Opinion Spam Detection: Bridging Review Networks and Metadata. KDD 2015\n- Suspiciousness prior used in the above paper without MRF and BP.\n- Spotting Suspicious Link Behavior with fBox: An Adversarial Perspective. ICDM 2014\n\nWe believe this is easier for the contestants compared with a black-box attack challenge, and yet interesting enough that you need to use the detection feedback to guess what the detectors are, simulating a real-world spam attack.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}