<!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>
      <journal-title-group>
        <journal-title>Italian Symposium on Advanced Database Systems, June</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Progressive Entity Resolution with Node Embeddings</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Giovanni Simonini</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luca Gagliardelli</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michele Rinaldi</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luca Zecchini</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giulio De Sabbata</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adeel Aslam</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Domenico Beneventano</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sonia Bergamaschi</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Università degli Studi di Modena e Reggio Emilia</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Modena</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Italy &lt;name.surname&gt;@unimore.it</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>@studenti.unimore.it</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2022</year>
      </pub-date>
      <volume>1</volume>
      <fpage>9</fpage>
      <lpage>22</lpage>
      <abstract>
        <p>Entity Resolution (ER) is the task of finding records that refer to the same real-world entity, which are called matches. ER is a fundamental pre-processing step when dealing with dirty and/or heterogeneous datasets; however, it can be very time-consuming when employing complex machine learning models to detect matches, as state-of-the-art ER methods do. Thus, when time is a critical component and having a partial ER result is better than having no result at all, progressive ER methods are employed to try to maximize the number of detected matches as a function of time. In this paper, we study how to perform progressive ER by exploiting graph embeddings. The basic idea is to represent candidate matches in a graph: each node is a record and each edge is a possible comparison to check-we build that on top of a well-known, established graph-based ER framework. We experimentally show that our method performs better than existing state-of-the-art progressive ER methods on real-world benchmark datasets.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Entity Resolution</kwd>
        <kwd>Pay-as-you-go</kwd>
        <kwd>Data Cleaning</kwd>
        <kwd>Graph Embedding</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Entity Resolution (ER) is the task of identifying records (a.k.a. profiles) that refer to the same
