<!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>Multimodal Clustering of Boolean Tensors on MapReduce: Experiments Revisited</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dmitry I. Ignatov</string-name>
          <email>dignatov@hse.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dmitry Tochilkin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dmitry Egurnov</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>Russian Federation</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper presents further development of distributed multimodal clustering. We introduce a new version of multimodal clustering algorithm for distributed processing in Apache Hadoop on computer clusters. Its implementation allows a user to conduct clustering on data with modality greater than two. We provide time and space complexity of the algorithm and justify its relevance. The algorithm is adapted for MapReduce distributed processing model. The program implemented by means of Apache Hadoop framework is able to perform parallel computing on thousands of nodes.</p>
      </abstract>
      <kwd-group>
        <kwd>Formal Concept Analysis</kwd>
        <kwd>n-ary relations</kwd>
        <kwd>Boolean tensors</kwd>
        <kwd>data mining</kwd>
        <kwd>big data</kwd>
        <kwd>MapReduce</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Mining of multimodal patterns in n-ary relations or Boolean tensors is among
popular topics in Data Mining and Machine Learning [
        <xref ref-type="bibr" rid="ref1 ref10 ref21 ref27 ref28 ref4 ref9">4,1,28,10,21,27,9</xref>
        ]. Thus,
cluster analysis of multimodal data and speci cally of dyadic and triadic relations
is a natural extension of the idea of original clustering. In dyadic case biclustering
methods (the term bicluster was coined in [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]) are used to simultaneously nd
subsets of the sets of objects and attributes that form homogeneous patterns of
the input object-attribute data. In fact, one of the most popular applications
of biclustering is gene expression analysis in Bioinformatics [
        <xref ref-type="bibr" rid="ref2 ref20">20,2</xref>
        ]. Triclustering
methods operate in triadic case where for each object-attribute pair one assigns
a set of some conditions [
        <xref ref-type="bibr" rid="ref12 ref23 ref5">23,12,5</xref>
        ]. Both biclustering and triclustering algorithms
are widely used in such areas as gene expression analysis [
        <xref ref-type="bibr" rid="ref16 ref19 ref33">33,19,16</xref>
        ], recommender
systems [
        <xref ref-type="bibr" rid="ref13 ref14 ref24">24,14,13</xref>
        ], social networks analysis [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], natural language processing [
        <xref ref-type="bibr" rid="ref29">29</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="ref15">15</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 is usually exponential (e.g. in case of formal triconcepts), showing that
      </p>
      <sec id="sec-1-1">
        <title>Copyright c 2019 for this paper by its authors. Copying permitted for private and</title>
        <p>
          academic purposes.
these methods are hardly scalable. To process big data algorithms require at
most linear time complexity (e.g., O(jIj) in case of n-ary relation I) and be
easily parallelisable. In addition, especially in case of data streams [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ], the output
patterns should be the results of one pass over data.
        </p>
        <p>
          Earlier, 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>
          ] and proposed its online version, which has linear time complexity; it
