<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Botcha: Detecting Malicious Non-Human Trafic in the Wild</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sunny Dhamnani</string-name>
          <email>dhamnani.sunny@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ritwik Sinha</string-name>
          <email>risinha@adobe.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vishwa Vinay</string-name>
          <email>vinay@adobe.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>LillyKumari</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>MargaritaSavova</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Adobe Research</institution>
          ,
          <country country="IN">India</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Adobe Research</institution>
          ,
          <country country="US">United States</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Adobe Systems</institution>
          ,
          <country country="US">United States</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of Washington</institution>
          ,
          <addr-line>Seattle</addr-line>
          ,
          <country country="US">United States</country>
        </aff>
      </contrib-group>
      <fpage>51</fpage>
      <lpage>59</lpage>
      <abstract>
        <p>Malicious bots make up about a quarter of all trafic on the web and degrade the performance of personalization and recommendation algorithms that operate on e-commerce websites. Positive-Unlabeled learning (PU learning) provides the ability to train a binary classifier using only positive (P) and unlabeled (U) instances. The unlabeled data comprises both positive and negative classes. It is possible to find labels for strict subsets of non-malicious actors, e.g., the assumption that only humans purchase during web sessions, or clear CAPTCHAs. However, finding signals of malicious behavior is almost impossible due to the ever-evolving and adversarial nature of bots. Such a set-up naturally lends itself to PU learning. Unfortunately, standard PU learning approaches assume that the labeled set of positives are a random sample of all positives, this is unlikely to hold in practice. In this work, we propose two modifications to PU learning that make it more robust to violations of thseelected-completely-at-random assumption, leading to a system that can filter out malicious bots. In one public and one proprietary dataset, we show that proposed approaches are better at identifying humans in web data than standard PU learning methods.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Positive unlabeled learning</kwd>
        <kwd>biased sampling</kwd>
        <kwd>non-human agents</kwd>
        <kwd>unlabeled data</kwd>
        <kwd>malicious bot</kwd>
        <kwd>web trafic</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Non-Human Trafic or trafic generated by robots (or bots) is estimated to constitute close