real-world entity in datasets [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. It is a fundamental task for preparing dirty data to avoid
duplicates, which lead to inconsistencies and may compromise the downstream analysis [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. It
is also the only viable way to join tables in the absence of foreign/primary key constraints.
      </p>
      <p>The naïve solution of comparing each and every pair of records to determine whether they
belong to the same entity (i.e., they match) has a quadratic complexity; hence, it is impractical
with large datasets. To mitigate this problem, blocking is typically employed to partition the
considered data into blocks and to perform the all-pairs comparison only within each block.
Blocking is usually achieved by extracting from each record one or more blocking keys that are
used to index that record into specific blocks. For instance, given a dataset with client contacts,
a simple blocking strategy could be to index together records that share some attribute values,
such as the client name or the phone number.</p>
      <p>Yet, a client may use a nickname (e.g., William/Bill) and have multiple phone numbers (e.g.,
home/work). Thus, to define efective blocking key extraction strategies that discard many
e1 CMaotdeeglo:rAyp:pSlmeaiPrthpohnoenXe e4 tdyepsec:r.S: asmmsaurtnpgho2n0e
e2 gmrooduepl::sSmaamrstpuhnognSe20 e5 sHmuaawrtpeihPon2e0
e3 tnyapme:e:smiPahrotnpeho1n0e
producer: Apple</p>
      <p>
        e6 fSoaldmasbulengphFoonlde
(a)
superfluous comparisons while correctly indexing together matching records is a hard task.
This task becomes even harder when considering heterogeneous datasets, since aligning the
attributes can be prohibitive when dealing with Web data or data lakes. In such a scenario, the
state-of-the-art solution is to employ meta-blocking [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ].
      </p>
      <p>The basic idea of meta-blocking is to extract schema-agnostic blocking keys (i.e., by
considering the record as a unique, concatenated snippet of text, discarding its schema) and then to
restructure the yielded blocks to improve the eficiency. The former step allows to deal with
schema heterogeneity and to achieve a high level of recall. For instance, by employing Token
Blocking, each token appearing in a record (regardless of the attribute in which it appears) is
used as a blocking key. Thus, on one hand, there is no need to perform schema alignment
beforehand if the data is messy (e.g., in an e-commerce dataset, sony appears in the Brand
attribute in a record and in the Title attribute in another one); on the other hand, the number of
generated blocking keys (hence comparisons) can be very high, slowing the process and yielding
low precision. To increase precision, in the meta-blocking step, the blocks are restructured
by representing them in the following way: each record is represented as a node in a graph,
called blocking graph; an edge is present between two nodes if the two corresponding records
appear together in at least one block (i.e., they share at least one blocking key); each edge is
weighted according to the number and the characteristics (e.g., the size) of the blocks that the
two adjacent nodes share; finally, a graph-pruning algorithm is applied and the remaining edges
represent the final candidate pairs of matching records.</p>
      <p>Figure 1a reports an example of a record collection gathered from diferent data sources.
The schema of each record may be diferent from the others—a common trait of data collected
from the Web. Token Blocking is applied to the record collection: each token in the record is a
blocking key, which means that the record is indexed in a block with all the records in which
that token appears. Without performing schema alignment, the only viable way is to consider
each blocking key (i.e., token) regardless of the attribute in which it appears.</p>
      <p>The result is the blocking collection of Figure 1b. On one hand, in these blocks, all records are
indexed together in at least one block—in other words, all matching pairs will be checked. On
the other hand, many comparisons are superfluous, since this strategy does not filter many pairs;
further, many pairs appear multiple times across the blocks (for records that share multiple
tokens). At the end of the day, the high capability of such a schema-agnostic blocking strategy
to find all matching pairs is traded for a higher number of comparisons to perform, which is a
burden for the ER process.</p>
      <p>A solution is to employ meta-blocking. All the records of Figure 1b are represented as nodes
in a graph and the edges of the graph are weighted accordingly to the co-occurrences in the
blocks of their adjacent nodes (Figure 1c). This blocking graph is processed with graph pruning
algorithms to retain only promising edges (i.e., comparisons). Figure 1d reports as an example
the output of a pruning algorithm that takes as a threshold for each node the average of the
weights of its edges, then applies that local threshold to each node neighborhood.</p>
      <p>Such an approach has two main advantages: the first is that all redundant comparisons are
inherently removed (we can have only one edge between two nodes); the second is that shifting
to a graph representation (from blocks) allows to implement progressive strategies (as explained
below) and exploit the findings of the research community about graph embedding, which is
explored in this work.</p>
      <p>
        Progressive Entity Resolution with Meta-blocking. Meta-blocking was designed to support
batch ER [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], i.e., to generate a set of candidate pairs that are evaluated in batch, without a
specific order. Thus, meta-blocking per se is not designed to maximize the emission of
likely-tomatch pairs of records, but in our previous work [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] we demonstrated how to exploit a blocking
graph to perform ER progressively.
      </p>
      <p>In particular, the best performing method is Progressive Profile Scheduling , denoted as PPS.
The basic idea of PPS is to store all top-1 comparisons per node in the blocking graph in a heap
data structure. Then, PPS attractively emits the comparisons until the heap is empty. While
populating the main heap of comparisons mentioned above, PPS also maintains an auxiliary
heap where it inserts all the nodes of the graph, weighted accordingly to an aggregate measure
of their adjacent edges. For instance, a node has a weight equal to the average of the weights
of its adjacent edges in the blocking graph. This auxiliary heap is employed to attractively
retrieve at a time the node that is most likely to have a match. Then, while the primary heap
emits comparisons, a parallel process can generate new comparisons from the current node
extracted from the auxiliary heap and fill the primary one. In this way, the memory footprint of
the algorithm is (), where  is the number of records.</p>
      <p>
        Our Contribution. Our intuition is to represent each node of the blocking graph as an
embedding by exploiting recent advances in the field [
        <xref ref-type="bibr" rid="ref7 ref8 ref9">7, 8, 9</xref>
        ]. By doing so, each node is
represented through a vector that embeds its characteristics taking into account both the
structure of the sub-graph in which it appears and the weights of the edges of that sub-graph.
Thus, more information can be exploited to select the right candidates compared to the traditional
methods based on the blocking graph, which only consider a node and its adjacent edges at a
time—analyzing sub-graphs would be too expensive.
      </p>
      <p>In Section 2, we provide the notation, the definition of the problem, and the basic concepts
behind graph embedding, which are employed to present our method in Section 3. The
experimental demonstration of the eficacy of our method is reported in Section 4, which shows
how our method outperforms the state-of-the-art graph-based PPS method. Further related
work and conclusions (which also introduce future directions for this research) are presented in
Sections 5 and 6, respectively.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <p>
        In a dirty dataset , two records that refer to the same real-world entity are defined as matching
records; we denote this with  ≡  . As other state-of-the-art ER frameworks [
        <xref ref-type="bibr" rid="ref10 ref11 ref3">3, 10, 11</xref>
        ], we
rely on blocking for scaling pairwise matching, which is the actual task to determine whether
two records are matching or not.
      </p>
      <p>In the first phase, blocking is applied and a set ℬ of possibly overlapping clusters of records
(called blocks) is generated. All the pairs of records appearing within a block are candidate
matches, denoted with ⟨,  ⟩.</p>
      <p>
        In the second phase, a binary matching function is applied to all candidate pairs entailed
by ℬ: the matching function  :  ×  → { true, false} takes as input two records and
returns true in case they match, false otherwise. The matching function can be a trained
machine/deep learning model [
        <xref ref-type="bibr" rid="ref10 ref11 ref12">10, 11, 12</xref>
        ], a manually-designed function [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], or a human oracle
in a crowdsourcing setup [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. The output of this phase is a set of matching pairs, which are
clustered to avoid ambiguities (e.g., by applying a transitive clustering)—each cluster of matches
represents an entity in the real world.
      </p>
      <sec id="sec-2-1">
        <title>2.1. Graph-based Meta-blocking</title>
        <p>
          In graph-based meta-blocking (meta-blocking for simplicity), a collection of blocks ℬ is
represented by a weighted graph ℬ{ℬ, ℬ, ℬ} called blocking graph.  is the set of nodes
representing all records  ∈ . An edge between two records exists if they appear together in at
least one block; thus,  = { : ∃,  ∈  | |ℬ | &gt; 0} is the set of edges, with ℬ = ℬ ∩ ℬ ,
where ℬ and ℬ are the sets of blocks containing  and  respectively. ℬ is the set of edge
weights. Meta-blocking tries to capture the matching likelihood of two records in the weight of
the edge that connects them. For instance, Block Co-occurrence Frequency (CBS) [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] assigns to
the edge between two records  and  a weight equal to the number of blocks they share, i.e.,
 = |ℬ ∩ ℬ|.
        </p>
        <p>Then, in order to keep only the most promising edges, we can apply suitable edge-pruning
strategies. In this way, after this pruning step, each connected pair of nodes forms a new block
of the restructured blocking collection.</p>
        <p>Meta-blocking can operate by keeping all the candidate comparisons that are weighted
above a certain threshold or in a top-k fashion. We call the first case Weighted Pruning, while
Cardinality Pruning the latter. The weight threshold, or the  for the top-k approach, can be
defined at local level (i.e., for each record/node in the graph) or at global level (i.e., for all the
edges in the graph). Hence, the combination of those strategies yields the following pruning
strategies: (i) Weighted Edge Pruning, where edges with a weight lower than the given threshold
are pruned; (ii) Cardinality Edge Pruning, where edges are sorted in descending order with
respect to their weights, and then only the first  are kept; (iii) Weighted Node Pruning, which
considers in turn each node  and its adjacent edges, and edges with a weight lower than the
given threshold are pruned; (iv) Cardinality Node Pruning, which similarly to the previous one
is node-centric, but where a cardinality threshold  is used instead of a weight threshold.</p>
        <p>
          Finally, the state-of-the-art progressive ER method based on the blocking graph [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], instead
of applying pruning, tries to prioritize the edges according to their weight—i.e., to prioritize the
comparisons in order to maximize the recall as a function of the number of comparisons.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Progressive Meta-blocking with Node Embeddings</title>
      <p>A limitation of the existing blocking-graph-based methods is that for each comparison likelihood
is estimated by analyzing only the two adjacent nodes that its corresponding edge connects.
Thus, for instance, if a set of nodes is part of a clique, this information is not captured just by
looking at two nodes at a time. Generally, graph patterns that involve more than two nodes are
not captured. Our intuition is that such an information could be exploited. Yet, we do not want
to count triangles, cliques of unknown size, etc. The main reasons are the following: firstly, it
would be computationally expensive; secondly, we do not know which structure could be useful;
ifnally, it would be dificult to take into account all information—e.g., should we count the
cliques? Should we assign weights to them? Should we also give importance to quasi-cliques?</p>
      <p>
        An efective solution is to exploit node embeddings [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. This allows to bypass the detection
of such graph patterns thanks to techniques that capture latent information about the graph
structure and assign a set of weights to each node according to that information.
      </p>
      <p>
        The basic idea is to measure somehow the similarity between two nodes in the network and
compare it to the similarity in a vector space (the embedding space). In particular, we focus
on unsupervised approaches based on random walks. These methods use a walk approach to
generate (sample) network neighborhoods for nodes. For every node, they generate its network
neighborhood by choosing in some way (e.g., randomly following the edges) the next node of
the walk, until a certain number of steps (the walk sampling) is reached. This iterative process
associates nodes that appear in a path together since they are considered more similar. Then,
to compute the representative vector embeddings, the nodes and their co-occurrences in the
random paths are given as an input to a shallow two-layers neural network, which extracts the
vector embedding for each node as in the skip-gram model [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <sec id="sec-3-1">
        <title>3.1. Progressiveness with Node Vectors</title>
        <p>Once that the vector embeddings have been generated for all the nodes, we employ LSH to
build bands of decreasingly similar pairs of nodes. Each band can be dynamically computed;
thus, for instance, we start by considering pairs with a cosine similarity greater than 0.9 (i.e.,
between 1 and 0.9). Then, in the second iteration, we consider pairs with a similarity greater
than 0.8 and remove from that set the pairs already considered in the first iteration, and so
forth—for lower similarly thresholds.</p>
        <p>When considering each level, we actually compute the similarity of each candidate pair and
insert it in a heap. Then, we start the emission of the pairs in non-increasing weight order.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Experiments</title>
      <p>
        Hardware and Software. All experiments were performed on a machine equipped with four
Intel Xeon E5-2697 2.40 GHz (72 cores), 216 GB of RAM, running Ubuntu 18.04. We employed
the SparkER library [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] to perform Token Blocking and the blocking graph generation. All
code is implemented in Python 3.7.
      </p>
      <p>Measures. We employ recall and precision, defined as follows:
 = #{matching pairs indexed in blocks}
#{existing matching pairs}
  = #{matching pairs indexed in blocks}
#{pairs indexed in blocks}
and their harmonic mean (i.e., F-score) in order to refer to the overall performance of a blocking
strategy—with the assumption that enough time is given to complete the entire ER process.
Instead, to assess the progressiveness, we plot the recall as a function of the comparisons yielded
by a progressive method.</p>
      <p>
        Datasets. Table 1 lists the 6 real-world datasets employed in our experiments: || stands
for the number of records in a data source, |ℳ| for the number of matching pairs, || for the
number of candidate pairs yielded by schema-agnostic Token Blocking [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]—the block collection
generated with Token Blocking is the input for our methods, as for standard meta-blocking
and PPS [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. They have diferent characteristics and cover a variety of domains. Each dataset
involves two diferent, but overlapping data sources, where the ground truth of the real matches
is known. DblpAcm matches scientific articles extracted from dblp.org and dl.acm.org [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
ScholarDblp matches scientific articles extracted from scholar.google.com and dblp.org [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
Movies matches information about films that are extracted from imdb.com and dbpedia.org
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. ImdbTmdb, ImdbTvdb, and TmdbTvdb match movies and TV series extracted from IMDB,
TheMovieDB and TheTVDB [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], as suggested by their names.
      </p>
      <p>
        Algorithms and baseline. We rely on HARP [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for generating the graph embeddings1. In
particular, we employed both DeepWalk [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and node2vec [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] with the following configuration,
which we found to work well on all considered datasets. For each node, we consider its
neighborhood composed of nodes that can be reached within 10 and 40 hops for generating the
random walks. For generating the vector embeddings, we consider a window size of 2 to feed
the skip-gram model (i.e., the shallow neural network that is used to yield the embeddings). It
is worth to notice that by varying these parameters, even significantly (e.g., 20 hops, 80 random
walks, and a window of size 5), we basically obtain the same results reported here, but with a
significantly higher runtime.
      </p>
      <p>
        As a baseline, we employed PPS [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], which, to the best of our knowledge, is the state-of-the-art
schema-agnostic and unsupervised progressive ER algorithm.
      </p>
      <p>Results. Figure 2 reports the progressive recall of the considered methods: our proposal based
on HARP and the baseline (i.e., PPS). The ideal method, i.e., the method that ideally emits only
matching pairs, is depicted with a red, dashed line.</p>
      <p>On ScholarDblp (Figure 2b), HARP has a steeper recall curve than PPS after the recall
reaches 0.8 (they perform basically the same before that). On TmdbTvdb (Figure 2f), HARP has
1https://github.com/GTmac/HARP
0
1.0
llca0.5
e
R
0.0 0
llca0.5
e
R
0.0 0</p>
      <p>DblpAcm</p>
      <p>HARP(deepwalk)</p>
      <p>HARP(n2v)
scholarDblp</p>
      <p>
        PPS
a steeper recall curve than PPS only when employing DeepWalk [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] for a recall lower than 0.8,
while it always performs better for a recall greater than 0.8. With all other datasets, HARP and
PPS behave almost identically. However, we report that HARP can reach a final recall (i.e., if
the process ends) that is higher than the one of PPS of 2% on average. Hence, HARP seems to
be a better choice if the ER process might have enough time to complete.
      </p>
      <p>
        As for the runtime, HARP is between 3 and 10 times slower that PPS. Yet, this is typically
not a limiting problem: the entity matching functions employed in real-world scenarios, based
on machine/deep learning models [
        <xref ref-type="bibr" rid="ref11 ref12">11, 12</xref>
        ], are at least two orders of magnitude slower than
the average time of emission per pair of both HARP and PPS—in other words, the overhead of
HARP is negligible compared to the time that the actual matching requires.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Related Work</title>
      <p>
        A plethora of approaches and algorithms have been proposed for the problem of Entity
Resolution (ER) [
        <xref ref-type="bibr" rid="ref20 ref21 ref3">3, 20, 21</xref>
        ]; please refer to [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] for a complete survey. We identify two main research
challenges about ER in the literature: (i) how to devise a matching function that given two
records identifies whether they match or not [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]; (ii) how to scale such a matching function.
In this work we focus only on the second challenge.
      </p>
      <p>
        Scaling ER. Schema-agnostic blocking [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] has been proposed to scale ER without the burden
of dealing with schema heterogeneity, when operating with big data sources. Batch blocking
methods [
        <xref ref-type="bibr" rid="ref10 ref3">3, 10</xref>
        ] aim at maximizing the recall of a set of candidate pairs, while maintaining a
high level of precision. The output is an unordered set of pairs with no priority; thus, if the ER
process has to be early terminated due to lack of time and/or resources, only a small portion
of the matches would be found. Diferently, progressive methods [
        <xref ref-type="bibr" rid="ref22 ref23 ref6">6, 22, 23</xref>
        ] aim at prioritizing
candidate pairs, i.e., to emit candidates that are actually matches as soon as possible. Thus, in
case of early termination, the amount of detected matches is maximized. The state-of-the-art
method for schema-agnostic progressive ER is PPS [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]; we compare against it in Section 4.
Graph Embeddings for ER. Graph embeddings [
        <xref ref-type="bibr" rid="ref24 ref25">24, 25</xref>
        ] have been employed for designing
entity matching algorithms (i.e., to match pairs of records) while dealing with schema
heterogeneity (i.e., in a schema-agnostic fashion). Yet, here we study a complementary problem,
since [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] tackles neither the problem of blocking nor the one of progressive ER.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusions and Future Work</title>
      <p>By employing the well-known blocking graph framework for representing candidate pairs in
an Entity Resolution (ER) task, we devised a method that allows to prioritize those candidates.
We show how to exploit graph embeddings to capture hidden patterns in the graph, which can
be a good hint for detecting matches. The method we propose can be employed when resources
and/or time are limited to yield an approximate ER, since it has been shown to always achieve
the same or even a better performance than PPS on real-world datasets.</p>
      <p>Finally, we are currently working on a framework to unify the blocking and matching phases
by exploiting graph embeddings. This work is the first step to explore that research direction.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>G.</given-names>
            <surname>Papadakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Ioannou</surname>
          </string-name>
          , E. Thanos, T. Palpanas,
          <source>The Four Generations of Entity Resolution, Synthesis Lectures on Data Management</source>
          , Morgan &amp; Claypool Publishers,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bergamaschi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Beneventano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mandreoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Martoglia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Guerra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Orsini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Po</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Vincini</surname>
          </string-name>
          , G. Simonini,
          <string-name>
            <given-names>S.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Gagliardelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Magnotta</surname>
          </string-name>
          ,
          <article-title>From Data Integration to Big Data Integration, in: A Comprehensive Guide Through the Italian Database Research Over the Last 25 Years</article-title>
          , volume
          <volume>31</volume>
          of Studies in Big Data, Springer,
          <year>2018</year>
          , pp.
          <fpage>43</fpage>
          -
          <lpage>59</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Papadakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Mandilaras</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Gagliardelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Simonini</surname>
          </string-name>
          , E. Thanos, G. Giannakopoulos,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bergamaschi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Palpanas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Koubarakis</surname>
          </string-name>
          ,
          <article-title>Three-dimensional Entity Resolution with JedAI, Inf</article-title>
          . Syst.
          <volume>93</volume>
          (
          <year>2020</year>
          )
          <fpage>101565</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gagliardelli</surname>
          </string-name>
          , G. Papadakis, G. Simonini,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bergamaschi</surname>
          </string-name>
          , T. Palpanas,
          <string-name>
            <surname>Generalized Supervised</surname>
          </string-name>
          Meta-blocking,
          <source>PVLDB</source>
          <volume>15</volume>
          (
          <year>2022</year>
          )
          <article-title>accepted for publication.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>G.</given-names>
            <surname>Simonini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Gagliardelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bergamaschi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. V.</given-names>
            <surname>Jagadish</surname>
          </string-name>
          ,
          <article-title>Scaling entity resolution: A loosely schema-aware approach</article-title>
          , Inf. Syst.
          <volume>83</volume>
          (
          <year>2019</year>
          )
          <fpage>145</fpage>
          -
          <lpage>165</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G.</given-names>
            <surname>Simonini</surname>
          </string-name>
          , G. Papadakis,
          <string-name>
            <given-names>T.</given-names>
            <surname>Palpanas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bergamaschi</surname>
          </string-name>
          ,
          <string-name>
            <surname>Schema-Agnostic Progressive</surname>
          </string-name>
          Entity Resolution,
          <source>IEEE TKDE 31</source>
          (
          <year>2019</year>
          )
          <fpage>1208</fpage>
          -
          <lpage>1221</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>B.</given-names>
            <surname>Perozzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Al-Rfou</surname>
          </string-name>
          , S. Skiena, DeepWalk: Online Learning of Social Representations, in: KDD, ACM,
          <year>2014</year>
          , pp.
          <fpage>701</fpage>
          -
          <lpage>710</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Grover</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Leskovec</surname>
          </string-name>
          , node2vec:
          <article-title>Scalable Feature Learning for Networks</article-title>
          , in: KDD, ACM,
          <year>2016</year>
          , pp.
          <fpage>855</fpage>
          -
          <lpage>864</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>H.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Perozzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Hu</surname>
          </string-name>
          , S. Skiena, HARP:
          <article-title>Hierarchical Representation Learning for Networks</article-title>
          , in: AAAI, AAAI Press,
          <year>2018</year>
          , pp.
          <fpage>2127</fpage>
          -
          <lpage>2134</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Doan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Konda</surname>
          </string-name>
          ,
          <string-name>
            <surname>P. Suganthan G. C.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Govind</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Paulsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Chandrasekhar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Martinkus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Christie</surname>
          </string-name>
          ,
          <source>Magellan: Toward Building Ecosystems of Entity Matching Solutions, Commun. ACM</source>
          <volume>63</volume>
          (
          <year>2020</year>
          )
          <fpage>83</fpage>
          -
          <lpage>91</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>Mudgal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Rekatsinas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Doan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Park</surname>
          </string-name>
          , G. Krishnan,
          <string-name>
            <given-names>R.</given-names>
            <surname>Deep</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Arcaute</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Raghavendra</surname>
          </string-name>
          ,
          <article-title>Deep Learning for Entity Matching: A Design Space Exploration</article-title>
          , in: SIGMOD Conference, ACM,
          <year>2018</year>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>34</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Suhara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Doan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Tan</surname>
          </string-name>
          ,
          <article-title>Deep Entity Matching with Pre-Trained Language Models</article-title>
          , PVLDB
          <volume>14</volume>
          (
          <year>2020</year>
          )
          <fpage>50</fpage>
          -
          <lpage>60</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gagliardelli</surname>
          </string-name>
          , G. Simonini, S. Bergamaschi,
          <article-title>RulER: Scaling Up Record-level Matching Rules</article-title>
          , in: EDBT, OpenProceedings.org,
          <year>2020</year>
          , pp.
          <fpage>611</fpage>
          -
          <lpage>614</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Firmani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Galhotra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Saha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Srivastava</surname>
          </string-name>
          ,
          <article-title>Robust Entity Resolution Using a CrowdOracle, IEEE Data Eng</article-title>
          .
          <source>Bull</source>
          .
          <volume>41</volume>
          (
          <year>2018</year>
          )
          <fpage>91</fpage>
          -
          <lpage>103</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mikolov</surname>
          </string-name>
          , I. Sutskever,
          <string-name>
            <given-names>K.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. S.</given-names>
            <surname>Corrado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dean</surname>
          </string-name>
          ,
          <article-title>Distributed Representations of Words and Phrases and their Compositionality</article-title>
          ,
          <source>in: NIPS</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>3111</fpage>
          -
          <lpage>3119</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bergamaschi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Gagliardelli</surname>
          </string-name>
          , G. Simonini,
          <string-name>
            <given-names>S.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <article-title>Bigbench workload executed by using apache flink</article-title>
          ,
          <source>Procedia Manufacturing</source>
          <volume>11</volume>
          (
          <year>2017</year>
          )
          <fpage>695</fpage>
          -
          <lpage>702</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gagliardelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Simonini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Beneventano</surname>
          </string-name>
          , S. Bergamaschi, SparkER: Scaling Entity Resolution in Spark, in: EDBT, OpenProceedings.org,
          <year>2019</year>
          , pp.
          <fpage>602</fpage>
          -
          <lpage>605</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>H.</given-names>
            <surname>Köpcke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Thor</surname>
          </string-name>
          , E. Rahm,
          <article-title>Evaluation of entity resolution approaches on real-world match problems</article-title>
          ,
          <source>PVLDB</source>
          <volume>3</volume>
          (
          <year>2010</year>
          )
          <fpage>484</fpage>
          -
          <lpage>493</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>D.</given-names>
            <surname>Obraczka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schuchart</surname>
          </string-name>
          , E. Rahm, EAGER:
          <article-title>Embedding-Assisted Entity Resolution for Knowledge Graphs</article-title>
          ,
          <source>arXiv preprint arXiv:2101.06126</source>
          (
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gagliardelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Zhu</surname>
          </string-name>
          , G. Simonini, S. Bergamaschi,
          <article-title>BigDedup: A Big Data Integration Toolkit for Duplicate Detection in Industrial Scenarios</article-title>
          , in: TE, volume
          <volume>7</volume>
          of Advances in Transdisciplinary Engineering, IOS Press,
          <year>2018</year>
          , pp.
          <fpage>1015</fpage>
          -
          <lpage>1023</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>G.</given-names>
            <surname>Simonini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zecchini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bergamaschi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Entity</given-names>
            <surname>Resolution</surname>
          </string-name>
          On-Demand, PVLDB
          <volume>15</volume>
          (
          <year>2022</year>
          )
          <fpage>1506</fpage>
          -
          <lpage>1518</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>T.</given-names>
            <surname>Papenbrock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Heise</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          , Progressive Duplicate Detection,
          <source>IEEE TKDE 27</source>
          (
          <year>2015</year>
          )
          <fpage>1316</fpage>
          -
          <lpage>1329</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>S.</given-names>
            <surname>Galhotra</surname>
          </string-name>
          et al.,
          <article-title>Eficient and efective ER with progressive blocking</article-title>
          ,
          <source>VLDB J</source>
          .
          <volume>30</volume>
          (
          <year>2021</year>
          )
          <fpage>537</fpage>
          -
          <lpage>557</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>R.</given-names>
            <surname>Cappuzzo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Papotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Thirumuruganathan</surname>
          </string-name>
          ,
          <article-title>Creating Embeddings of Heterogeneous Relational Datasets for Data Integration Tasks</article-title>
          , in: SIGMOD Conference, ACM,
          <year>2020</year>
          , pp.
          <fpage>1335</fpage>
          -
          <lpage>1349</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>F.</given-names>
            <surname>Benedetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Beneventano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bergamaschi</surname>
          </string-name>
          , G. Simonini,
          <article-title>Computing inter-document similarity with context semantic analysis</article-title>
          ,
          <source>Inf. Syst</source>
          .
          <volume>80</volume>
          (
          <year>2019</year>
          )
          <fpage>136</fpage>
          -
          <lpage>147</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>