is also one-pass and easily parallelisable [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. However, its parallelisation is
possible in di erent ways. For example, one can use a popular framework for
commodity hardware, Map-Reduce (M/R) [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].In the past, there were several
successful M/R implementations in the FCA community and other lattice-oriented
domains. Thus, in [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], the authors adapted Close-by-One algorithm to M/R
framework and showed its e ciency. At the same year, in [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], an e cient M/R
algorithm for computation of closed cube lattices was proposed. The authors
of [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ] demonstrated that iterative algorithms like Ganter's NextClosure can
bene t from the usage of iterative M/R schemes.
        </p>
        <p>
          Our previous M/R implementation of triclustering method based on prime
operators was proposed in [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ] showing computational bene ts on rather large
datasets. M/R triclustering algorithm [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ] is a successful distributed adaptation
of the online version of prime OAC-triclustering [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. This method uses
MapReduce approach as means for task allocation on computational clusters, launching
the online version of prime OAC-triclustering on each reducer of the rst phase.
However, due to simplicity of this adaptation, the algorithm does not use the
advantages of MapReduce to the full extent. On the rst stage all the input triples
are split into the number of groups equals to the number of reducers by means
of hash-function for entities of one of the types, object, attribute, or condition,
which values are used as keys. It is clear that this way of data allocation cannot
guarantee uniformness in terms of group sizes. The JobTracker used in Apache
Hadoop is able to evenly allocate tasks by nodes 1. To do so, the number of tasks
should be larger than than the number of working nodes, which is not ful lled in
this implementation. For example, let us assume we have 10 reduce SlaveNodes;
respectively, r = 10 and the hash-function is applied to the objects (the rst
element in each input triple). However, due to non-uniformity of hash-function
values by modulo 10, it may happen that the set of objects will result in less
than 10 di erent residuals during division by 10. In this case, the input triples
will be distributed between parts of di erent sizes and processed by only a part
of cluster nodes. Such cases are rather rare; it could be possible only for slicing
by entities (objects, attributes, or conditions) with a small number of di erent
elements. However, they may slow down the cluster work drastically.
        </p>
        <p>The weakest link is the second stage of the algorithm. First of all, during
the rst stage it nds triclusters computed for each data slice separately. Hence,
they are not the nal triclusters; we need to merge the obtained results.</p>
        <p>Let us consider example in Table 1 with the ternary relation on
users-itemslabels. Let us assume that the rst mapper splits data according to their
la1 https://wiki.apache.org/hadoop/JobTracker
bels' component, r = 2, then triples containing label l1 and those related to
label l2 are processed on di erent nodes. After the rst stage completion on
the rst node, we have tricluster (fu2g; fi1; i2g; fl1g) among the others, while
the second node results in tricluster (fu2g; fi1; i2g; fl2g). It is clear that both
triclusters are not complete for the whole input dataset and should be merged
into (fu2g; fi1; i2g; fl1; l2g). The second stage of the algorithm is responsible for
this type of merging. However, as one can see, this merging assumes that all
intermediate data should be located on the same node. In big data setting, this
allocation of all the intermediate results on a single node is a critical point for
application performance.</p>
        <p>To calculate tricluster components (or cumuli, see Section 3) and assemble the
nal triclusters from them, we need to have large data slices on the computational
nodes. Moreover, during parallelisation of the algorithm those data slices can be
required simultaneously on di erent nodes. Thus, to solve these problems one
needs to ful l data centralisation (all the required slices should be present at the
same node simultaneously). However, it leads to accumulation of too large parts
of the data as described. Another approach is to perform data replication. In this
case the total amount of data processed on computational nodes is increased,
while the data are evenly distributed in the system. The latter approach has
been chosen for our updated study on multimodal clustering.</p>
        <p>
          Note that experts aware potential M/R users: \the entire distributed-
lesystem milieu makes sense only when les are very large and are rarely updated
in place" [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. In this work, as in our previous study, we assume that there is a
large bulk of data to process that are not coming online.
        </p>
        <p>The rest of the paper is organised as follows: in Section 2, we recall the
original method and the online version of the algorithm of prime OAC-triclustering.
Section 3 generalise prime OAC-triclustering for the case of multimodal data. In
Section 4, we describe the M/R setting of the problem and the corresponding
M/R version of the original algorithm with important implementation aspects.
Finally, in Section 5 we show the results of several experiments which
demonstrate the e ciency of the M/R version of the algorithm.
2</p>
        <p>
          Prime object-attribute-condition triclustering
Prime object-attribute-condition triclustering method (OAC-prime) based on
Formal Concept Analysis [
          <xref ref-type="bibr" rid="ref3 ref31">31,3</xref>
          ] is an extension for the triadic case of
objectattribute biclustering method [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. Triclusters generated by this method have
similar structure as the corresponding biclusters, namely the cross-like structure
of triples inside the input 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)
where X G, Y M , and Z B.</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,
tricluster extent, tricluster intent, and tricluster modus. The triple (g; m; b) is
called a generating triple of the tricluster T . Figure 1 shows the structure of an
OAC-tricluster (X; Y; Z) based on triple (g; m; eb), triples corresponding to the
e e
gray cells are contained in 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
straightforward (see [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]). First of all, for each combination of elements from each two
sets of K we apply the corresponding prime operator (we 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 contained in the tricluster set (by using hashing) and also
check extra 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 without a minimal density threshold, the
total time complexity is O(jGjjM jjBj + jIj(jGj + jM j + jBj)); in case of a
nonzero minimal density threshold, it is O(jIjjGjjM jjBj). The memory complexity
is O(jIj(jGj + jM j + jBj)), as we need to keep the dictionaries with the prime
sets in memory.</p>
        <p>In online setting, for triples coming from triadic context K = (G; M; B; I),
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 as being di erent
as they have di erent generating triples, even if their respective extents, intents,
and modi are equal. Thus, any other triple can change only one of these two
triclusters, making them di erent.</p>
        <p>To e ciently access prime sets for their processing, the dictionaries
containing the prime sets are implemented as hash-tables.</p>
        <p>The algorithm is straightforward as well (Alg. 1). It takes some set of triples
(J ), the current tricluster set (T ), and the dictionaries containing prime sets
(P rimes) 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). At each iteration the algorithm modi es the corresponding prime sets (lines
2-4).</p>
        <p>Finally, it adds a new tricluster to the tricluster set. 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) which allows to lower the
memory and access costs.</p>
        <p>Algorithm 1 Add function for the online algorithm for prime OAC-triclustering.</p>
      </sec>
      <sec id="sec-1-2">
        <title>Input: J is a set of triples;</title>
        <p>T = fT = ( X; Y; Z)g is a current set of triclusters;</p>
        <p>P rimesOA, P rimesOC, P rimesAC.</p>
        <p>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] [ fbg
3: P rimesOC[g; b] := P rimesOC[g; b] [ fmg
4: P rimesAC[m; b] := P rimesAC[m; b] [ fgg
5: T := T [ f(&amp;P rimesAC[m; b]; &amp;P rimesOC[g; b]; &amp;P rimesOA[g; m])g
6: end for</p>
        <p>The algorithm is one-pass and its time and memory complexities are O(jIj).</p>
        <p>Duplicate elimination and selection patterns by user-speci c constraints are
done as post-processing to avoid patterns' loss. The time complexity of the basic
post-processing is O(jIj) and it does not require any additional memory.</p>
        <p>
          The algorithm can be easily parallelised by splitting the subset of triples J
into several subsets, processing each of them independently, and merging the
resulting sets afterwards. This fact results in our previous MapReduce
implementation [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ].
3
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Multimodal clustering</title>
      <p>
        The direct extension of the prime object-attribute-condition triclustering is
multimodal clustering for higher input relation arities. For the input polyadic context
KN = (A1; A2; : : : ; AN ; I A1 A2 AN ) [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], we introduce the notion
of cumulus for each input tuple i = (e1; e2; : : : ; eN ) 2 I and the corresponding
entity ek, where k 2 f1; : : : ; N g as follows:
      </p>
      <p>cum(i; k) = fe j (e1; e2; : : : ; ek 1; e; ek+1; : : : ; eN ) 2 Ig:
The multimodal cluster generated by the tuple i 2 I is de ned as follows:
((cum(i; 1); : : : ; cum(i; N )):</p>
      <p>Those cumuli operators are similar to primes for pairs (or tuples) of sets
Eq. 1:</p>
      <p>cum(i; k) = (fe1g; fe2g; : : : ; fek 1g; fek+1g; : : : ; feN g)0:</p>
      <p>However, here, they are applied to the tuples of input relation rather than
to pairs (tuples) of sets.</p>
      <p>In a certain sense, cumuli accumulate all the elements of a xed type that
are related by I.</p>
      <p>
        As its triadic version, multimodal clustering is not greater than the number
of tuples in the input relation, whereas the complete set of polyadic concepts
may be exponential w.r.t. the input size [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
4
4.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>Map-reduce-based multimodal clustering</title>
      <p>Map-reduce decomposition
We follow three stage approach here. On each stage, we sequentially run the
map and reduce procedures: First map ! First reduce ! Second map ! Second
reduce ! Third map ! Third reduce. Each map/reduce procedure of a certain
stage is executed in parallel on all the available nodes/clusters. The way in tasks
are distributed among the nodes/clusters depends on the concrete MapReduce
technology implementation (in our case, Apache Hadoop). Below, we describe
data ow between computational nodes and their processing.</p>
      <p>1) The rst map (Algorithm 2) takes a set of input tuples. Each
tuple (e1; e2; : : : ; eN ) is transformed into N key-value pairs: h(e2; : : : ; eN ); e1i,
he1; e3; : : : ; eN ); e2i, : : : ; h(e1; e2; : : : ; eN 1); eN i. The resulting pairs are passed
to the further step.</p>
      <p>2) The rst reduce (Algorithm 3) receives all the accumulated values of
each key. Thus, for each (e1; : : : ; eN ) 2 I and the context entity type
Algorithm 2 Distributed Multimodal clustering: First Map</p>
      <sec id="sec-3-1">
        <title>Input: I is a set of tuples of length N each</title>
        <p>Output: hsubrelation; entityi pairs.
1: for all (e1; e2; : : : ; eN ) 2 I do
2: for all k 2 f1; : : : ; N g do
3: subrelation := (e1; : : : ; ek 1; ek+1; : : : ; eN )
4: emit hsubrelation; eki
5: end for
6: end for
k 2 f1; 2; : : : ; N g, we compute the cumulus (e1; : : : ; ek 1; ek+1; : : : ; eN )0.
The values are passed to the next MapReduce stage with the key
(e1; : : : ; ek 1; ek+1; : : : ; eN ).</p>
        <p>Algorithm 3 Distributed Multimodal clustering: First Reduce
Input: key-value pairs hsubrelation; entities fe1k; : : : ; ekLgi
Output: hsubrelation; cumulusi
1: cumulus:=fg
2: for all ek 2 fe1k; : : : ; ekLg do
3: cumulus := cumulus [ fekg
4: emit hsubrelation; cumulusi
5: end for</p>
        <p>3) Second map (Algorithm 4). All the received keys are transformed into the
original relations and passed to the second reduce procedure with unchanged
values.</p>
        <p>Algorithm 4 Distributed Multimodal clustering: Second Map
Input: hsubrelation; cumulusi, where subrelation = (e1; : : : ; ek 1; ek+1; : : : ; eN )
Output: hgenerating relation; cumulusi pairs.
1: for all ek 2 cumulus do
2: generating relation := (e1; : : : ; ek 1; ek; ek+1; : : : ; eN )
3: emit hgenerating relation; cumulusi
4: end for</p>
        <p>4) Second reduce (Algorithm 5). All the cumuli obtained for each input tuple
of the original relation I are reduced to a single set. On this stage, we obtain
all the original tuples and generated multimodal clusters. These clusters are
presented as tuples of cumuli for respective entity types. All the obtained pairs
hgenerating relation; multimodal clusteri are passed to the next stage.</p>
        <p>5) Third map (Algorithm 6). The task of the third mapreduce stage is
duplicate elimination and ltration by density threshold. It is bene cial to
im</p>
        <p>Algorithm 5 Distributed Multimodal clustering: Second Reduce
Input: hgenerating relation; cumuli fA1; A2; ; AN gi
Output: hgenerating relation; multimodal clusteri pairs
1: multimodal cluster := (A1; A2; ; AN )
2: emit hgenerating relation; multimodal clusteri
plement within the reduce step, but to do so each obtained key-value pair
hgenerating relation; multimodal clusteri should be passed further as follows
hmultimodal cluster; generating relationi.</p>
        <p>Algorithm 6 Distributed Multimodal clustering: Third Map
Input: hgenerating relation; multimodal clusteri
1: emit hmultimodal cluster; generating relationi</p>
        <p>6) Third reduce (Algorithm 7). For each input multimodal cluster and its
