# Double-Constrained Consensus Clustering with Application to Online Anti-Counterfeiting
## 5 Experimenting with Counterfeit Web Shops
### Experiment Design and Preparation
#### 5.2.2 Construction of the Ground-Truth Dataset  
To the best of our knowledge, there are no available test collections of this kind. The first step was to generate a suitable set of counterfeit websites that have the potential to reveal affiliate programs. We relied on RI.S.ICO. [48], a machine learning system that can detect fake web shops in search engine results generated in response to brand search queries. The procedure was as follows. We first selected 20 famous luxury brands that are known to be targeted by counterfeiters [48]. The corresponding ('complicit') queries, formed by adding'replica' and 'cheap' to the brand name, were given as input to RI.S.ICO., which submitted them to three web search engines, collected 6,043 search results (about 100 for each query), and then identified 1076 suspicious e-commerce web pages in the set of results. These 1076 web pages were hosted on 302 distinct websites. Next, we selected one web page per website as a representative, removing the redundant items. We also deleted the web pages that were no longer accessible (e.g., due to trademark infringement), with 217 items remaining. The automatic classification performed by RI.S.ICO. is mostly accurate, but there may be false positives in the set of web pages labeled as fake. To increase the reliability of the results, we asked a few web anti-counterfeiting experts to manually remove web pages that had been misclassified by RI.S.ICO. from the remaining web pages, eventually ending up with a set of truly illegitimate web pages containing 203 items.  
The next step was to group the 203 web pages (websites) in homogeneous clusters, which was performed by the same experts. Their task was facilitated by extracting a set of unique features associated with each counterfeit network (see Section 5.2.5), which were used to form initial seeds, prior to manual inspection. Given the limited number of items, this effort required, on the whole, a non-negligible but reasonable amount of time. Other strategies to complement manual inspection in the identification of affiliate programs from a larger set of fake web shops have been proposed, such as the heuristic pattern-matching of HTML content in [50] and the formulation of the problem as a classification task (with labeled data) in [25]. Clusters with one or very few elements were then removed by our experts, thus resulting in a set of 121 websites partitioned into six clusters.  
A few clusters accounting for the majority of items confirm the presence of affiliate fake web shops in brand search results, at least for heavily targeted brands and complicit queries. We checked that affiliate web shops were both mono-brand and multi-brand for a specific type of product (e.g., shoes) or even for different types of products (e.g., shoes and jackets). As an illustration, Figure 5 shows the homepages of two fake web shops with top-selling shoe brands (i.e., Louboutin and Valentino) that were grouped together.  
Given the limited lifespan of counterfeit websites, it is essential to obtain a snapshot of all the relevant information associated with them when they are still functional. In the final step, a set of clustering features (see Section 5.2.3) was extracted for each domain. The set of 121 domain names with associated clustering features and group information form a ground-truth dataset termed CAP (Counterfeit Affiliate Programs). CAP is available at [[https://www.kaggle.com/datasets/claudiocarpineto/counterfeit-affiliate-programs/code](https://www.kaggle.com/datasets/claudiocarpineto/counterfeit-affiliate-programs/code)]([https://www.kaggle.com/datasets/claudiocarpineto/counterfeit-affiliate-programs/code](https://www.kaggle.com/datasets/claudiocarpineto/counterfeit-affiliate-programs/code)) (accessed on 2 September 2023). We believe that CAP, although small in size, fills a gap in the research on online anti-counterfeiting.