to half of all web trafic [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Some bots have a legitimate purpose (e.g. web crawlers) while
others try to intrude the systems with malicious intent. It is estimated that half of all bot
trafic has a malicious intent [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Good bots identify themselves but malicious bots have an
incentive to spoof their user agents and behave like humans. Malicious bots may be designed
to generate fake reviews, scrape price or content, crack credentials, infiltrate payment systems,
defraud advertisers, or spam online forums. Recommendation and personalization systems are
particularly vulnerable to bot activit2y].[
Humans
      </p>
      <p>Malicious Bots</p>
      <p>
        The major challenge in building machine learning (ML) models to detect bad bots is getting
labeled data. In this context, ML methods that aim to learn from positive and unlabeled data (PU
learning) provide promise [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. PU learning learns from data where only a subset of one class is
labeled. We explore an application of PU learning to malicious non-human trafic detection
on the web. Considering humans as the positive class, we can identify positive instances by
assuming that only humans purchase on e-commerce websites, clear CAPTCHAs, or visit from
validated IP addresses.
      </p>
      <p>Current PU learning frameworks assume that the labeled subset of the positive class is
Selected Completely at Random (SCAR) from the positive class, where the labeling mechanism
does not depend on the attributes of the instance 3[]. That is, the labeled subset of humans is
not influenced by the features of the observations. Unfortunately, such an assumption is hard
to justify in practice. For example, it is reasonable to expect that not all human visitors to an
e-commerce website are equally likely to make a purchase. This requires us to revisit the PU
framework to handle problems where the random sampling assumption is violated. Figur1e
describes the problem we are addressing.</p>
      <p>
        In this work, we address the question of classifying a web session as originating from a human
surfer or a robot, using PU learning. Our contribution includes two novel models to handle
biased sampling within the positive class, one of which is a scalable version of the proposals
in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In our experiments, positive-unlabeled scenarios are artificially created in a publicly
available intrusion detection dataset. We notice that the proposed approaches perform better
than existing PU learning models3[
        <xref ref-type="bibr" rid="ref5">, 5</xref>
        ]. In a proprietary e-commerce dataset, our methods
work well in distinguishing humans from bots. We call our framework “Botcha”. Given the
limited need for labeled data, it is readily applied in the wild. Filtering out all bot trafic allows
recommendation and personalization systems to learn from unbiased data from real human
activity.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        Malicious non-human activity on the web has been observed in the context of fake reviews,
information theft, the spread of misinformation, spam on social networks, and click fraud in
advertising [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ]. Given the diverse and often adversarial nature of web fraud, it is imperative
to find new strategies to detect bots. In such dynamic circumstances, data-driven strategies
hold promise.
      </p>
      <p>
        While there has been some work to build recommendation systems that are robust to
adversarial attacks2[
        <xref ref-type="bibr" rid="ref8">, 8</xref>
        ], in this work we aim to filter out all bot trafic to provide unbiased data to the
recommendation and personalization systems to learn from. To classify a visitor as a bot or
human, the standard machine learning strategy requires representative instances from both classes
and building a supervised learning model that can diferentiate between them. Due to limited
labeled data for bot detection, alternative data-eficient strategies have also been investigated.
Semi-supervised learning has been applied to the bot detection problem9][. Unfortunately,
while it is reasonable to expect that we have a reliable subset of known humans, bots on the web
are adversarial, ever-evolving and hard to sample from. This renders semi-supervised learning
limited in scope.
      </p>
      <p>
        PU Learning requires only a subset of one of the two classes to be labeled. Hence, PU learning
is appealing in the bot detection problem where we can assume that a subset of humans is
labeled. Early work in1[0] and [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] has shown how PU learning can achieve the efectiveness of
standard supervised learning. We believe that the PU learning framework is natural for use in a
variety of fraud detection applications on the web.
      </p>
      <p>
        Empirical success in a variety of scenarios has led to a recent focus on the class of PU learning
algorithms [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Unfortunately, most prior work in this area assumes that the labeled points are
randomly sampled from the positive class. This assumption is referred to as Selected Completely
at Random [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ]. That is to say, the positively labeled instances in the dataset are a random
unbiased sample of the universe of positive instances, and are not a function of the attributes of
the data point. To allow the building of PU learning-based models in scenarios where this is an
unrealistic assumption, we build on prior work by Bekker et al. (20194)][. However, it has two
primary challenges. First, the model strategy presented in4][ requires the analyst to decide on
a set of features to compute the propensity score. Second, the proposal requires optimization
using an Expectation-Maximization (EM) algorithm. Unfortunately, the EM Algorithm is known
to be slow to converge [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Given that we would like to apply this to a scenario with tens
of millions of data points and hundreds of features, this presents certain challenges in the
direct application of this to our work. To test our proposed algorithms, we first conduct a
series of simulation experiments on standard supervised learning datasets representing diferent
fraud-like setups. We artificially hide the true labels which we then hope to recover via the
learning algorithm, thereby showing the viability of our methods.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Models</title>
      <p>
        We first describe the notations and then briefly review PU learning work in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] (Section 3.2). In
section 3.3 and 3.4, we describe the proposed approaches, which are the main contributions of
the paper.
      </p>
      <sec id="sec-3-1">
        <title>3.1. Notation &amp; Prerequisites</title>
        <p>To distinguish humans from bots we need to learn a classifier that generates the probabilities
(|  ). Here  ∈ {0, 1} denotes if the observation was generated by a human =( 1 ) or bot and 
is the corresponding feature vector. The dataset for PU learning are instanc(e s, , )
from a
space  ×  × 
, where 
and</p>
        <p>denote the feature and label space respectively. The binary
variable represents if the instance is labeled. Since only positive instances (humans) are labeled,
( = 1| = 1) = 1</p>
        <p>. Marginalizing( = 1|  ) over  , we get:
( = 1|  ) = ( = 1| = 1,
 ) × ( = 1|  ) + ( = 1| = 0,
 ) × ( = 0|  )
Now, ( = 1| = 0,
 ) = 0 since only the positive instances are labeled. This leads to</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Vanilla Model (EAM)</title>
        <p>
          The work by Elkan and Noto is based on the SCAR assumption. The approach assumes that
the labeled positive instances were chosen uniformly at random from the universe of positive
instances [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Formally this means( = 1| = 1,
is independent of . We can rewrite equation 1() as
 ) = ( = 1| = 1)
        </p>
        <p>, i.e., the sampling process</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Modified Assumption Model (MAM)</title>
        <p>The SCAR assumption above enables the building of PU Learning models for a range of scenarios.
However, we believe that this is an unrealistic assumption and argue that explicitly accounting
for selection bias for the known positives allows us to build models that are more aligned to the
data.</p>
        <p>We propose Modified Assumption Model (MAM), geared towards practical cases where labeling
is performed via a stratified procedure. Instead of using the SCAR assumption, we make a
more lenient assumption that known positives come from two sub-groups, where for one the
sampling depends on and the other is independent of .
(1)
(2)</p>
        <p>We introduce a new binary variable∈ {0, 1} that indicates which of the two sub-groups a
given labeled instance =( 1 ) comes from. So,  = 0 indicates that value of is independent of ,
whereas  = 1 implies that value of is dependent on  . Marginalizing over b, we get:
 )
 )</p>
        <p>Since  is independent of when  = 0 , so ( = 1| = 1,  = 0,
1 − ( = 1| = 1,  ), we can re-write above equation as
 ) =  and given that( = 0| = 1,
 ) =</p>
        <p>
          Similar to EAM the numerator can be obtained by training a classifier that separates the
labeled (= 1 ) points from the unlabeled  (= 0 ). The denominator model can be trained using
 = 1 and  = 0 sets (note that points in these sets are labeled and positive, i.e=., 1 and  = 1 ).
The constant  can be estimated by averaging the scores predicted by the numerator model
for instances with  = 0 in the validation set. If( = 1| = 1,  ) = 0 for all data points, i.e.,
sampling is independent of , we recover EAM from MAM. Our MAM proposal closely relates
to the proposals made in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], however, the algorithm in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] does not scale to large scale datasets.
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4. Relaxed Assumption Model (RAM)</title>
        <p>The most general model, referred asRelaxed Assumption Model (RAM), does not make any
assumption about  being independent of . Instead, we attempt to model this process explicitly,
i.e., we build a model fo r( = 1| = 1,  ) - the denominator in equation (1). We first acquire a set
of positive unlabeled instances o f= 1 with  = 0 and then utilize standard binary classification
methods to distinguish  = 0 from  = 1 amongst the positive instances.</p>
        <p>We propose the use of a nearest-neighbor based method that finds points in the dataset that
are close to the known positives but are not in the sampled set (= 1 ). Since any point outside
the sampled set is = 0 , the nearest neighbor to a( = 1,  = 1) point not in this set is implicitly
taken to be ( = 1,  = 0) . Note that this assumption may not always be true. As in the other
models, we aim to find techniques that are robust even when the modeling assumption may be
wrong. It is important to note that we do not alter the numerator in equation1() and hence
training classifier for numerator remains identical to EAM.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Experiments and Results</title>
      <sec id="sec-4-1">
        <title>4.1. Simulated Experiments on a Public Dataset</title>
        <p>In our first set of experiments, we artificially create PU learning datasets by hiding the ground
truth labels of a labeled dataset during training. We then evaluate the trained model on a labeled
test set. The simulations primarily involve controlling the subset of positive data points that are
labeled for training, and all the other instances are unlabeled. The simulated datasets having
varying degrees of “randomness”, one of the extremes is a completely random subset of positive
samples (satisfying SCAR perfectly). The other is extreme is a carefully crafted subset of positive
samples where SCAR assumption is violated.</p>
        <p>
          Public Dataset: We use the KDDCUP’99 dataset (NSL-KDD Dataset), a widely adopted
labeled dataset for network intrusion detection. The train and test datasets have a total of
148, 517 records with 43 features each. To get around known problems with the dataset1[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ],
we merge the given train and test records, which we then re-split into the train, validation and
test sets in an 80:10:10 proportion. Overall, the dataset contain71s, 463 intrusive sessions (all
intrusions are bot-generated) while the rest are legitimate sessions.
        </p>
        <p>Data Simulations: The process of creating artificial datasets involves hiding the labels for
all negative points and a proportion of the positive points. We sample a labeled subset of positive
data points to create a known subset of positives. We first build a supervised classifier to score
each data point. The classification task here is to distinguish intrusive vs legitimate sessions
and the score is the predicted class probability. We use this score to introduce sampling bias in
creating the known subset of positives. Using a Random Forest classifier, we achieve an AUC
(area under ROC curve) value o0f.9921 on the training data and0.9911 on the test data. We
then curate diferent PU learning datasets by performing sampling over the scored data points
by controlling two parameters as described below.</p>
        <p>1. Topper : This parameter is used to introduce sampling bias by selecting only those positive
points whose prediction score (using the supervised model) is higher than theth quantile of
all positive labeled points. This selection of the top fraction of positives introduces a sampling
bias since we are only selecting points with a high score. The idea is to capture spread within
the positive class, and one meaningful scale is to use the estimated probability that a point is
positive, given its features. Note that sampling is only done for positive class, the labels for all
negative points are hidden.</p>
        <p>2. Mixing: This parameter controls ‘randomness’ for the known subset of positives. After
creating a sample of known positives based on the topper parameter, at valuewe swap % of
the selected points with points from the positive set, the swapping is done with replacement. As
we move from  = 0 to  = 100 we decrease the sampling bias in the set and correspondingly
increase the randomness. A mixing of 100% means SCAR is completely satisfied.</p>
        <p>The subset obtained at a particular value oafnd  is the known labeled subset of positives,
and the remaining points (all negatives and the unsampled positives) are treated as unlabeled.
With distinct values o f and  we obtain diferent simulated datasets. At a particular value of
the topper parameter (), with  = 100 , we get a completely random sample of positive class
(satisfying SCAR), on the other end with = 0 we get an extremely biased sample, containing
only high scoring points. When &lt; 100 the sampling is not completely random and depends
on the score of the supervised model that uses all the featur es. Consequently, the sampling
variable is not independent of and the dataset does not align with the assumption of Elkan
and Noto. We show that in cases of biased sampling, the proposed methods outperform the
baseline approaches that rely on SCAR assumption.</p>
        <p>
          Results on simulated datasets: We train MAM and RAM and compare against the baselines
- EAM [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] and biased SVM [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] - on simulated datasets with varying degrees of randomness. For
uniformity, we use Random Forest as the base classifier for all three methods EAM, MAM and
RAM. Biased SVM uses a SVM formulation 5[].
        </p>
        <p>The performance metrics are AUC (area under ROC curve) and Precision@Recall99, precision
when 99% of known positives in the validation set are classified correctly. Unlike the standard
‘0.5’ threshold for classification, we set the classification threshold such that 99% of the
legitimate sessions (positives) are correctly classified as legitimate. This is particularly important
since in real systems we do not wish to interrupt legitimate users with any scrutiny. And so,
Precision@Recall99 is an important metric to consider.</p>
        <p>The results for the simulated experiments are shown in Tabl1e. When sampling is extreme,
towards the left with smaller mixing parameter , RAM and MAM perform significantly better
than the EAM along the two evaluation metrics. With more randomness (increasing mixing),
EAM beats other methods but our proposed RAM still has competitive performance. Biased
SVM performs poorly throughout. This shows that in extremely biased situations the proposed
models MAM and RAM provide significant improvements by explicitly accounting for the
sampling bias. On the other hand, EAM provides slight improvement at high mixing (random
sample) since it is tailored specifically for scenarios when the SCAR assumption holds.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Application to Real E-Commerce Data</title>
        <p>This section describes the application of RAM to a proprietary dataset from the trafic logs of
an e-commerce website.</p>
        <p>Data Description: The data contains a record for every page request, here referred to as a
‘hit’. We consider one week and collapse these records into ‘sessions’ for each user. A session
combines a series of hits made by a user. The session ends with 30 minutes of inactivity. Overall
we identify 3.6 million unique visitors from6 million sessions, and more than 100 million hits.
The task is to label a session as arising from a human or a bot. The sessions from legitimate
bots are filtered out using user-agent strings. The feature representation of all sessions utilizes
a standard set of technology (e.g. browser and device types), behavioral (e.g. time between hits)
and session related (e.g. timezone and time-of-day). Since this is an e-commerce website, we
also have information as to whether a particular session resulted in a purchase. This information
is leveraged to build our partial set of positives. The details are presented next.</p>
        <p>Known subset of positives: Out of the 6 million sessions,36 (0.6%) sessions arepurchase
sessions and360 (6%) sessions belong to an identified purchaser. We label this6% of sessions
as positive (Human class). The dataset is then split into the train, test, and validation sets in an
80:10:10 ratio for modeling purposes.</p>
        <p>
          Partially labeled test dataset: To validate our approach, we split the test data in3togroups
of points and observe the distribution of prediction scores across these classes. This split is
based on heuristics which we describe next.Positive data points: The subset of sessions that had
a user corresponding to a purchase session in the training dataseNt.egative data points: The
subset of sessions which have been originated from AWS/Azure servers are tagged as negative.
The assumption being that browsing sessions originating from these cloud environments are
unlikely to be initiated by humans. The set of AWS/Azure IPs are publicly availab1l4e,1[
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
Unlabeled data points: The set of sessions which are neither tagged as positive nor negative.
        </p>
        <p>It is important to note that all points during model training had the label of ‘Positive’ or
‘Unlabeled’. The ‘Negative’ label is only used for validation. Also notice that the set of known
positives is neither complete (not all Humans purchase), nor is it an unbiased sample (diferent
users have varying propensities for purchases).</p>
        <p>Using the validation set, we identify a threshold that captur9e9s% of positive labels. The
output score of the RAM model is converted into a booleanis-human label by using this threshold.
Table2 shows the break-up of the trafic in the dataset and how RAM classifies points from
each of these classes. As seen in the table, we misclassify only a few negatively labeled sessions
(&lt;3%) and in total, we have close to 82% human trafic as reported by this model. We expect
high human trafic since the website has strict login requirements for accessing their content.
Additionally, we observe a stark separation in the prediction scores for positive and negative
classes. Most positive samples had a score close to 1, while negatives were scored close to 0.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions</title>
      <p>In this paper, we have addressed the problem of detecting non-human trafic using positive
and unlabeled data. Providing recommendation and personalization systems unbiased data to
learn from, leads to a better experience for the end-customer. We specifically accounted for
the selected completely at random assumption in standard PU Learning methods and conducted
simulation studies for validation. We also evaluated our most general model, RAM, on a large
real word e-commerce dataset. Given the scale of fraud due to bots, such bot detection systems
have a clear utility. The methods described in this paper show promising results in addressing
the endemic bot problem.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Networks</surname>
          </string-name>
          ,
          <source>2020: Bad Bot Report | IT Security's Most In-Depth Analysis on Bad Bots</source>
          , https://bit.ly/2Azqx3d,
          <year>2020</year>
          . Accessed:
          <fpage>2020</fpage>
          -05-15.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ouyang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ford</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Makedon</surname>
          </string-name>
          ,
          <article-title>Analysis of a low-dimensional linear model under recommendation attacks</article-title>
          ,
          <source>in: Proceedings of the 29th annual international ACM SIGIR conference on Research and development in information retrieval</source>
          ,
          <year>2006</year>
          , pp.
          <fpage>517</fpage>
          -
          <lpage>524</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>C.</given-names>
            <surname>Elkan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Noto</surname>
          </string-name>
          ,
          <article-title>Learning classifiers from only positive and unlabeled data</article-title>
          ,
          <source>in: Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining, ACM</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>213</fpage>
          -
          <lpage>220</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bekker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Robberechts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Davis</surname>
          </string-name>
          ,
          <article-title>Beyond the selected completely at random assumption for learning from positive and unlabeled data</article-title>
          ,
          <source>in: Joint European Conference on Machine Learning and Knowledge Discovery in Databases</source>
          , Springer,
          <year>2019</year>
          , pp.
          <fpage>71</fpage>
          -
          <lpage>85</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Dai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. S.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. S.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <article-title>Building text classifiers using positive and unlabeled examples</article-title>
          ,
          <source>in: Data Mining</source>
          ,
          <year>2003</year>
          .
          <article-title>ICDM 2003</article-title>
          . Third IEEE International Conference on, IEEE,
          <year>2003</year>
          , pp.
          <fpage>179</fpage>
          -
          <lpage>186</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>H.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tang</surname>
          </string-name>
          , Y. Liu,
          <string-name>
            <given-names>P.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , X. Liu,
          <article-title>Research on the security of microsoft's two-layer captcha</article-title>
          ,
          <source>IEEE Transactions on Information Forensics and Security</source>
          <volume>12</volume>
          (
          <year>2017</year>
          )
          <fpage>1671</fpage>
          -
          <lpage>1685</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>O.</given-names>
            <surname>Stitelman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Perlich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Dalessandro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Hook</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Raeder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Provost</surname>
          </string-name>
          ,
          <article-title>Using co-visitation networks for detecting large scale online display advertising exchange fraud</article-title>
          ,
          <source>in: Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD '13</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>1240</fpage>
          -
          <lpage>1248</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>X.</given-names>
            <surname>He</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>He</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Du</surname>
          </string-name>
          , T.-S. Chua,
          <article-title>Adversarial personalized ranking for recommendation</article-title>
          ,
          <source>in: The 41st International ACM SIGIR Conference on Research &amp; Development in Information Retrieval</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>355</fpage>
          -
          <lpage>364</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Martinez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Hopcroft</surname>
          </string-name>
          ,
          <article-title>In a world that counts: Clustering and detecting fake social engagement at scale</article-title>
          ,
          <source>in: Proceedings of the 25th International Conference on World Wide Web, WWW '16</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>111</fpage>
          -
          <lpage>120</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>W. S.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <article-title>Learning with positive and unlabeled examples using weighted logistic regression</article-title>
          ,
          <source>in: In Proceedings of the 20th International Conference on Machine Learning, ICML'03</source>
          ,
          <year>2003</year>
          , pp.
          <fpage>448</fpage>
          -
          <lpage>455</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bekker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Davis</surname>
          </string-name>
          ,
          <article-title>Learning from positive and unlabeled data: A survey</article-title>
          ,
          <source>Machine Learning</source>
          <volume>109</volume>
          (
          <year>2020</year>
          )
          <fpage>719</fpage>
          -
          <lpage>760</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>F.-X.</given-names>
            <surname>Jollois</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nadif</surname>
          </string-name>
          ,
          <article-title>Speed-up for the expectation-maximization algorithm for clustering categorical data</article-title>
          ,
          <source>Journal of Global Optimization</source>
          <volume>37</volume>
          (
          <year>2007</year>
          )
          <fpage>513</fpage>
          -
          <lpage>525</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tavallaee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Bagheri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Ghorbani</surname>
          </string-name>
          ,
          <article-title>A detailed analysis of the kdd cup 99 data set</article-title>
          ,
          <source>in: Proceedings of the 2009 IEEE Symposium on Computational Intelligence in Security and Defense Applications (CISDA)</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <article-title>AWS, AWS IP address ranges</article-title>
          ,https://amzn.to/2z2Ql7h,
          <year>2020</year>
          . Accessed:
          <fpage>2020</fpage>
          -04-27.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Microsoft</surname>
          </string-name>
          ,
          <article-title>Microsoft azure datacenter IP ranges</article-title>
          , https://bit.ly/36aMDon,
          <year>2017</year>
          . Accessed:
          <fpage>2020</fpage>
          -04-27.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>