generating tuples it is possible to directly compute density. All the unique
clusters will be stored.</p>
        <p>Algorithm 7 Distributed Multimodal clustering: Third Reduce
Input: hmultimodal cluster; generating relations fr1; r2 : : : ; rM gi
1: if vol( mjfur1lt;irm2:o:d:a;lrMclugsjter) then
2: store hmultimodal clusteri
3: end if</p>
        <p>The time and memory complexities are provided assuming that the worst case
scenario corresponds to the absolutely dense cuboid, i.e. polyadic context KN =
(A1; A2; : : : ; AN ; A1 A2 AN ). Thus, after careful analysis, the
worstcase time complexity of the proposed three stage algorithm is O(jIj PjN=1 jAj j).
Not surprisingly it has the same worst-case memory complexity, since the stored
and passed maximal number of multimodal clusters is jIj, and the size of each
of them is not greater PN</p>
        <p>j=1 jAj j. However, from implementation point of view,
since HDFS has default replication factor 3, those data elements are copied thrice
to ful l fault-tolerance.
4.2</p>
        <p>Implementation aspects and used technologies
The application2 has been implemented in Java and as distributed computation
framework we use Apache Hadoop3.
2 https://github.com/kostarion/multimodal-clustering-hadoop
3 http://hadoop.apache.org/</p>
        <p>We have used many other technologies: Apache Maven (framework for
automatic project assembling), Apache Commons (for work with extended Java
collections), Jackson JSON (open-source library for transformation of
objectoriented representation of an object like tricluster to string), TypeTools (for
real-time type resolution of inbound and outbound key-value pairs), etc.</p>
        <p>To provide the reader with basic information on the most important classes
