<!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>Lazy Classification of Underground Forums Messages Using Pattern Structures</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Abdulrahim Ghazal</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sergei O. Kuznetsov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>National Research University Higher School of Economics</institution>
          ,
          <addr-line>Pokrovsky boulevard, 11, 109028, Moscow, Russian Federation</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Underground forums are monitored platforms where hackers announce attacks and tools to carry on attacks on businesses or organizations. In this paper, we will experiment on assessing the risk of a dataset of these messages, using pattern structures and a lazy classification scheme, with some introduced complexity-reducing elements and natural language analysis techniques. The results show promising application for this method for this problem, and serve as an introductory step for deeper investigation.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Formal concept analysis (FCA)</kwd>
        <kwd>Threat intelligence</kwd>
        <kwd>Underground forums</kwd>
        <kwd>Pattern structures</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <sec id="sec-1-1">
        <title>1.1. Threat Intelligence</title>
        <p>
          Threat Intelligence constitutes a very critical part of the cybersecurity world nowadays, with
the intensifying cases of cyber attacks that are costing millions of dollars to many industries
and governments [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], and improving every day in quantity and quality.
        </p>
        <p>
          The practice of collecting information about attacks or ofers to attack a target from various
sources has attracted a lot of research and business attention. This is done by monitoring online
forums and instant messaging services, where threat actors post to let other members know
that they have some unauthorized access to a network, database or that they made a new tool
that can help to achieve the above goals. Most of the serious criminal activity is done for money
[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], but sometimes, it has other motives (political statements [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], sabotage or even corporate
espionage).
        </p>
        <p>The forums consist of sub-forums and sections that deal with diferent topics and other
administrative sections to control the announcement, sales, and membership processes. In
addition to that, many forums have a direct marketplace section, where more strict rules about
content are enforced and make these sections designated for sale/buying of illegal products,
ranging from cracked software to confidential databases of entities.</p>
        <p>The most prestigious forums also have an “escrow” service that works like a mediator between
buyers and sellers on the forum and a type of guarantee of impartial control over the interaction.
Many forums also have tiers of membership (VIP, Premium, Golden, etc.). Some forums have
no free membership tiers, meaning that one have to pay to access their content. The content
posted in paid sections or forums is supposed to have more credibility and be written by
more interesting members, depending on the prices, which range from 10$ up to 300$. Most
transactions are paid with cryptocurrency.</p>
      </sec>
      <sec id="sec-1-2">
        <title>1.2. Threat Intelligence Workflow</title>
        <p>Detecting threats is usually performed with the help of human analysts. The analysts’ workflow
has three main phases: discovery, reaction and analysis. The most time consuming and dificult
to do is the first phase, where the analyst has to browse through thousands of messages posted
daily to find credible threats to report. This is even harder when there is a constant stream of
spam messages flooding the forums.</p>
        <p>This work will focus on helping the human analysts in the discovery phase, using textual
analysis of the messages, and learning approaches to help filter out the irrelevant messages,
and tag all relevant messages with the right threat category to further ease the next two phases
of the workflow.</p>
        <p>Now to avoid confusion, we need to define some terms as they are mentioned in the system
vs. how they are usually mentioned in the real world. Table 1 gives the terminology.</p>
        <p>We need a system that can detect threats without capturing many false positive examples,
or missing a true positive case, which carries a high business cost. Another constraint on
the needed system is to be time sensitive, as many threats are very volatile, meaning that the
threat actor will post about the sale of access for example, in several minutes or hours, some
other criminal entity (or in some cases the victims) will contact him about the sale, pay him
and request removing the sale announcement. The last important feature of the system is
explainability, as human analysts need to understand the reasoning behind a classification result.</p>
        <p>This will be achieved by building a learning-based system.</p>
        <p>The rest of the paper is organized as follows: In Section 2 we recall basic denfiitions in formal
