<!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>A One-Pass Triclustering Approach: Is There any Room for Big Data?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dmitry V. Gnatyshak</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dmitry I. Ignatov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sergei O. Kuznetsov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lhouari Nourine</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Blaise Pascal University</institution>
          ,
          <addr-line>LIMOS, CNRS</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>National Research University Higher School of Economics</institution>
          ,
          <addr-line>Russian Federation</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>An e cient one-pass online algorithm for triclustering of binary data (triadic formal contexts) is proposed. This algorithm is a modi ed version of the basic algorithm for OAC-triclustering approach, but it has linear time and memory complexities with respect to the cardinality of the underlying ternary relation and can be easily parallelized in order to be applied for the analysis of big datasets. The results of computer experiments show the e ciency of the proposed algorithm.</p>
      </abstract>
      <kwd-group>
        <kwd>Formal Concept Analysis</kwd>
        <kwd>triclustering</kwd>
        <kwd>triadic data</kwd>
        <kwd>data mining</kwd>
        <kwd>big data</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Cluster analysis of multimodal data and speci cally of dyadic and triadic
relations is a natural extension of the idea of normal clustering. In dyadic case
biclustering methods (the term bicluster was coined by B. Mirkin [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]) are used
to simultaneously nd subsets of the sets of objects and attributes that form
homogeneous patterns of the input object-attribute data. One of the most popular
applications of biclustering is gene expression analysis in Bionformatics [
        <xref ref-type="bibr" rid="ref16 ref3">16,3</xref>
        ].
Triclustering methods operate in triadic case in which for each object-attribute
pair one assigns a set of some conditions [
        <xref ref-type="bibr" rid="ref18 ref5 ref8">18,8,5</xref>
        ]. Both biclustering and
triclustering algorithms are widely used in such areas as the analysis of gene expression
[
        <xref ref-type="bibr" rid="ref13 ref15 ref21">21,15,13</xref>
        ], recommender systems [
        <xref ref-type="bibr" rid="ref10 ref19 ref9">19,10,9</xref>
        ], social networks analysis [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], etc. The