for M/R implementation, let us shortly describe them below.</p>
        <p>Entity. This is a basic abstraction for an element of a certain type. Each entity
is de ned by its type index from 0 to n-1, where n is the arity of the input
formal context. An entity value is a string that need to be kept during the
program execution. This class inherit Writable interface for storing its objects
in temporary and permanent Hadoop les. This is a mandatory requirement for
all classes that pass or take their objects as keys and values of map and reduce
methods.</p>
        <p>Tuple. This class implements a representation of relation. Each object of the class
Tuple contains the list of objects of Entity class and arity of its data given by its
numeric value. This class implements interface WritableComparable&lt;Tuple&gt; to
make it possible to use an object class Tuple as a key. The interface is similar
to Writable, however one need to de ne comparison function to use in the key
sorting phase.</p>
        <p>Cumulus. This is an abstraction of cumulus, introduced earlier. It contains the
list of string values and the index of respective entity. It also implements the
following interfaces: WritableComparable&lt;Cumulus&gt; for using cumulus as a
key and Iterable&lt;String&gt; for iteration by its values.</p>
        <p>FormalConcept. This is an abstraction of both formal concepts and multimodal
clusters, it contains the list of cumuli and implements interface Writable.</p>
        <p>The process-like M/R classes are summarised below.</p>
        <p>FirstMapper, SecondMapper, ThirdMapper. These are the classes that extend