concept analysis and pattern structures. In Section 3 we describe the lazy classification method
using pattern structures. Section 4 describes the experimental setting. In Section 5, we discuss
the preliminary results of applying the lazy classification to underground forum messages. We
conclude the work in section 6.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Formal Concept Analysis</title>
      <sec id="sec-2-1">
        <title>2.1. Main Definitions</title>
        <p>
          Formal Concept Analysis (FCA) as defined in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] is a mathematical theory that is based on
concepts and conceptual hierarchy. It is applied for knowledge discovery and data analysis
[
          <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
          ].
        </p>
        <p>Let  be a set of objects,  a set of attributes or descriptions of these objects, and  ⊆  × 
a binary relation between  and  . We call the triple (, ,) a formal context. If  ∈  has
the attribute  ∈  , then (, ) ∈ . We then define the derivation operators (.)′ on  ⊆ 
and  ⊆  :
′ = { ∈  | ∀ ∈  : }
′ = { ∈  | ∀ ∈  : }
(1)
(2)</p>
        <p>We call a pair (,) such that ′ =  and ′ = , a formal concept, and  is called its
extent and  is its intent. A partial order ≤ is defined on the set of concepts: ( ,) ≤ (C,D) if
 ⊆  and  ⊆ . In this case, (,) is called the subconcept and (,) a superconcept. This
partial order gives rise to a complete lattice on the set of all formal concepts. We call this the
concept lattice  of the formal context (, ,).</p>
        <p>
          The hierarchical structure of concept lattices can be applied at mining association rules [
          <xref ref-type="bibr" rid="ref5 ref7">5, 7</xref>
          ]
ontology design [
          <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
          ], and recommendation systems, because of the ability to explain the