processing of numeric multimodal data is also possible by modi cations of
existing approaches for mining binary relations [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        Though there are methods that can enumerate all triclusters satisfying
certain constraints [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] (in most cases they ensure that triclusters are dense), their
time complexity is rather high, as in the worst case the maximal number of
triclusters usually is exponential (e.g. in case of formal triconcepts), showing that
these methods are hardly scalable. To process big data algorithms need to have
at most linear time complexity and be easily parallelizable. Also, in most cases,
it is necessary that such algorithms output the results in one pass.
      </p>
      <p>
        In order to create an algorithm satisfying these requirements we adapted a
triclustering method based on prime operators (prime OAC-triclustering method)
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. As the result we developed an online version of prime OAC-triclustering
method, which is linear, one-pass and easily parallelizable.
      </p>
      <p>The rest of the paper is organized as follows: in Section 2 we recall the
method and the basic version of the algorithm of prime OAC-triclustering. In
Section 3 we describe the online setting for the problem and the corresponding
online version of the basic algorithm with some optimizations. Finally, in Section
4 we show the results of some experiments which demonstrate the e ciency of
the online version of the algorithm.
2</p>
      <p>
        Prime object-attribute-condition triclustering method
Prime object-attribute-condition triclustering method based on the framework
of Formal Concept Analysis [
        <xref ref-type="bibr" rid="ref2 ref20 ref4">20,4,2</xref>
        ] is an extension for the triadic case of
objectattribute biclustering method [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Triclusters generated by this method have the
same structure as the corresponding biclusters, namely the cross-like structure
of triples inside the iput data cuboid (i.e. formal tricontext).
      </p>
      <p>Let K = (G; M; B; I) be a triadic context, where G, M , B are respectively
the sets of objects, attributes, and conditions, and I G M B is a triadic
incidence relation. Each prime OAC-tricluster is generated by applying the
following prime operators to each pair of components of some triple:
(X; Y )0 = fb 2 B j (g; m; b) 2 I for all g 2 X; m 2 Y g;
(X; Z)0 = fm 2 M j (g; m; b) 2 I for all g 2 X; b 2 Zg;
(Y; Z)0 = fg 2 G j (g; m; b) 2 I for all m 2 Y; b 2 Zg
(1)</p>
      <p>Then the triple T = ((m; b)0; (g; b)0; (g; m)0) is called prime OAC-tricluster
based on triple (g; m; b) 2 I. The components of tricluster are called,
respectively, extent, intent, and modus. The triple (g; m; b) is called a generating triple
of the tricluster T . Figure 2 shows the structure of an OAC-tricluster (X; Y; Z)
based on triple (g; m; eb), triples corresponding to the gray cells are contained in
e e
the context, other triples may be contained in the tricluster (cuboid) as well.</p>
      <p>The basic algorithm for prime OAC-triclustering method is rather simple
(Alg. 1). First of all, for each combination of elements from each two sets of K
we compute the results of applying the corresponding prime operator (we will
call the resulting sets prime sets ). After that we enumerate all triples from I and
on each step we must generate a tricluster based on the corresponding triple,
check whether this tricluster is already presented in the tricluster set (by using
hashing) and also check conditions.</p>
      <p>The total time complexity of the algorithm depends on whether there is a
non-zero minimal density threshold or not and on the complexity of the hashing
algorithm used. In case we use some basic hashing algorithm processing the
tricluster's extent, intent and modus and have a minimal density threshold equal
to 0, the total time complexity of the main loop is O(jIj(jGj + jM j + jBj)), and of
the whole algorithm is O(jGjjM jjBj + jIj(jGj + jM j + jBj)). If we have a non-zero
minimal density threshold, the time complexity of the main loop, as well as the
time complexity of the algorithm, is O(jIjjGjjM jjBj).</p>
      <p>The memory complexity is O(jIj(jGj + jM j + jBj)), as we need to keep the
dictionaries with the prime sets in memory.
3</p>
      <p>Online version of the OAC-triclustering algorithm
At rst, let us describe the online problem of nding the set of prime
OACtriclusters. Let K = (G; M; B; I) be a triadic context. The user has no a priori
knowledge of the elements and even cardinalities of G, M , B, and I. At each
iteration we receive some set of triples from I: J I. After that we must
process J and get the current version of the set of all triclusters. It is important
in this setting to consider every pair of triclusters di erent if they have di erent
generating triples, event if their extents, intents, and modi are equal, because
any other triple can change only one of them, thus making them di erent. The
picture 2 shows the example of such situation (dark gray cells are the generating
triples, light gray | prime sets).</p>
      <p>Also the algorithm requires that the dictionaries containing the prime sets
are implemented as hash-tables. Because of this data structure the algorithm
can e ciently access prime sets for their processing.</p>
      <p>The algorithm itself is also quite simple (Alg. 2). It takes some set of triples
(J ) and current versions of the tricluster set (T ) and the dictionaries
containing prime sets (P rimesOA, P rimesOC, P rimesAC) as input and outputs the
modi ed versions of the tricluster set and dictionaries. The algorithm processes
each triple (g; m; b) of J sequentially (line 1). On each iteration the algorithm
modi es the corresponding prime sets:</p>
      <p>Finally, it adds a new tricluster to the tricluster set. It is important to note
that this tricluster contains pointers to the corresponding prime sets (in the
corresponding dictionaries) instead of the copies of the prime sets (line 5).</p>
      <p>In e ect this algorithm is the same as the basic one but with some
optimizations. First of all, instead of computing prime sets at the beginning, we modify
them on spot, as adding an additional triple to the relation modi es only three
prime sets by one element. Secondly, we remove the main loop by using pointers
for the triclusters' extents, intents, and modi, as we can generate triclusters at
the same step as we modify the prime sets. And the third important
optimization is the use of only one pass through the triples of the ternary relation I,
instead of enumeration of di erent pairwise combinations of objects, attributes,
and conditions.</p>
      <p>Algorithm 2 Add function for the online algorithm for prime OAC-triclustering.
Input: J | set of triples;</p>
      <p>T = fT = ( X; Y; Z)g | current set of triclusters;</p>
      <p>P rimesOA, P rimesOC, P rimesAC;
Output: T = fT = ( X; Y; Z)g;</p>
      <p>P rimesOA, P rimesOC, P rimesAC;
1: for all (g; m; b) 2 J do
2: P rimesOA[g; m] := P rimesOA[g; m] [ b
3: P rimesOC[g; b] := P rimesOC[g; b] [ m
4: P rimesAC[m; b] := P rimesAC[m; b] [ g
5: T := T [ (&amp;P rimesAC[m; b]; &amp;P rimesOC[g; b]; &amp;P rimesOA[g; m])
6: end for</p>
      <p>Let us estimate the complexities of this algorithm. Each step requires the
constant time: we need to modify three sets and add one tricluster to the set of
triclusters. The total number of steps is equal to jIj. Thus the time complexity
is linear O(jIj). Beside that the algorithms is one-pass.</p>
      <p>The memory complexity is the same: for each of jIj steps the size of each
dictionary containing prime sets is increased either by one element (if the required
prime set is already present), or by one key-value pair (if not). Still, each of
these dictionary requires O(jIj) memory. Thus, the memory complexity is also
linear O(jIj).</p>
      <p>Another important step used as an addition to this algorithm is post-processing.
In addition to the user-speci c post-processing there are some common useful
steps. First of all, in the xed moment of time we may want to remove
additional triclusters with the same extent, intent, and modus from the output. Also
some simple conditions like minimal support condition can be processed during
this step without increasing the original complexity. It should be done only
during the post-processing step, as the addition of a triple in the main algorithm
can drastically change the set of triclusters, and, respectively, the values used
to check the conditions. Finally, if we need to check more di cult conditions
like minimal density condition the time complexity of the post-processing will
be higher than the time complexity of the original algorithm, but it can be also
e ciently implemented.</p>
      <p>
        To remove the same triclusters we need to use an e cient hashing procedure
that can be improved by implementing it in the main algorithm. For this for
all prime sets we need to keep their hash-values with them in the memory. And
nally, when using hash-functions other than LSH function (Locality-Sensitive
Hashing) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] we can calculate hash-values of prime sets as some function of
their elements (for example, exclusive disjunction or sum). Then when we modify
prime sets we just need to get the result of this function and the new element. In
this case, the hash-value of the tricluster can be calculated as the same function
of the hash-values of its extent, intent, and modus.
      </p>
      <p>Then it would be enough to implement the tricluster set as a hash-set in
order to e ciently remove the additional entries of the same tricluster.</p>
      <p>Pseudo-code for the basic post-processing (Alg. 3).</p>
      <sec id="sec-1-1">
        <title>Algorithm</title>
        <p>triclustering.</p>
        <p>Input: T = fT = ( X; Y; Z)g | full set of triclusters;
Output: T = fT = ( X; Y; Z)g | processed hash-set of triclusters;
1: for all T 2 T do
2: Calculate hash(T )
3: if hash(T ) 62 T then
4: T := T [ T
5: end if
6: end for</p>
        <p>3 Post-processing for the online algorithm for prime
OACIf the names of the objects, attributes, and conditions are small enough (so
that we can consider the time complexity of computing their hash values as
O(1)), the time complexity of the post-processing is O(jIj) if we do not need
to calculate densities, and O(jIjjGjjM jjBj) otherwise. Also, the basic version
of the post-processing does not require any additional memory, so its memory
complexity is O(1).</p>
        <p>Finally, the algorithm can be easily paralleled by splitting the subset of triples
J into several subsets, processing each of them independently, and merging the
resulting sets afterwards.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Experiments</title>
      <p>Two series of experiments were conducted in order to verify the time complexities
and e ciency of the online algorithm: rst one was conducted on the rst set of
synthetic contexts and on real world datasets, the second one | on the second
set of synthetic contexts with large number of triples in each. In each experiment
for the rst set both versions of the OAC-triclustering algorithm were used to
extract triclusters from a given context. Only the online version of the algorithm
was applied to the second set of contexts as the computation time of the basic
version of the algorithm was too high. To evaluate the time more precisely, for
each context there were 5 runs of the algorithms with the average result recorded.
4.1</p>
      <sec id="sec-2-1">
        <title>Datasets</title>
        <p>Synthetic datasets. As it was mentioned, two sets of synthetic contexts were
generated.</p>
        <p>First ve contexts have the same size, but di erent average densities. The
sets of objects, attributes, and conditions of these contexts consist of 50 elements
each (thus, the maximal number of triples for them is equal to 125,000). To form
the relation I a pseudo-random number generator was used. It added each triple
to the context with the given probability that was di erent for each context.
These probabilities were: 0.02, 0.04, 0.06, 0.08, and 0.1.</p>
        <p>The second set of uniform synthetic contexts consists of 10 contexts with the
same probability for each triple to be included (0.001), but with di erent sizes
of the sets of objects, attributes, and conditions. These sizes were 100, 200, 300,
. . . , 1000.</p>
        <p>IMDB. This dataset consists of Top-250 list of the Internet Movie Database (250
best movies based on user reviews). For the analysis the following triadic context
was extracted: the set of objects consists of movie names, the set of attributes |
of tags, the set of conditions | of genres, and a triple of the ternary relation
means that the given movie has the given genre and is assigned the given tag.
Bibsonomy. Finally, a sample of the data of bibsonomy.org was used. This
website allows users to share bookmarks and lists of literature and tag them.
For the research the following triadic context was extracted: the set of objects
consists of users, the set of attributes (tags), the set of conditions (bookmarks),
and a triple of the ternary relation means that the given user has assigned the
given tag to the given bookmark.</p>
        <p>The table 1 contains the summary of the contexts.
4.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Results</title>
        <p>
          The experiments were conducted on the computer running under Windows 8,
using Intel Core i7-3517U 2.40 GHz processor, having 8 GB RAM. The algorithms
were implemented in C# under .NET Framework 4.5. Jenkins' hash-function
[
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] was used to generate hash-values.
        </p>
        <p>Figure 3 shows the time performance of both versions of the algorithms for
di erent values of minimal density threshold. Figure 4 shows the computation
time for the online version of the algorithm on the second set of synthetic
contexts. \Basic" graph refers to the average time required by the basic algorithm,
\Online, algorithm" | to average time required by the main algorithm part of
the online algorithm (addition of new triples), \Online, total" | to the
average time required by both the main algorithm and post-processing. Table 4.2
contains summary of the results for the case of zero minimal threshold.</p>
        <p>As it can be clearly seen from all the graphs, online version of the algorithm
signi cantly outperforms the basic version. However, post-processing in case of
non-zero minimal density threshold can minimize the di erence, especially in
cases with small sets of objects, attributes, and conditions and large ternary
relation.</p>
        <p>In the case of several contexts of the xed size, but increasing density, total
computation time converges to the same value for the both algorithms, with
the time for the online one being slightly smaller. For the non-zero minimal
density threshold this convergence takes place for almost any average density
value. In this case there is a rather large number of triclusters of big size,
with many intersections, thus it takes much time to calculate all the triclusters'
densities. This situation is close to the worst case, where time complexity is
O(jGjjM jjBj) for the main algorithm (because jIj converges to jGjjM jjBj) and
O(jIjjGjjM jjBj) for the post-processing. Also, in the case where the context's
density getting closer to 1, total time for both algorithms should be almost the
same even in the case of zero minimal density threshold, as in the worst case for
dense contexts jIj is equal to jGjjM jjBj (though it is an extremely rare case for
real datasets).</p>
        <p>The results for the second set of synthetic contexts con rm that the algorithm
is indeed linear with respect to the number of triples. It also shows that the
signi cant number of triples does not a ect the performance as long as the
context ts in the memory.</p>
        <p>As for the other datasets with large sets of objects, attributes, and conditions
and small ternary relation, the online algorithm signi cantly outperforms the
basic one. The basic version spends much time on enumeration the large number
of combinations of the elements of di erent sets of the context, while the online
one just passes through the existing triples. Time to compute densities is quite
small for these datasets since due to their sparseness they contain small number
of rather small triclusters.</p>
        <p>Finally, as it can be seen, for non-dense contexts the average density of
triclusters is rather high even in the case of zero minimal density threshold.
Because of that, it can be advised in most of the cases to use the online version
of the algorithm without any hard conditions, like minimal density condition, as
the results will still be good, but the performance will be signi cantly improved.
In this paper we have presented an online version of OAC-triclustering algorithm.
We have shown that the algorithm is e cient from both theoretical and practical
points of view. Its linear time complexity and performance in one pass (with an
additional pass for the required post-processing) allows us to use it for big data
problems. Moreover, the online algorithm as well as the basic one can be easily
parallelized to attain even larger e ciency.</p>
        <p>Acknowledgements. The study was implemented in the framework of the
Basic Research Program at the National Research University Higher School of
Economics in 2013-2014, in the Laboratory of Intelligent Systems and Structural
Analysis (Russian Federation), and in the LIMOS (Laboratoire d'Informatique,
de Modelisation et d'Optimisation des Systemes) (France). The rst three
authors were partially supported by Russian Foundation for Basic Research, grant
no. 13-07-00504.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Cerf</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Besson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>K.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boulicaut</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          :
          <article-title>Closed and noise-tolerant patterns in n-ary relations</article-title>
          .
          <source>Data Min. Knowl. Discov</source>
          .
          <volume>26</volume>
          (
          <issue>3</issue>
          ),
          <volume>574</volume>
          {
          <fpage>619</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Davey</surname>
            ,
            <given-names>B.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Priestley</surname>
            ,
            <given-names>H.A.</given-names>
          </string-name>
          :
          <article-title>Introduction to Lattices and Order</article-title>
          . Cambridge University Press,
          <volume>2</volume>
          <fpage>edn</fpage>
          . (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Eren</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deveci</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kucuktunc</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Catalyurek</surname>
          </string-name>
          , Umit V.
          <article-title>: A comparative analysis of biclustering algorithms for gene expression data</article-title>
          .
          <source>Brie ngs in Bioinform</source>
          . (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Ganter</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wille</surname>
          </string-name>
          , R.:
          <source>Formal Concept Analysis: Mathematical Foundations</source>
          . Springer-Verlag New York, Inc., Secaucus, NJ, USA, 1st edn. (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Gnatyshak</surname>
            ,
            <given-names>D.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ignatov</surname>
            ,
            <given-names>D.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuznetsov</surname>
            ,
            <given-names>S.O.</given-names>
          </string-name>
          :
          <article-title>From triadic FCA to triclustering: Experimental comparison of some triclustering algorithms</article-title>
          . In: Ojeda-Aciego,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Outrata</surname>
          </string-name>
          ,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.)
          <source>CLA. CEUR Workshop Proceedings</source>
          , vol.
          <volume>1062</volume>
          , pp.
          <volume>249</volume>
          {
          <fpage>260</fpage>
          .
          <string-name>
            <surname>CEUR-WS.org</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Gnatyshak</surname>
            ,
            <given-names>D.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ignatov</surname>
            ,
            <given-names>D.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Semenov</surname>
            ,
            <given-names>A.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poelmans</surname>
          </string-name>
          , J.:
          <article-title>Gaining insight in social networks with biclustering and triclustering</article-title>
          .
          <source>In: BIR. Lecture Notes in Business Information Processing</source>
          , vol.
          <volume>128</volume>
          , pp.
          <volume>162</volume>
          {
          <fpage>171</fpage>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Ignatov</surname>
            ,
            <given-names>D.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuznetsov</surname>
            ,
            <given-names>S.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poelmans</surname>
          </string-name>
          , J.:
          <article-title>Concept-based biclustering for internet advertisement</article-title>
          .
          <source>In: ICDM Workshops</source>
          . pp.
          <volume>123</volume>
          {
          <fpage>130</fpage>
          . IEEE Computer Society (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ignatov</surname>
            ,
            <given-names>D.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuznetsov</surname>
            ,
            <given-names>S.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poelmans</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhukov</surname>
            ,
            <given-names>L.E.</given-names>
          </string-name>
          : Can triconcepts become triclusters?
          <source>International Journal of General Systems</source>
          <volume>42</volume>
          (
          <issue>6</issue>
          ),
          <volume>572</volume>
          {
          <fpage>593</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Ignatov</surname>
            ,
            <given-names>D.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nenova</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konstantinova</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konstantinov</surname>
            ,
            <given-names>A.V.</given-names>
          </string-name>
          :
          <article-title>Boolean Matrix Factorisation for Collaborative Filtering: An FCA-Based Approach</article-title>
          . In: Agre,
          <string-name>
            <surname>G.</surname>
          </string-name>
          , et al. (eds.)
          <source>AIMSA</source>
          <year>2014</year>
          , Varna, Bulgaria,
          <source>September 11-13</source>
          ,
          <year>2014</year>
          .
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>8722</volume>
          , pp.
          <volume>47</volume>
          {
          <fpage>58</fpage>
          . Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Jelassi</surname>
            ,
            <given-names>M.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yahia</surname>
            ,
            <given-names>S.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nguifo</surname>
            ,
            <given-names>E.M.:</given-names>
          </string-name>
          <article-title>A personalized recommender system based on users' information in folksonomies</article-title>
          . In: Carr,
          <string-name>
            <surname>L.</surname>
          </string-name>
          , et al. (eds.)
          <source>WWW (Companion Volume)</source>
          . pp.
          <volume>1215</volume>
          {
          <fpage>1224</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Jenkins</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>A hash function for hash table lookup (</article-title>
          <year>2006</year>
          ), http://www. burtleburtle.net/bob/hash/doobs.html
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kaytoue</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuznetsov</surname>
            ,
            <given-names>S.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Macko</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Napoli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Biclustering meets triadic concept analysis</article-title>
          .
          <source>Ann. Math. Artif. Intell</source>
          .
          <volume>70</volume>
          (
          <issue>1-2</issue>
          ),
          <volume>55</volume>
          {
          <fpage>79</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kaytoue</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuznetsov</surname>
            ,
            <given-names>S.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Napoli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Duplessis</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Mining gene expression data with pattern structures in formal concept analysis</article-title>
          .
          <source>Inf. Sci</source>
          .
          <volume>181</volume>
          (
          <issue>10</issue>
          ),
          <year>1989</year>
          {
          <year>2001</year>
          (
          <year>2011</year>
          ), http://dx.doi.org/10.1016/j.ins.
          <year>2010</year>
          .
          <volume>07</volume>
          .007
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Leskovec</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rajaraman</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ullman</surname>
          </string-name>
          , J.:
          <article-title>Mining of Massive Datasets, chap</article-title>
          .
          <source>Finding Similar Items</source>
          , pp.
          <volume>71</volume>
          {
          <fpage>128</fpage>
          . Cambridge University Press, England, Cambridge (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tuck</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>An e ective tri-clustering algorithm combining expression data with gene regulation information</article-title>
          .
          <source>Gene regulation and systems biology 3</source>
          , 49{
          <fpage>64</fpage>
          (
          <year>2009</year>
          ), http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2758278/
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Madeira</surname>
            ,
            <given-names>S.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oliveira</surname>
            ,
            <given-names>A.L.</given-names>
          </string-name>
          :
          <article-title>Biclustering algorithms for biological data analysis: A survey</article-title>
          .
          <source>IEEE/ACM Trans. Comput. Biology Bioinform</source>
          .
          <volume>1</volume>
          (
          <issue>1</issue>
          ),
          <volume>24</volume>
          {
          <fpage>45</fpage>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Mirkin</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <source>Mathematical Classi cation and Clustering</source>
          . Kluwer, Dordrecht (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Mirkin</surname>
            ,
            <given-names>B.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kramarenko</surname>
            ,
            <given-names>A.V.</given-names>
          </string-name>
          :
          <article-title>Approximate bicluster and tricluster boxes in the analysis of binary data</article-title>
          . In: Kuznetsov,
          <string-name>
            <surname>S.O.</surname>
          </string-name>
          , et al. (eds.)
          <source>RSFDGrC 2011. Lecture Notes in Computer Science</source>
          , vol.
          <volume>6743</volume>
          , pp.
          <volume>248</volume>
          {
          <fpage>256</fpage>
          . Springer (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Nanopoulos</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rafailidis</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Symeonidis</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manolopoulos</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Musicbox: Personalized music recommendation based on cubic analysis of social tags</article-title>
          .
          <source>IEEE Transactions on Audio, Speech &amp; Language Processing</source>
          <volume>18</volume>
          (
          <issue>2</issue>
          ),
          <volume>407</volume>
          {
          <fpage>412</fpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Wille</surname>
          </string-name>
          , R.:
          <article-title>Restructuring lattice theory: An approach based on hierarchies of concepts</article-title>
          .
          <source>In: Rival, I. (ed.) Ordered Sets, NATO Advanced Study Institutes Series</source>
          , vol.
          <volume>83</volume>
          , pp.
          <volume>445</volume>
          {
          <fpage>470</fpage>
          . Springer Netherlands (
          <year>1982</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaki</surname>
            ,
            <given-names>M.J.:</given-names>
          </string-name>
          <article-title>Tricluster: An e ective algorithm for mining coherent clusters in 3d microarray data</article-title>
          . In: Ozcan, F. (ed.) SIGMOD Conference. pp.
          <volume>694</volume>
          {
          <fpage>705</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>