class Mapper&lt;&gt; of the Hadoop MapReduce library by respective mapping
function from Subsection 4.1.</p>
        <p>FirstReducer, SecondReducer, ThirdReducer. These classes extend class
Reducer&lt;&gt; of the Hadoop MapReduce library for ful lling Algorithms 2,4,6.
TextCumulusInputFormat, TextCumulusOutputFormat. These classes implement
reading and writing for objects of Cumulus class; they also inherit RecordReader
and RecordWriter interfaces, respectively. They are required to exchange results
between di erent MapReduce phases within one MapReduce program.
JobCon gurator. This is the class for setting con guration of a single MapReduce
stage. It de nes the classes of input/output/intermediate keys and values of the
mapper and reducer as well as formats of an input and output data.
App. This class is responsible for launching the application and chaining of M/R
stages.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Experiments</title>
      <p>Two series of experiments have been conducted in order to test the application
on the synthetic contexts and real world datasets with moderate and large
number of triples in each. In each experiment both versions of the OAC-triclustering
algorithm have been used to extract triclusters from a given context. Only online
and M/R versions of OAC-triclustering algorithm have managed to result
patterns for large contexts since the computation time of the compared algorithms
was too high (&gt;3000 s). To evaluate the runtime more carefully, for each context
the average result of 5 runs of the algorithms has been recorded.
5.1</p>
      <p>Datasets