rationale behind the recommended item [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>
          There is a large focus in FCA domain on building concept lattices and extracting the concepts
from a given formal context in an eficient manner, for it to become more applicable in the real
world [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. In [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] researchers compared the performance of several algorithms to build concept
lattices and gave insights on which algorithm would be the one to choose depending on the
data. There is also a number of works to discuss other applications of FCA in learning [
          <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Pattern Structures</title>
        <p>
          To increase the applications of Formal Concept Analysis, it had to be able to represent more
complex data structures, like graphs or non-binary data. This need led to the development of
pattern structures [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
        </p>
        <p>Let  be a set of objects and (, ⊓) be a meet-semi-lattice of possible object descriptions
or patterns (for standard FCA, it would be the powerset of attribute set) with the similarity
operator ⊓. Elements of  are ordered by a subsumption relation ⊑ such that , ∈ , then
one has  ⊑  ⇔  ⊓  = . We also define  :  →  as a mapping between objects and their
attributes. We call (, ,  ) where  = (, ⊓) a pattern structure. We can define the operators
(· )◇ on  ⊆  and  ∈ (, ⊓) making Galois connection between the powerset of objects and
ordered set of descriptions:</p>
        <p>◇ = ⊓∈ ()
◇ = { ∈  |  ⊑  ()}
(3)
(4)</p>
        <p>These operators will give us back the maximal set of patterns shared by the objects in  and
the maximal set of objects that share the description , respectively.</p>
        <p>A pair (, ),  ∈  and  ∈ (, ⊓) that satisfies ◇ =  and ◇ =  is called a pattern
concept, where  is called the extent and  is called the pattern intent of (, ).</p>
        <p>A partial order ≤ is defined on the set of concepts: (, 1) ≤ (, 2) if  ⊆  (or,
equivalently, 2 ⊑ 1). This partial order forms a complete lattice on the set of all pattern
concepts. We call this the pattern concept lattice of the pattern structure (, ,  ).</p>
        <p>
          Pattern structures are helpful in applications with complex data, like graphs, many-valued
attributes [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], intervals or interval vectors [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>
          For classification tasks we do not need to extract the full hidden knowledge from a dataset in
terms of implications, hypotheses or association rules, but a so-called lazy classification can be
applied [
          <xref ref-type="bibr" rid="ref16">16, 17</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Lazy Classification with Pattern Structures</title>
        <p>In classification problems we have a target attribute, which, in the simplest case of two classes,
has two values, denoted by + and − . By + we denote the set of objects that have the target
attribute (positive examples) and by − we denote the set of objects that do not have the target
attribute (negative examples), so that + ∩ − = ∅. Elements of  that do not belong to any
of these subsets are called unclassified examples  .</p>
        <p>
          A version of the lazy classification method [
          <xref ref-type="bibr" rid="ref16">16, 17</xref>
          ] is described in Algorithm 1.
        </p>
        <p>This algorithm takes  |  | · ((⊓+ |  | (⊑))) time, where (⊓), (⊑) are times for
computing ⊓, ⊑, respectively.</p>
        <p>Algorithm 1: Lazy Classification with Pattern Structures
Requires: pattern structure (, ,  ), test example  ∈  with description  (),
parameter 0 ≤  ≤ 1.
1: for  ∈ + ∪ − :
2: compute sim =  () ⊓  ()
3: extsim = (sim)◇
4: if  % of objects in extsim have target attribute, classify  positive
5: if  % of objects in extsim do not have target attribute, classify  negative
6: classify undetermined (the algorithm terminates without classification).</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Experiments</title>
      <p>The examples dataset used in the following experiments is composed of underground forum
messages as the objects and features extracted from these messages as attributes. After building
the concept lattice from this dataset, we construct another dataset for testing the classification.
Both datasets contain positive and negative examples. The target attribute is a simple flag
stating whether the message is a real threat or not.</p>
      <p>The procedure realizing the lazy classification scheme is as follows: we go through the objects
of the formal context and check the extension of the intersection of the test object and the
concept object, if all objects of this extension have the attribute value, then the test object is
classified positively, if all of the objects of the extension do not have the attribute value, the test
object is classified negatively, otherwise, the model cannot classify the object. To avoid object
selection bias, we shufle the objects randomly.</p>
      <p>Now we move to describe the datasets used in this setting, then talk about the results of the
experiments.</p>
      <sec id="sec-3-1">
        <title>3.1. The Datasets</title>
        <p>The training examples revolve around messages that are classified as real threats by human
analysts. These messages were collected using a system which is a part of a commercial
product1. The only constraint on these examples is being published on the underground forums
in 2021 and on. These examples constitute the positive training dataset part. We checked
the underground forums where these messages were written, and the list of these forums is
used to generate the negative examples, in a way such that for each positive example  of
a forum,  =* negative examples are collected randomly w.r.t the date constraint, where
 is a factor, called balance ratio, which will be controlled in the experiments. The number
of positive training examples is 595. The testing was performed on 960 positive examples
and the negative testing examples were constructed in the same manner as training
negative examples. These messages are collected from 12 diferent forums. Several experiments
will be run with changing several parameters that might afect the final results. These factors are:
1. Dataset size and distribution: the only constant we have is the number of positive
examples used. We test several sizes of negative/positive balance ratio values. In addition to
1Provided by the cybersecurity firm Group-IB.</p>
        <p>this, we try to make a less random choice of negative examples, by filtering messages
that might be spam messages (for instance, messages like “thanks” or “up” are considered
to be of low value). We can also choose messages posted only in subsections of forums
that are relevant to the classification (if we are trying to find messages about database
leaks, we do not need messages coming from the credit cards section). Filtering based on
message length is needed also, because some messages are articles, and while they would
contain a lot of triggering keywords, they are not actual threats.
2. The intersection operator: we used set-theoretic intersection, then we use interval
intersection (We will look into two-sided and one-sided intervals).
3. The number of attributes: the attributes are the values of tf-idf for the words of the
messages, and changing the number of words to be in the attributes list is examined, and
for which popularity of the keyword we can ignore it and remove it from the list is also
considered. The values of attributes in case of theoretic set intersection are binary (the
message either have the keyword or not). In case of interval intersection, the value of the
attribute would be an interval beginning and ending with the tf-idf value.
4. The tolerance factor  , which represents the probabilistic relaxation allowed for counter
examples.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Assessment Methods</title>
        <p>We will have the usual classification assessment methods, but we need to be attentive to the
case of unclassified examples. Handling unclassified examples can be done in three diferent
ways:
• Ignoring them by considering them negative examples, and that depends on how harsh
our model is about classifying new examples. i.e., if the model classifies almost all positive
examples as positive (high recall) and leaves only a very small number of unclassified
examples relative to the number of new examples, then it might be possible to classify
unclassified examples as negative, as the probability of them being actually positive is
very low. This approach is not acceptable in cases where the cost of missing a positive
example is high, which is the case for us, as missing a real threat is of a high cost.
• Moving all the unclassified examples to a human analyst, so they can assess their
credibility, which can be done only in case the number of unclassified examples is low.
• Removing unclassified examples all together, by having a probabilistic relaxation of the
classifier, so that it classifies examples based on how close they are to a class, not as
zero-one state.
examples  ⊆  .</p>
        <p>In addition to the usual definitions of assessment, we define another measure of the
improvement this brings to human workers, by how much the messages they have to check shrunk in
size. We call it "saved efort " and define as 1 − |||| , where  is the set of unclassified</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Testing Parameters</title>
        <p>We first state our parameters that would be used in the future. We have |+| =  positive
examples and |− | =  negative examples for the training dataset. We have zero unclassified
examples in the training data. The number of negative examples  =  *  where  is a
positive integer.</p>
        <p>The number of attributes is labeled as . In the test dataset, we have  positive examples
and  examples. The model might have a number of unclassified examples of the test dataset.
This set of examples is labeled  and it is divided in two subsets: true positive examples that
were left unclassified by the model (labeled -) and true negative examples that were left
unclassified by the model (labeled -).</p>
        <p>In the method we described above, the explanation of the model is the intersection of attributes
of the test object and the concept object that gave us the result of the classification (meaning
that the extension of this intersection of attributes all have/do not have the attribute value).
This set is denoted by .</p>
        <p>While we can control the balance of the training dataset in our case, this might not be the
real world situation, which means that we would have a varying range of the values of saved
efort and F1 measure, presenting us with a trade-of between coverage and model predictions
correctness.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Results</title>
      <p>We performed multiple experiments. The first one would have only binary attributes. The next
would have intervals as attributes. In the next two experiments, the data is represented by
onesided intervals. After this, we repeat the pattern structures experiments but with varying values
for  . Due to space limitations we present the results at
https://github.com/abdulrahimGhazal/FCAresults</p>
      <sec id="sec-4-1">
        <title>4.1. Binary Attributes</title>
        <p>The attribute values here are TT-IDF values for the keywords contained in the vectorizer’s
vocabulary resulting from building the tf-idf model. The value of the attribute in an object
would be represented here as:
_() =
︂{ 1  ∈  
0 ℎ
(5)
(6)</p>
        <p>We test a range of 5 values of the ratio between the positive to negative examples in the
training dataset (from 1 to 5). We also test 5 diferent values of _ which is a factor
that controls the number of attributes that we would have. It specifies the threshold at which
the TT-IDF builder ignores the term if it has less frequency in the documents. Theoretic set
intersection is used.</p>
        <p>The highest F1 in these experiments occurred on the first experiments where the dataset had
the most keywords (lowest _ step) and the same goes for the saved efort measure. The
highest value was F1 = 98.8 and saved efort = 88.8 at (ratio, _ ) = (1, 0.01).</p>
        <p>We can observe peaks that happen when we reset the _ step in the training dataset,
then a decline in the F1 afterwards until the next peak. This is a natural observation, since the
_ step increases between the peaks, meaning that we increase the number of ignored
keywords that might play a role in classifying the messages correctly.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Relaxed Binary Attributes</title>
        <p>We now repeat the same experiment, using only the lowest balance ratio, varying the values of
_ , and also varying values of  to allow for a certain small amount of counterexamples
(objects of the other class matching the intersections used as classifiers).</p>
        <p>The highest value was F1 = 98.6 at ( , ratio, _ ) = (90, 1, 0.01) and saved efort = 92.5
at ( , ratio, _ ) = (75, 1, 0.01).</p>
        <p>Now we look at using pattern structures to classify underground messages by representing
textual data as intervals (two-sided and one-sided).</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3. Interval Representation</title>
        <p>In this next part, we represent the values of the tf-idf as intervals of the floating point value
such as if the tf-idf value is , the attribute value would be [,]. In this setting, the intersection
operator is defined as an interval that starts with the minimum of the two intervals’ starts and
ends with the maximum of the two intervals’ ends.</p>
        <p>[1, 1] ⊓ [2, 2] = [(1, 2), [1, 2)]
(7)</p>
        <p>The highest F1 in these experiments occurred on the first experiments where the dataset had
the most keywords (lowest _ step) and the same goes for the saved efort measure. The
highest value was F1 = 88.0 and saved efort = 87.7 at (ratio, _ ) = (1, 0.01). The values of
F1 and saved efort decreases after that with increasing values of _ .</p>
      </sec>
      <sec id="sec-4-4">
        <title>4.4. One-Sided Interval Representation (Max)</title>
        <p>Here, we represent the values of the tf-idf as intervals of the floating point value such as if the
tf-idf value is , the attribute value would be [,∞].</p>
        <p>In this setting, the intersection operator is defined as an interval that starts with the maximum
of the two intervals’ starts and ends with infinity.</p>
        <p>[1, ∞] ⊓ [2, ∞] = [(1, 2), ∞]
(8)</p>
        <p>The highest F1 in these experiments occurred on the first experiments where the dataset had
the most keywords (lowest _ step) and the same goes for the saved efort measure. The
highest value was F1 = 88.0 and saved efort = 87.7 at (ratio, _ ) = (1, 0.01). The values of
F1 and saved efort decreases after that with increasing values of _ .
Here, we represent the values of the tf-idf as intervals of the floating point value such as if the
tf-idf value is , the attribute value would be [,∞].</p>
        <p>In this setting, the intersection operator is defined as an interval that starts with the minimum
of the two intervals’ starts and ends with infinity.</p>
        <p>The highest F1 in these experiments occurred on the first experiments where the dataset had
the most keywords (lowest _ step) and the same goes for the saved efort measure. The
highest value was F1 = 89.7 and saved efort = 87.6 at (ratio, _ ) = (1, 0.01). The values of
F1 and saved efort decreases after that with increasing values of _ .</p>
      </sec>
      <sec id="sec-4-5">
        <title>4.6. Interval Representation With Probabilistic Relaxation</title>
        <p>In this next part, we represent the values of the tf-idf as intervals of the floating point value
such as if the tf-idf value is , the attribute value would be [,]. As in before, the intersection
operator is defined as an interval that starts with the minimum of the two intervals’ starts and
ends with the maximum of the two intervals’ ends.</p>
        <p>The diference now is testing several  values (see Algorithm 1).</p>
        <p>[1, 1] ⊓ [2, 2] = [(1, 2), [1, 2)]</p>
        <p>The highest value was F1 = 94.2 at ( , ratio, _ ) = (80, 1, 0.01) and saved efort = 94.1 at
( , ratio, _ ) = (75, 1, 0.01). The pattern noticed here is the F1 peaks we get when values of
_ increases locally at constant values of  , Then when we increase _ significantly,
the values of F1 decreases again.</p>
      </sec>
      <sec id="sec-4-6">
        <title>4.7. One-Sided Interval Representation (Max) With Probabilistic Relaxation</title>
        <p>Here, we represent the values of the tf-idf as intervals of the floating point value such as if the
tf-idf value is , the attribute value would be [,∞]. The diference now is testing several 
values (see Algorithm 1).</p>
        <p>In this setting, the intersection operator is defined as follows:</p>
        <p>[1, ∞] ⊓ [2, ∞] = [(1, 2), ∞]</p>
        <p>The highest value was F1 = 91.7 at ( , ratio, _ ) = (95, 1, 0.01) and saved efort = 94.5 at
( , ratio, _ ) = ((85,90,95), 1, 0.01). The pattern noticed here is the F1 peaks we get when
values of _ increases locally at constant values of  , Then when we increase _
significantly, the values of F1 decreases again.</p>
        <p>(9)
(10)
(11)</p>
      </sec>
      <sec id="sec-4-7">
        <title>4.8. One-Sided Interval Representation (Min) With Probabilistic Relaxation</title>
        <p>Here, we represent the values of the tf-idf as intervals of the floating point value such as if the
tf-idf value is , the attribute value would be [,∞]. The diference now is testing several 
values (see Algorithm 1).</p>
        <p>In this setting, the intersection operator is defined as an interval that starts with the minimum
of the two intervals’ starts and ends with infinity.</p>
        <p>The highest value was F1 = 94.1 at ( , ratio, _ ) = (75, 1, 0.01) and saved efort = 94.2
at ( , ratio, _ ) = ((75,80), 1, 0.01). The pattern noticed here is the F1 peaks we get when
values of _ increases locally at constant values of  , Then when we increase _
significantly, the values of F1 decreases again.</p>
      </sec>
      <sec id="sec-4-8">
        <title>4.9. Discussion</title>
        <p>Looking at the results, we can see that the binary values of the attributes model performed the
best, because the attributes values and intersection method there (the theoretical set intersection)
is the most restrictive among all others, giving a little room for error, but the issue with such
method is that it sufers from this restrictions when totally new keywords are introduced, as it
does not accept any keywords which were not used in the exact intersection.</p>
        <p>We can also see that the less restrictive the conditions of the intersection, the less accurate it
will be. The best conditions of pattern structures in non-binary representation of the data in
our example is the Minimum one-sided intervals, because by its nature, it is the most inclusive
of values that are non-zero in the classification scheme.</p>
        <p>The next best one is the Maximum one-sided interval. While worse than the Minimum
onesided interval, because it is restricting attribute values to a smaller interval, it still outperforms
the interval representation, because of how limited the values of interval representation are.</p>
        <p>When relaxation is introduced, we can see that the values of F1 and the saved efort are
higher than in the case with no relaxation, supporting that flexibility is useful in case of text
messages classification.</p>
        <p>The sizes of the - were always smaller than -, because of the limited set of
keywords the model would have compared to the large amount of possible negative messages’
keywords.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>Underground forum messages are hackers announcements that are shared on the internet about
attacks or tools used to carry out attacks. We presented an FCA-based approach for classifying
forum messages based on their probability of being risky. The results of experiments show
that the use of binary attributes (standard FCA) gave better accuracy, while the use of interval
pattern structures gave better saved efort.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Acknowledgements</title>
      <p>The article was prepared within the framework of the Basic Research Program at HSE University,
RF
[17] S. O. Kuznetsov, Fitting pattern structures to knowledge discovery in big data, in:
International conference on formal concept analysis, Springer, 2013, pp. 254–266.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>McAfee</surname>
          </string-name>
          ,
          <article-title>The Economic Impact of Cybercrime: No Slowing Down</article-title>
          ,
          <source>Technical Report</source>
          , Santa Clara, CA, USA,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Pastrana</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Thomas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hutchings</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Clayton</surname>
          </string-name>
          , Crimebb:
          <article-title>Enabling cybercrime research on underground forums at scale</article-title>
          ,
          <source>in: Proceedings of the 2018 World Wide Web Conference</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>1845</fpage>
          -
          <lpage>1854</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Zone-H Homepage Team</surname>
          </string-name>
          , Zone-h homepage,
          <year>2022</year>
          . URL: http://www.zone-h.org/.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>B.</given-names>
            <surname>Ganter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Wille</surname>
          </string-name>
          ,
          <source>Formal concept analysis: mathematical foundations</source>
          , Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kaytoue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Napoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Duplessis</surname>
          </string-name>
          ,
          <article-title>Mining gene expression data with pattern structures in formal concept analysis</article-title>
          ,
          <source>Information Sciences 181</source>
          (
          <year>2011</year>
          )
          <fpage>1989</fpage>
          -
          <lpage>2001</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Masyutin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kashnitsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <article-title>Lazy classication with interval pattern structures: Application to credit scoring</article-title>
          ,
          <source>in: FCA4AI@ IJCAI</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W.</given-names>
            <surname>Saidi</surname>
          </string-name>
          ,
          <article-title>Formal concept analysis based association rules extraction (</article-title>
          <year>2012</year>
          )
          <fpage>490</fpage>
          -
          <lpage>497</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Obitko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Snasel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Smid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Snasel</surname>
          </string-name>
          ,
          <article-title>Ontology design with formal concept analysis</article-title>
          .,
          <source>in: CLA</source>
          , volume
          <volume>128</volume>
          ,
          <year>2004</year>
          , pp.
          <fpage>1377</fpage>
          -
          <lpage>1390</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ogasawara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Endoh</surname>
          </string-name>
          , T. Sakurai,
          <article-title>Context-based ontology building support in clinical domains using formal concept analysis</article-title>
          ,
          <source>International journal of medical informatics 71</source>
          (
          <year>2003</year>
          )
          <fpage>71</fpage>
          -
          <lpage>81</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Vilakone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Xinchang</surname>
          </string-name>
          , D.-S. Park,
          <article-title>Movie recommendation system based on users' personal information and movies rated using the method of k-clique and normalized discounted cumulative gain</article-title>
          ,
          <source>Journal of Information Processing Systems</source>
          <volume>16</volume>
          (
          <year>2020</year>
          )
          <fpage>494</fpage>
          -
          <lpage>507</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Dias</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. J.</given-names>
            <surname>Vieira</surname>
          </string-name>
          ,
          <article-title>Concept lattices reduction: Definition, analysis and classification</article-title>
          ,
          <source>Expert Systems with Applications</source>
          <volume>42</volume>
          (
          <year>2015</year>
          )
          <fpage>7084</fpage>
          -
          <lpage>7097</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Obiedkov</surname>
          </string-name>
          ,
          <article-title>Comparing performance of algorithms for generating concept lattices</article-title>
          ,
          <source>Journal of Experimental &amp; Theoretical Artificial Intelligence</source>
          <volume>14</volume>
          (
          <year>2002</year>
          )
          <fpage>189</fpage>
          -
          <lpage>216</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <article-title>Machine learning and formal concept analysis</article-title>
          ,
          <source>in: International Conference on Formal Concept Analysis</source>
          , Springer,
          <year>2004</year>
          , pp.
          <fpage>287</fpage>
          -
          <lpage>312</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Makhazhanov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ushakov</surname>
          </string-name>
          ,
          <article-title>On neural network architecture based on concept lattices</article-title>
          ,
          <source>in: International Symposium on Methodologies for Intelligent Systems</source>
          , Springer,
          <year>2017</year>
          , pp.
          <fpage>653</fpage>
          -
          <lpage>663</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Ganter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <article-title>Pattern structures and their projections</article-title>
          ,
          <source>in: International conference on conceptual structures</source>
          , Springer,
          <year>2001</year>
          , pp.
          <fpage>129</fpage>
          -
          <lpage>142</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <article-title>Scalable knowledge discovery in complex data with pattern structures</article-title>
          ,
          <source>in: International Conference on Pattern Recognition and Machine Intelligence</source>
          , Springer,
          <year>2013</year>
          , pp.
          <fpage>30</fpage>
          -
          <lpage>39</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>