<!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>Liquid FM: Recommending Music through Viscous Democracy?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Paolo Boldi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Corrado Monti</string-name>
          <email>corrado.monti@unimi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Massimo Santini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sebastiano Vigna</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Informatica, Universita degli Studi di Milano</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Most modern recommendation systems use the approach of collaborative ltering : users that are believed to behave alike are used to produce recommendations. In this work we describe an application (Liquid FM) taking a completely di erent approach. Liquid FM is a music recommendation system that makes the user responsible for the recommended items. Suggestions are the result of a voting scheme, employing the idea of viscous democracy [3]. Liquid FM can also be thought of as the rst testbed for this voting system. In this paper we outline the design and architecture of the application, both from the theoretical and from the implementation viewpoints.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Most modern recommendation systems use the approach of collaborative
ltering [
        <xref ref-type="bibr" rid="ref15 ref2">15, 2</xref>
        ]: users that are believed to behave alike are used to produce
recommendations. The idea behind Liquid FM is to tip over this approach by making the
user responsible for these matches: deciding who they want to resemble becomes a
choice of the user, instead of being inferred algorithmically. This scenario can be
cast as a voting scheme: each user has to select another one that is believed to be
a good recommender. This idea allows us to use this task as a testbed for viscous
democracy [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Viscous democracy is a kind of liquid democracy [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. In liquid (or delegative)
democracy, each member can take an active role|by participating directly and
exercising their decision power|or a passive role|by delegating to other members
their share of responsibility. It can be seen as a compromise between representative
democracy, where voters are usually neglected any decision making and can only
delegate others to do so, and direct democracy, where every voter is called to an
active role, regardless of what their inclinations are.
      </p>
      <p>
        In this sense, liquid voting systems try to take the best from both worlds. Every
member's opinion, in a direct democracy, is directly relevant to a nal decision,
but the vote of each one can be (knowingly!) uninformed; instead, in a classical
representative system, elected representatives are encouraged to be informed on
the speci c decision they are making, but on the other hand many people feel that
their opinion on that matter is basically irrelevant. This phenomenon is called
political ine cacy by social scientists|see for example [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Liquid democracy permits
members to choose among expressing their opinion directly if they feel entitled to
do so, or delegating their voting power if they believe others are more capable.
Note that these two options are not necessarily exclusive|in our case, in fact,
users will be able to do both, if they want to.
? The authors were supported by the EU-FET grant NADINE (GA 288956)
      </p>
      <p>
        Viscous democracy was proposed by Boldi et al. in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] as a particular way to
compute the outcome of a liquid democracy voting scheme. It takes advantage of
known techniques for measuring centrality in social networks, and in particular
it resembles Katz's index [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. It stems from the assumption that the delegating
mechanism should transfer a fraction of the user voting power. I.e., if A delegates
B and B delegates C, the trust that A puts in C should be less than if A voted C
directly. This principle will be further detailed in the next section.
      </p>
      <p>This framework can be used in a variety of settings. In our application, we
show how it can be easily adapted to music recommendation. For a certain music
genre, we ask users to express a short list of their favorite songs, or to delegate
one of their Facebook friends they consider to be an expert on that genre. This
builds a graph of delegations for each music genre. We wish to employ this data
to create recommendations for each user.</p>
      <p>In Section 2, we will give a panoramic overview of recommender systems, and
of liquid democracy. Then, in Section 3 we will detail how we extract information
from the delegation graph. In Section 4, we will describe how we have developed the
system: how its algorithms were implemented, the architecture of its components,
and the external resources we used; nally, in Section 5 we will sum up our work
and present possible directions for future research.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related works</title>
      <p>Information overload, experienced everyday by internet users, has caused a growing
research interest in recommendation systems|i.e., systems able to pro-actively
suggest items of interest, in order to save users' time.</p>
      <p>
        Recommender systems (RS) have been done in the past mainly with one of two
di erent approaches, known as content-based ltering (CBF) and collaborative
ltering (CF). Content-based ltering [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] guesses what a user will like in the
future basing on the features of items they liked in the past. For example, if a
person has expressed a preference for rock songs composed in the 90's by bands
from Seattle, this will raise the chance they will like to listen to more similar music.
      </p>
      <p>
        Collaborative ltering [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], instead, uses preferences from other users to infer
what a certain user could like: if a group of users share a certain taste, we can
suggest items liked by one of them to the others. Formally, we have a bipartite
graph composed by users and items, and each user may be linked to a subset
of items. First, CF identi es which users are close to a target user|that is, users
that have a similar neighborhood on the bipartite graph. Then, we can recommend
items linked by many of these users to the target.
      </p>
      <p>
        CF does not need any speci c knowledge about items: while CBF requires a
phase of feature representation that can be costly for some domains, CF does
not and can be applied without much e ort to movies, news stories, websites,
et cetera [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Furthermore, it is a scalable technique, that ts well to the size
required by modern web services. For these reasons, CF is widely used in practice
(for example, [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]).
      </p>
      <p>
        A well-known problem of CF is cold start [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]: new users will have only a few
ratings, and therefore recommendations are very inaccurate, since the system is
not able to nd close users. Another problem is malicious rating : by creating fake
users with appropriate rating data, one can divert the CF mechanism [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        We propose an application sharing traits with CF|we take a bipartite graph
of user ratings of items as input, and employ user ratings to produce
recommendations; however, we take in suggestions about the importance of trust in
recommendations and from the study of liquid and viscous democracy. In fact, [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] found
that people prefer recommendation from friends, over those by RS. Therefore, we
make the choice of \close users"|used to produce recommendations|a decision
of the target user, over his network of personal acquaintances. This simple strategy
turns the system basically in a vote-casting setting, permitting us to employ liquid
democracy to compute recommendations, and in particular to use this system as a
proving ground of viscous democracy [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This could help in the above mentioned
problems of CF: a new user is only required to indicate an existing user to be able
to see recommendations, and fake users are unlikely to be trusted by real ones.
      </p>
      <p>
        The idea of propagating trust to predict ratings has been previosly analyzed
theoretically, with the help of simulations made on real data. In [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], authors use a
model where relationship between users are symmetric. A framework more similar
to ours has been studied by [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]: they extensively tested the propagation of trust
with a leave-one-out cross-validation approach, suggesting that this mechanism of
building a web of trust could be useful in predicting ratings. The interplay between
trusted social connections and RS has been studied by [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]; they employ trusted
friends to make recommendations, but do not use mechanism for the di usion of
trust. A work with a similar inspiration to ours is [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], where the authors use a
trust metrics derived from PageRank; their ndings supports the idea that these
methods can outperform CF, helping especially cold-start users.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Viscous democracy and recommender systems</title>
      <p>From now on, we will denote with dG(x; y) the distance from node x to node y in
the graph G, and with oG(x) the outdegree of node x in G; we may omit reference
to G if it is obvious from the context.</p>
      <p>Let us de ne U as the set of users and S as the set of items|they will be
songs in our application1. D = (U; AD), with AD U U , is the directed graph
of delegations; an arc from user u to u0 means the former delegates the latter as
an expert on the topic. V = (U; S; AV ), with AV U S, is the bipartite graph
of votes, where an arc from u 2 U to s 2 S means that the user u recommends
item s.</p>
      <p>
        We are going to put some restrictions on these graphs: rst of all, we are going
to assume that there is an underlying, undirected friendship graph F = (U; EF ),
with EF U U , where an edge (u; u0) 2 EF expresses a personal acquaintance
of u and u0. We impose that AD EF : this permits us to ensure that the trust
expressed through a delegation is a result of personal knowledge, as suggested
in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>Further, we are going to impose that 8u 2 U , we have 0 oD(u) 1, meaning
that a user can delegate only one person, and 0 oV (u) 3, meaning that every
user can vote up to 3 items2. We are going to consider only nodes u 2 U having
oD(u) &gt; 0 _ oV (u) &gt; 0. An example of such a setting is pictured in Figure 1.
1 As we will explain in Section 4, we are going to consider di erent sets of songs and
votes, one for each music genre treated. For the rest of this section, we are going to
consider the music genre as xed.
2 We will explain this assumption in Section 3.2.</p>
      <p>Francis</p>
      <p>David
John Zorn,
"Batman"</p>
      <p>Miles Davis,
"Pharaoh's Dance"</p>
      <p>Hugo
A voting system is a function vD : U ! R assigning a score to each user, depending
on the delegation graph. Such a function will be the basic building block of our
recommendations.</p>
      <p>Usually, in liquid vote this function is just the size of the tree with root in
u 2 U :
lD(u) =</p>
      <p>fu0 2 U jdD(u0; u) &lt; 1g</p>
      <p>This function is used, e.g., by the well-known LiquidFeedback3 platform.
Nonetheless, it assumes that \trust" transferred from a to b is the same whether a
delegated b directly, or whether they are connected by a long chain of delegations|
and they may not even know each other.</p>
      <p>Let us assume that we wish, instead, that the amount of trust passed on from
a to b is greater if (a; b) 2 AD, and lesser if there are many steps connecting them.
To do so, we introduce a damping factor 2 (0; 1], de ning how much of the
voting power of a is transferred to b when a delegates b. Therefore, the scoring
function characterizing viscous democracy will be:
vD(u) = X</p>
      <p>d(u0;u)
u02U</p>
      <p>
        Authors [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] have noted how, depending on the value of , the behavior of the
voting function greatly di ers. For higher values of , the fraction of trust \lost"
in each delegation step becomes smaller and smaller; in fact, for &gt; 1, we have
that vD ! lD: all the nodes in the tree of u contribute with all their voting power
to u, exactly as in pure liquid democracy. Note that if we allow 1, we must
explicitly avoid cycles in D|exactly as with pure liquid democracy; this constraint
is not needed with viscous democracy with 2 (0; 1).
      </p>
      <p>With approaching 0, instead, the voting power becomes nontransferable: all
users become equal, regardless of the delegations they received; in other words,</p>
      <sec id="sec-3-1">
        <title>3 http://liquidfeedback.org/</title>
        <p>(1)
Lou
Gustav Klaudia</p>
        <p>Joe</p>
        <p>Isaac</p>
        <p>David
the model becomes a direct democracy, without any proxy vote. These di erences
are presented graphically in Figure 2, making use of the item-scoring function we
will show in the next section.
Having a score for each user, we can easily score each item s 2 S. Indeed, we can
de ne a function r : S ! R as
r(s) =</p>
        <p>X
u2Uj(u;s)2AV
vD(u)
(2)</p>
        <p>This function will get us a score for an item proportional to the importance of
who voted it, according to vD. The score is completely de ned by the graphs V
and D. We can then proceed to rank each item with r, and present them to the
users accordingly. As in many standard information retrieval tasks, a user looking
for results (about a certain music genre, as we will explain in Section 4) will be
presented with all possible items|all items in S|ranked from higher to lower
r. Users of our application will be therefore more likely to listen to songs ranked
higher in this list.</p>
        <p>Let us call the in uence of u 2 U the di erence the votes of user u make in the
nal rankings|that is, Ps2S r(s) rV nfug(s). Please note that, since we have not
normalized r, users giving more votes have a larger in uence in the nal rankings,
serving the purpose of encouraging them to give more recommendations. However,
it also explains why we had to put a limit on oV (u): if we had not, a single user
u could have an arbitrary in uence on the score r, resulting in the possibility of
spam. To drop this constraint on oV , we could require a costly e ort from users
to sustain a large number of votes|for example, a user could vote a song only if
they have fully listened to it.</p>
        <p>In the end, the in uence of a user on item scores is determined by the
number of recommendations they give|limited, but under their control|and by the
delegations they received|unlimited, but not under their direct control.</p>
        <p>As mentioned before, an example of how r behaves is pictured in Figure 2.
3.3</p>
        <sec id="sec-3-1-1">
          <title>Personalized recommendations</title>
          <p>The item-scoring function we presented gives the same ranks to whoever is their
observer. This behavior is unusual in recommender systems, where the goal is to
give the right recommendation to the right person. In our case, a user may be
more interested in listening to what their delegate suggested, rather than other|
possibly more popular|items. Looking at our example in Figure 2, Francis may
be more interested in listening to \Pharoah's Dance", even if it is not globally
highly-ranked, because it is the recommendation of his delegate David. Similarly,
Hugo may be interested in it, because he has, in turn, delegated Francis.</p>
          <p>This goal can be easily expressed as a personalized item-scoring function. Let
us de ne a function p : S; U ! R as
p(s; u) =</p>
          <p>X
u02Uj(u0;s)2AV
d(u;u0)
(3)
(4)</p>
          <p>Such a function permits the user u to get a positive score only for the items
recommended by users belonging to the chain of delegations starting in u. For
the purpose of maintaining this intention, but at the same time avoiding to
completely discard all the items highly ranked by the original r, we can de ne a linear
combination of the two functions, normalized to 1:
c(s; u) =</p>
          <p>p(s; u)
max p(s0; u)
s02S
+ (1
)</p>
          <p>r(s)
max r(s0)
s02S
where 2 [0; 1] regulates the amount of personalization of c.</p>
          <p>An example is pictured in Figure 3.
3.4</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Insights for users</title>
          <p>In addition to the presented ways to compute recommendations, the setting here
described also permits to compute other information that may be of interest to the
users. Particularly, it allows them to know how authoritative (i.e., trustable) their
taste is in a particular music genre. The function vD, in fact, can be normalized
into a percentile-based scoring, obtaining an easy-to-read assessment in the form
\u is better than vD(u) people out of 100" (for a speci c genre), with vD(u) =
c c
100 jfu02UjvD(u0)&lt;vD(u)gj . It can then be used to provide useful information from
jUj
two di erent perspectives:
1. Showing to the user a fair evaluation about which music genres they are
believed to be more expert about.
2. Presenting to a user interested in learning more about a speci c genre which
of their friends is considered an expert|making use of the direct knowledge
graph de ned on page 3.
Gustav Klaudia</p>
          <p>Joe</p>
          <p>Isaac</p>
          <p>David
We will now discuss how the presented techniques have been implemented in
practice. The nal result is Liquid FM: a Facebook application that enable its users to
vote one of their friends as an expert on a music genre, and (by means of the
described formulas) recommends them some piece of music to listen to, by identifying
the best experts.</p>
          <p>Firstly, we will present a general overview of the architecture of Liquid FM,
explaining the role of its main components; then, we will give a more detailed
look at the implementations of the formulas presented in Section 3; nally, we will
discuss the external components we employed.</p>
          <p>Categories As anticipated in the previous section, we applied our scoring
algorithms to 9 music genres, called categories from now on, and their set will be
denoted as C. In this way, we will have di erent votes and di erent
recommendations for each category. Such a behavior is closer to reality: an expert in HipHop
is not assumed to be quali ed to give, say, classical music suggestions. However,
it also permits to have di erent graphs for the same users|an interesting fact for
future analysis.</p>
          <p>The selected categories were Classical, Electronic, Folk, HipHop, Indie, Jazz,
Metal, Pop, Rock. They were chosen by inspecting LastFM top 20 tags4 and
discarding those not expressing a musical genre (such as \seen live") and sub-genres
(having included Indie and Rock, we discarded \Indie Rock"). We decided to add
Classical (only ranked 36th on Last Fm), since it is a di erent and interesting
community, under-represented in services such as the one we referred to.
4.1</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Overview</title>
          <p>As pictured in Figure 4, Liquid FM features two main components:</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>4 http://www.last.fm/charts/toptags</title>
        <p>Construction of web
pages: voting forms,
user feedback, and
on-the-fly personalized
recommendations
User votes</p>
        <p>Song ranks
and scores</p>
        <p>Computing
global
rankings</p>
        <p>{ a Java part, with the role of analyzing the whole graphs and computing global
scores through vD and r (equations 1 and 2): it is meant to be fast, and
executed periodically;
{ a Python part, with the role of glueing the di erent parts together and
providing all the other functions: from the construction of web pages to the
implementation of personal scores (functions p and c, equations 3 and 4).</p>
        <p>These two parts interact with each other through a shared database, that
persistently stores every information. We chose MongoDB, an open-source
documentoriented NoSQL database, for e ciency, scalability, and exibility. Furthermore,
we do not often need complex operations, involving more than one collection, and
we would like to control what is happening at application-level.</p>
        <p>On this database, we have two main collections gathering user-submitted data:
one for D and one for V . These collections are both represented in Figure 4 as
\User votes". A document in the collection for D looks like this:</p>
        <p>f c a t e g o r y : c , from : u , t o : u0 g
While a document in the collection for V has this structure:</p>
        <p>f c a t e g o r y : c , u s e r : u , a d v i c e : s g</p>
        <p>The advice s is a dictionary containing author and title of the song, as well
as a YouTube video id. In fact, we associate with each song selected by a user a
YouTube video, in order to be able to play it as a recommendation. YouTube is
in fact one of the largest and most used music streaming platforms, and it can
be included in third-party services (with small limitations). A screenshot of the
voting phase in displayed in Figure 5.</p>
        <p>
          Please note that the structure of an advice, as well as the category c, is
wellincapsulated: therefore, the schemas of these collections can be easily extended in
the future in order to support di erent (i.e., not music-related) scopes.
f
f
g
The division of global and personalized recommendations into two separate
components originates from e ciency reasons. Having to compute and store all the
personalized scores for each user would be impracticable, as they would be jCj jSj jU j
scores. Therefore, they are computed with a lazy approach: when a user u asks
for her personal recommendations, we compute all of them on-the- y and cache
them. Global recommendations, instead, are the main result of the system, and
every user depends on them|even to see the personalized scores, since we use the
function c (equation 4). For this reason, we compute them periodically with a fast
Java component, and save them to a dedicated MongoDB collection.
Global recommendations in Java The global recommendation component was
carried out in Java, since for this task it is faster than Python and since e cient
open-source libraries to deal with graphs are available; in particular, we employed
extensively the WebGraph framework [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] and the fastutil library.
        </p>
        <p>This component is run periodically. It takes as input the graphs D and V ,
memorized in their MongoDB collections, and it results in a new collection for
each category, composed of documents of this form:</p>
        <p>a d v i c e : s , rank : r(s) g
and in another collection ranking users, where each document has this form:
i d : u ,
category1 : f s c o r e : vD(u) , p e r c : vD(u) g , : : :
c</p>
        <p>We can schematize the process, for each category c, in these steps:
Personalized on-the- y recommendations As discussed above, personalized
recommendations are computed on-the- y by a Python component. Python was in fact
chosen as the main language of the application, due to its versatility and its fast
production times; also, we decided to use Flask5, an open-source web development
micro-framework particularly suited for our task.</p>
        <p>Personalized recommendations are computed only when users ask for them,
since they require to see only a very small part of the graphs, and because storing
all of them would be unfeasible. The score we will use to rank personalized
recommendations is the function c(s; u) (eq. 4); in order to compute it we must, in the
rst place, compute p (eq. 3).</p>
        <p>To compute p(s; u) for all songs s 2 S and a xed user u we walk through the
chain of delegations on graph D, starting from u. Since 8u oD(u) 1, this path
on D is unique (although it may end in a cycle). Therefore, we simply proceed as
follows (for a suitable stopping threshold ):
1. Let p be a map with 0 as default value for missing keys.
2. while t &gt; and 9u0 s.t. (u; u0) 2 AD
(a) u u0 s.t. (u; u0) 2 AD
(b) For each s s.t. (u; s) 2 AV :</p>
        <p>p[s] p[s] + t
(c) t</p>
        <p>t</p>
        <p>Now we have all the ingredients for function c, and we can proceed to compute
the ranking order according to it.</p>
        <p>First of all, consider that the ranking order induced by c(s) is equivalent to
c(s) = k p(s; u) + r(s)
where
k =
(1
max r(s0)
s02S
) max p(s0; u)
s02S</p>
        <p>Therefore, for each element s of the map p, we multiply its value by k and add
the value of r(s). Then, we retrieve all the other items s s.t. r(s) min p[s0], and
s0
insert them in the map p. Finally, we can build the iterator of personal
recommendations by chaining two iterators:
1. the iterator of all elements in p, sorted by their values;</p>
      </sec>
      <sec id="sec-3-3">
        <title>5 http://flask.pocoo.org/</title>
        <p>2. the iterator of all other elements s 2 S having r(s) &lt; min p[s0], sorted by their
s0
values; remember that they are already indexed in this order in the database.</p>
        <p>The nal iterator can be implemented in a lazy fashion, allowing us to retrieve
the elements of the second iterator only when necessary. The rst iterator, instead,
will be computed eagerly upon its request, and then cached. To cache these (and
other) values, we employed redis6, an open-source in-memory key-value cache.
To conclude this section, we would like to brie y describe the main external
software components we used in developing Liquid FM.</p>
        <p>
          Facebook As mentioned earlier, Liquid FM is a Facebook application. The reason
for it is that we used the Facebook friendship graph as the graph F de ned on
page 3. In fact, Facebook is at the moment the largest existing social network (with
1.4 billion users), and it has been previously used as a good approximation of an
acquaintance graph [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Therefore, we require users to have a Facebook account, in
order to limit their choice of delegate to their acquaintances. Accordingly, in the
collections described earlier, we used a Facebook-provided id to identify a user u.
Musicbrainz To ensure the validity of the set S of songs chosen by users, we check
them against the Musicbrainz database. Musicbrainz is an open music database
that anyone can edit. At the time of writing, it contained information about more
than 900 000 artists and 14 000 000 recorded songs. Since it follows the open-content
paradigm, a user who does not nd its favorite song in the database is in principle
free to add it; however, the community-review process acts as a lter.
Furthermore, Musicbrainz provides a disk image to set up a virtual machine with a
fullyfunctioning, self-updating Musicbrainz server; we used this approach to be able to
access the database fast, without network delays and minimizing the impact on
their hosts.
5
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Discussion, conclusions and future work</title>
      <p>
        In this work, we presented a Facebook application aimed at putting the viscous
democracy framework [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] to the test. This is at the same time a proof-of-concept
of how that voting system can be practically implemented in a real-world social
network, and a way to collect data corroborating (or disproving) the supposed
advantages of viscous democracy when compared to other, more standard, ways of
performing elections in a social setting. An interesting point, here, is that the usage
of viscous democracy for recommendation seems to avoid the lter bubble [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], at
least in its more algorithmic sense, because this kind of recommendation does not
rely on collaborative ltering but is based on a conscious choice. Whether this
choice (delegation) can itself induce a similar kind of bubble will be subject of
future analysis.
      </p>
      <p>The discussed application is currently active on http://bit.ly/liquidfm,
and we have so far collected some small datasets; currently, the delegation graphs
consist of few tens of delegations, so it is impossible to draw any conclusion from</p>
      <sec id="sec-4-1">
        <title>6 http://redis.io/</title>
        <p>them. In order to be able to collect larger amount of information it is crucial that
we nd a way to make the application viral : this is a matter of social engineering
that needs to be taken into careful consideration.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Backstrom</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boldi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosa</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ugander</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vigna</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Four degrees of separation</article-title>
          .
          <source>In: Proceedings of the 4th Annual ACM Web Science Conference</source>
          . pp.
          <volume>33</volume>
          {
          <fpage>42</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bernhardsson</surname>
          </string-name>
          , E.:
          <article-title>Collaborative ltering at spotify</article-title>
          . New York Machine Learning meet-up (jan
          <year>2013</year>
          ), http://www.slideshare.net/erikbern/ collaborative-filtering
          <string-name>
            <surname>-</surname>
          </string-name>
          at-spotify-16182818
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Boldi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bonchi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Castillo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vigna</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Viscous democracy for social networks</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>54</volume>
          (
          <issue>6</issue>
          ),
          <volume>129</volume>
          {
          <fpage>137</fpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Boldi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vigna</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The webgraph framework i: compression techniques</article-title>
          .
          <source>In: Proceedings of the 13th international conference on World Wide Web</source>
          . pp.
          <volume>595</volume>
          {
          <fpage>602</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Breese</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heckerman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kadie</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Empirical analysis of predictive algorithms for collaborative ltering</article-title>
          .
          <source>In: Proceedings of the Fourteenth conference on Uncertainty in arti cial intelligence</source>
          . pp.
          <volume>43</volume>
          {
          <fpage>52</fpage>
          . Morgan Kaufmann Publishers Inc. (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Finkel</surname>
            ,
            <given-names>S.E.</given-names>
          </string-name>
          :
          <article-title>Reciprocal e ects of participation and political e cacy: A panel analysis</article-title>
          .
          <source>American Journal of political</source>
          science pp.
          <volume>891</volume>
          {
          <issue>913</issue>
          (
          <year>1985</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Guha</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raghavan</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tomkins</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Propagation of trust and distrust</article-title>
          .
          <source>In: Proceedings of the 13th international conference on World Wide Web</source>
          . pp.
          <volume>403</volume>
          {
          <fpage>412</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Katz</surname>
            ,
            <given-names>L.:</given-names>
          </string-name>
          <article-title>A new status index derived from sociometric analysis</article-title>
          .
          <source>Psychometrika</source>
          <volume>18</volume>
          (
          <issue>1</issue>
          ),
          <volume>39</volume>
          {
          <fpage>43</fpage>
          (
          <year>1953</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. Ma, H.,
          <string-name>
            <surname>King</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lyu</surname>
            ,
            <given-names>M.R.</given-names>
          </string-name>
          :
          <article-title>Learning to recommend with social trust ensemble</article-title>
          .
          <source>In: Proceedings of the 32nd international ACM SIGIR conference on Research and development in information retrieval</source>
          . pp.
          <volume>203</volume>
          {
          <fpage>210</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Massa</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Avesani</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Trust-aware recommender systems</article-title>
          .
          <source>In: Proceedings of the 2007 ACM conference on Recommender systems</source>
          , pp.
          <volume>17</volume>
          {
          <issue>24</issue>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Massa</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bhattacharjee</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Using trust in recommender systems: an experimental analysis</article-title>
          .
          <source>In: Trust Management</source>
          , pp.
          <volume>221</volume>
          {
          <fpage>235</fpage>
          . Springer (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Mooney</surname>
            ,
            <given-names>R.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roy</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Content-based book recommending using learning for text categorization</article-title>
          .
          <source>In: Proceedings of the fth ACM conference on Digital libraries</source>
          . pp.
          <volume>195</volume>
          {
          <fpage>204</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>O</given-names>
            <surname>'Donell</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.A.</surname>
          </string-name>
          :
          <article-title>Delegative democracy</article-title>
          .
          <source>Journal of democracy 5(1)</source>
          ,
          <volume>55</volume>
          {
          <fpage>69</fpage>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Pariser</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>The lter bubble: What the Internet is hiding from you</article-title>
          .
          <source>Penguin UK</source>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Ricci</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rokach</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shapira</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Introduction to recommender systems handbook</article-title>
          .
          <source>In: Recommender systems handbook</source>
          , pp.
          <volume>1</volume>
          {
          <fpage>35</fpage>
          . Springer (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Schein</surname>
            ,
            <given-names>A.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Popescul</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ungar</surname>
            ,
            <given-names>L.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pennock</surname>
            ,
            <given-names>D.M.</given-names>
          </string-name>
          :
          <article-title>Methods and metrics for cold-start recommendations</article-title>
          .
          <source>In: Proceedings of the 25th annual international ACM SIGIR conference on Research and development in information retrieval</source>
          . pp.
          <volume>253</volume>
          {
          <fpage>260</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Sinha</surname>
            ,
            <given-names>R.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Swearingen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Comparing recommendations made by online systems and friends</article-title>
          . In: DELOS workshop:
          <article-title>personalisation and recommender systems in digital libraries</article-title>
          . vol.
          <volume>1</volume>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Singh</surname>
            ,
            <given-names>M.P.:</given-names>
          </string-name>
          <article-title>A social mechanism of reputation management in electronic communities</article-title>
          .
          <source>In: Cooperative Information Agents IV-The Future of Information Agents in Cyberspace</source>
          , pp.
          <volume>154</volume>
          {
          <fpage>165</fpage>
          . Springer (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Josang</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cox</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The state-of-the-art in personalized recommender systems for social networking</article-title>
          .
          <source>Arti cial Intelligence Review</source>
          <volume>37</volume>
          (
          <issue>2</issue>
          ),
          <volume>119</volume>
          {
          <fpage>132</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>