Synthetic datasets. The following synthetic dataset were generated.
The dense context K1 = (G; M; B; I), where G = M = B = f1; : : : ; 60g and
I = G M B n f(g; m; b) 2 I j g = m = bg. In total, 603 - 60 =215,940 triples.
The context of three non-overlapped cuboids K2 = (G1 t G2 t G3; M1 t M2 t
M3; B1 tB2 tB3; I), where I = (G1 M1 B1)[(G2 M2 B2)[(G3 M3 B3).
In total, 3 503 = 375; 000 triples.</p>
      <p>The context K3 = (A1; A2; A3; A4; A B C D) is a dense fourth dimensional
cuboid with jA1j = jA2j = jA3j = jA4j = 30 containing 304 = 810; 000 triples.</p>
      <p>These tests have sense since in M/R setting due to the tuples can be
(partially) repeated, e.g., because of M/R task failures on some nodes (i.e. restarting
processing of some key-value pairs). Even though the third dataset does not
result in 3min(jA1j;jA2j;jA3j;jA4j) formal triconcepts, the worst case for formal
triconcepts generation in terms of the number of patterns, this is an example of the
worst case scenario for the reducers since the input has its maximal size w.r.t.
to the size of Ai-s and the number of duplicates. In fact, our algorithm should
correctly assemble the only one tricluster (A1; A2; A3; A4) and it actually does.
IMDB. This dataset consists of Top-250 list of the Internet Movie Database (250
best movies based on user reviews).</p>
      <p>The following triadic context is composed: the set of objects consists of movie
names, the set of attributes (tags), the set of conditions (genres), and each triple
of the ternary relation means that the given movie has the given genre and is
assigned the given tag. In total, there are 3,818 triples.</p>
      <p>
        Movielens. The dataset contains 1,000,000 tuples that relate 6,040 users, 3,952
movies, ratings, and timestamps, where ratings are made on a 5-star scale [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
Bibsonomy. Finally, a sample of the data of bibsonomy.org from ECML PKDD
discovery challenge 2008 has been used.
      </p>
      <p>This website allows users to share bookmarks and lists of literature and tag
them. For the tests the following triadic context has been prepared: 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>Table 2 contains the summary of IMDB and Bibsonomy contexts.
The experiments has been conducted on the computer Intel R Core(TM)
i52450M CPU @ 2.50GHz, 4Gb RAM (a typical commodity hardware) in the
emulation mode, when Hadoop cluster contains only one node and operates
locally and sequentially. By time execution results one can estimate the
performance in a real distributed environment assuming that each node workload is
(roughly) the same.</p>
      <sec id="sec-4-1">
        <title>Results, ms IMDB MovieLens100k</title>
      </sec>
      <sec id="sec-4-2">
        <title>Online OAC prime clustering 368 16,298</title>
      </sec>
      <sec id="sec-4-3">
        <title>MapReduce multimodal clustering 7,124 14,582</title>
        <p>In Tables 3 and 4 we summarise the results of performed tests. It is clear
that on average our application has fewer execution time than its competitor,
the online version of OAC-triclustering. If we compare the implemented
program with its original online version, the results are worse for not that big and
sparse dataset as IMDB. It is the consequence of the fact that the application
architecture aimed at processing of large amounts of data; in particular, it is
implemented in three stages with time consuming communication. Launching
and stopping Apache Hadoop, data writing and passing between Map and
Reduce steps in both stages requires substantial time, that is why for not that
1;200
1;000</p>
        <p>800
s
,
e 600
m
i
T
400
200</p>
      </sec>
      <sec id="sec-4-4">
        <title>Online OAC prime clustering</title>
      </sec>
      <sec id="sec-4-5">
        <title>MapReduce multimodal clustering 0 I M100K</title>
        <p>K1
K2
K3
M</p>
      </sec>
      <sec id="sec-4-6">
        <title>Dataset</title>
        <p>Fig. 2. Performance curves for six datasets: I stands for IMDB dataset with 3,818
triples, M100K { MovieLens dataset with 100K tuples, M { MovieLens dataset with
1M tuples
106
big datasets, when execution time is comparable with time for infrastructure
management, time performance is not perfect. However, with data size increase
the relative performance is growing up to ve-six times (see Fig. 2). Thus, the
last test for BibSonomy data has been successfully passed, but the competitor
was not able to nish it within one hour. As for the M/R stages, the most
time-consuming phases are 2nd and 3rd stages.
6</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>
        In this paper we have presented a map-reduce version of multimodal clustering
algorithm, which extends triclustering approaches and copes with bottlenecks
of the earlier M/R triclustering version [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ]. We have shown that the proposed
algorithm is e cient from both theoretical and practical points of view. This is
a variant of map-reduce based algorithm where the reducer exploits composite
keys directly (see also Appendix section [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ]). However, in despite the step
towards Big Data technologies, a proper comparison of the proposed multimodal
clustering and noise tolerant patterns in n-ary relations by DataPeeler and its
descendants [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is not yet conducted (including MapReduce setting).
Acknowledgements. The study was implemented in the framework of the
Basic Research Program at the National Research University Higher School of
Economics, in the Laboratory of Intelligent Systems and Structural Analysis
(Sections 2 and 5), and funded by the Russian Academic Excellence Project
'5-100'. The rst author was also supported by Russian Scienti c Foundation
(Section 1, 3, and 4) under grant 17-11-01294. The authors would like to thank
anonymous reviewers as well as Yuri Kudriavtsev from PM-Square and Dominik
Slezak from Infobright and Warsaw University for their encouragement given to
our studies of M/R technologies.
      </p>
    </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>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="ref3">
        <mixed-citation>
          3.
          <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="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Georgii</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tsuda</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , Scholkopf, B.:
          <article-title>Multi-way set enumeration in weight tensors</article-title>
          .
          <source>Machine Learning</source>
          <volume>82</volume>
          (
          <issue>2</issue>
          ),
          <volume>123</volume>
          {
          <fpage>155</fpage>
          (
          <year>2011</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>
          .
          <source>In: CLA</source>
          . pp.
          <volume>249</volume>
          {
          <issue>260</issue>
          (
          <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>Kuznetsov</surname>
            ,
            <given-names>S.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nourine</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>A one-pass triclustering approach: Is there any room for big data?</article-title>
          <source>In: CLA</source>
          <year>2014</year>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <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="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Harper</surname>
            ,
            <given-names>F.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konstan</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          :
          <article-title>The movielens datasets: History and context</article-title>
          .
          <source>TiiS</source>
          <volume>5</volume>
          (
          <issue>4</issue>
          ),
          <volume>19</volume>
          :1{
          <fpage>19</fpage>
          :
          <fpage>19</fpage>
          (
          <year>2016</year>
          ). https://doi.org/10.1145/2827872, https://doi.org/10. 1145/2827872
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Henriques</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Madeira</surname>
            ,
            <given-names>S.C.</given-names>
          </string-name>
          :
          <article-title>Triclustering algorithms for three-dimensional data analysis: A comprehensive survey</article-title>
          .
          <source>ACM Comput. Surv</source>
          .
          <volume>51</volume>
          (
          <issue>5</issue>
          ),
          <volume>95</volume>
          :1{
          <fpage>95</fpage>
          :43 (Sep
          <year>2018</year>
          ). https://doi.org/10.1145/3195833, http://doi.acm.
          <source>org/10.1145/3195833</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Ignatov</surname>
            ,
            <given-names>D.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gnatyshak</surname>
            ,
            <given-names>D.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuznetsov</surname>
            ,
            <given-names>S.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mirkin</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Triadic formal concept analysis and triclustering: searching for optimal patterns</article-title>
          .
          <source>Machine Learning</source>
          pp.
          <volume>1</volume>
          {
          <issue>32</issue>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <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="ref12">
        <mixed-citation>
          12.
          <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="ref13">
        <mixed-citation>
          13.
          <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: AIMSA 2014, Varna, Bulgaria, Proceedings. vol.
          <source>LNCS 8722</source>
          , pp.
          <volume>47</volume>
          {
          <issue>58</issue>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <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="ref15">
        <mixed-citation>
          15.
          <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="ref16">
        <mixed-citation>
          16.
          <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>
          ). https://doi.org/10.1016/j.ins.
          <year>2010</year>
          .
          <volume>07</volume>
          .007, http://dx.doi.org/ 10.1016/j.ins.
          <year>2010</year>
          .
          <volume>07</volume>
          .007
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Krajca</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vychodil</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Distributed algorithm for computing formal concepts using map-reduce framework</article-title>
          . In: N.
          <string-name>
            <surname>Adams</surname>
          </string-name>
          et al. (Eds.):
          <article-title>IDA 2009</article-title>
          . vol.
          <source>LNCS 5772</source>
          , pp.
          <volume>333</volume>
          {
          <issue>344</issue>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Kuznecov</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kudryavcev</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Applying map-reduce paradigm for parallel closed cube computation</article-title>
          .
          <source>In: 1st Int. Conf. on Advances in Databases, Knowledge, and Data Applications</source>
          ,
          <string-name>
            <surname>DBKDS</surname>
          </string-name>
          <year>2009</year>
          . pp.
          <volume>62</volume>
          {
          <issue>67</issue>
          (
          <year>2009</year>
          ). https://doi.org/10.1109/DBKDA.
          <year>2009</year>
          .
          <volume>32</volume>
          , http://dx.doi.org/10.1109/DBKDA.
          <year>2009</year>
          .32
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <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 regul. and syst. biol. 3</source>
          ,
          <issue>49</issue>
          {
          <fpage>64</fpage>
          (
          <year>2009</year>
          ), http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2758278/
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <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="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Metzler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miettinen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Clustering boolean tensors</article-title>
          .
          <source>Data Min. Knowl. Discov</source>
          .
          <volume>29</volume>
          (
          <issue>5</issue>
          ),
          <volume>1343</volume>
          {
          <fpage>1373</fpage>
          (
          <year>2015</year>
          ). https://doi.org/10.1007/s10618-015-0420-3, https: //doi.org/10.1007/s10618-015-0420-3
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <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="ref23">
        <mixed-citation>
          23.
          <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="ref24">
        <mixed-citation>
          24.
          <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="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Rajaraman</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leskovec</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ullman</surname>
            ,
            <given-names>J.D.</given-names>
          </string-name>
          :
          <article-title>Mining of Massive Datasets, chap</article-title>
          .
          <source>MapReduce and the New Software Stack</source>
          , pp.
          <volume>19</volume>
          {
          <fpage>70</fpage>
          . Cambridge University Press, England, Cambridge (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Schweikardt</surname>
          </string-name>
          , N.:
          <article-title>One-pass algorithm</article-title>
          .
          <source>In: Encyclopedia of Database Systems, Second Edition</source>
          (
          <year>2018</year>
          ). https://doi.org/10.1007/978-1-
          <fpage>4614</fpage>
          -8265-9 253, https://doi. org/10.1007/978-1-
          <fpage>4614</fpage>
          -8265-9_
          <fpage>253</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hooi</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Faloutsos</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Fast, accurate, and exible algorithms for dense subtensor mining</article-title>
          .
          <source>TKDD</source>
          <volume>12</volume>
          (
          <issue>3</issue>
          ),
          <volume>28</volume>
          :1{
          <fpage>28</fpage>
          :
          <fpage>30</fpage>
          (
          <year>2018</year>
          ). https://doi.org/10.1145/3154414, https://doi.org/10.1145/3154414
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Spyropoulou</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Bie</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Interesting pattern mining in multirelational data</article-title>
          .
          <source>Data Mining and Knowledge Discovery</source>
          <volume>28</volume>
          (
          <issue>3</issue>
          ),
          <volume>808</volume>
          {
          <fpage>849</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Ustalov</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Panchenko</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kutuzov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Biemann</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ponzetto</surname>
            ,
            <given-names>S.P.</given-names>
          </string-name>
          :
          <article-title>Unsupervised semantic frame induction using triclustering</article-title>
          . In: Gurevych,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Miyao</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y</surname>
          </string-name>
          . (eds.)
          <article-title>Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics</article-title>
          ,
          <string-name>
            <surname>ACL</surname>
          </string-name>
          <year>2018</year>
          , Melbourne, Australia,
          <source>July 15-20</source>
          ,
          <year>2018</year>
          , Volume
          <volume>2</volume>
          :
          <string-name>
            <given-names>Short</given-names>
            <surname>Papers</surname>
          </string-name>
          . pp.
          <volume>55</volume>
          {
          <fpage>62</fpage>
          .
          <article-title>Association for Computational Linguistics (</article-title>
          <year>2018</year>
          ), https://aclanthology.info/papers/P18-2010/p18-
          <fpage>2010</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Voutsadakis</surname>
          </string-name>
          , G.:
          <article-title>Polyadic concept analysis</article-title>
          .
          <source>Order</source>
          <volume>19</volume>
          (
          <issue>3</issue>
          ),
          <volume>295</volume>
          {
          <fpage>304</fpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <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="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de</surname>
            <given-names>Frein</given-names>
          </string-name>
          , R.,
          <string-name>
            <surname>Robson</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Foghlu</surname>
            ,
            <given-names>M.O.</given-names>
          </string-name>
          :
          <article-title>Distributed formal concept analysis algorithms based on an iterative mapreduce framework</article-title>
          . In: Domenach,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Ignatov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Poelmans</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. (eds.) ICFCA</surname>
          </string-name>
          <year>2012</year>
          . vol.
          <source>LNAI 7278</source>
          , pp.
          <volume>292</volume>
          {
          <issue>308</issue>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <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>
          .
          <source>In: SIGMOD 2005 Conference</source>
          . pp.
          <volume>694</volume>
          {
          <issue>705</issue>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Zudin</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <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>
          :
          <article-title>Putting oac-triclustering on mapreduce</article-title>
          . In: Yahia,
          <string-name>
            <given-names>S.B.</given-names>
            ,
            <surname>Konecny</surname>
          </string-name>
          ,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.)
          <source>Proceedings of the Twelfth International Conference on Concept Lattices and Their Applications</source>
          , Clermont-Ferrand, France,
          <source>October 13-16</source>
          ,
          <year>2015</year>
          .
          <source>CEUR Workshop Proceedings</source>
          , vol.
          <volume>1466</volume>
          , pp.
          <volume>47</volume>
          {
          <fpage>58</fpage>
          . CEURWS.org (
          <year>2015</year>
          ), http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1466</volume>
          /paper04.pdf
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>