A Trust-enhanced Recommender System application: Moleskiing

Paolo Avesani ITC/irsT Trento, Italy avesani@itc.it

Paolo Massa ITC/irsT Trento, Italy massa@itc.it

Roberto Tiella ITC/irsT Trento, Italy tiella@itc.it


Recommender Systems (RS) suggests to users items they will like based on their past opinions. Collaborative Filtering (CF) is the most used technique to assess user similarity between users but very often the sparseness of user profiles prevents the computation. Moreover CF doesn’t take into account the reliability of the other users. In this paper we present a real world application, namely moleskiing.it, in which both of these conditions are critic to deliver personalized recommendations. A blog oriented architecture collects user experiences on ski mountaineering and their opinions on other users. Exploitation of Trust Metrics allows to present only relevant and reliable information according to the user’s personal point of view of other authors trustworthiness. Differently from the notion of authority, we claim that trustworthiness is a user centered notion that requires the computation of personalized metrics. We also present an open information exchange architecture that makes use of Semantic Web formats to guarantee interoperability between ski mountaineering communities.

Categories and Subject Descriptors

Recommender Systems (RS) suggest to users items they may like, based on users’ previous opinions. In general, RSs assumes all the information is reliable but, in open environments, this assumption is no more true and evaluating the quality of the content provided by users becomes an important issue.

An emergent technique used to deal with the quality assessment in open environments is to ask users to explicitly specify which other users they trust. For example, on Epinions.com, a site where users can review products, users can also specify which other users they trust (i.e. “reviewers whose reviews and ratings they have consistently found to be valuable”1 ) and which ones they don’t. Then the user’s web experience is personalized based on this “web of trust”. Similar patterns can be found in online communities (for example, slashdot.org in which millions of users posts news and comments daily), in peer-to-peer networks (where peers can enter corrupted items), in e-marketplace sites (such as eBay.com) and in general in many open publishing communities [5]. These approaches mimic real life situations in which it is common habit to rely on opinions of people we trust.

In those computational settings, trust metrics [3, 6, 9] are emerging as a powerful technique. The idea is to use trust propagation in order to predict the level of trustworthiness in unknown users. These trust scores can then be used to personalize the user experience by emphasizing content entered by trusted users and hiding content provided by unreliable ones.

In this paper we present Moleskiing.it: a community Web site whose goal is to make ski mountaineering safer by exploiting information and communication technologies. Users can share their opinions about the snow conditions of the different ski routes and also express how much they trust the other users. Moleskiing is a Recommender Systems powered with the use of trust propagation.

The contributions of this paper are as follows: (1) we present a running application that is conceived to solve a real problem involving ski mountaineers; (2) we argue how the use of a local trust metric can be effective in improving Recommender Systems performances and propose a preliminary efficient local trust metric; (3) we describe Moleskiing open-publishing information architecture in which all the community information are published in Semantic Web formats. The information is not required to stay in Moleskiing servers but can be published wherever on the Web and users are anyway able to get personalized recommendations from Moleskiing.it.

This last point is especially important from a research point of view. Research in Trust Metrics is still in its infancy and we believe one of the reason is the lack of freely available datasets on which trying different solutions and models.

Combining recommendation systems and trust propagation is still an open issue in the reasearch agenda. While preliminary attempts are available at the level of applications, there is a lack in the scientific community of documentation that explains first principle methodologies. This paper represents a preliminary contribution to get explicit the solution to this open challenge. The ultimate goal of Moleskiing is hence also to provide an open computational framework for studying and evaluating different Trust Metrics, Recommender Systems and in general Adaptive Personalization techniques on data from a community of real users.


In ski mountaineering, both the ascent and descent of a peak are made entirely on skis, using climbing skins and perhaps ski crampons for traction on the ascent, and then descending a continuous ski route back down to the base.

However, ski mountaineering may become very risky. Avalanches represent an ubiquitous hazard that may arise by an erroneous situation assessment.

To know in advance snow conditions plays a key role in performing a ski tour safely. However it is difficult to have first hand evidence about the snow conditions of every single route, even for security authorities. As a consequence, in order to prevent or to reduce the avalanches hazard, it is a common pratique for ski mountaineers to share their experiences. Lately, it is starting to become common for ski mountaineers to publish their comments on the Web and to foster this sense of community sharing vital information. In fact, these days, a pretty common use case is the following: firstly, the ski mountaineers tries to find on the Web information about the snow conditions of some routes she would like to experience the day after, especially looking at other ski mountaineers’ diaries and reports. Secondly, she performs the routes and then, when she’s got back at home safely, she reports on the present snow conditions of the recently experienced route. In this way she contributes back with some fresh and important knowledge to the global community knowledge.

However, since we are dealing with information that can make the difference between danger and safety, there is a new, huge challenge: assessing the reliability of the ski mountaineers’ reports.

The system we present in this paper has precisely this goal: filtering ski trip annotations based on the trustworthiness of the user who entered them


In Recommender Systems, the standard way of filtering information in order to personalize it according to the user’s opinions is Collaborative Filtering (CF) [4, 2]. The basic idea is simple: in order to create recommendations for a certain user, CF firstly finds users whose opinions are similar to her and then recommends to her items that were liked in past by those similar users. Typically, CF is used in RSs that suggest movies, songs, books.

However, the domain of Moleskiing is somehow different from a typical CF scenario. In Moleskiing the emphasis is on security and users are invited to “rate” a route also based on the present snow conditions and not only about how much they do like such a route. In this sense users who rate routes in similar ways don’t have necessarily the same opinions about how much a route is interesting or worthwhile. Moreover, in ski mountaineering domain, the information becomes old quickly: the most important factors for security are the weather and snow conditions and of course they are not expected to remain constant over months. This fact exacerbates one of the key weaknesses of CF, data sparsity, which often makes impossible the first mandatory step of finding users similar to the current one [7]. This problem is especially evident just after the deployment of the system when no ratings are available. Moreover, since the goal of Moleskiing is to make ski mountaineering experiences safer, a special relevance assumes the reliability of the comments entered by the users about the routes.

These peculiarities makes Moleskiing a bit different from typical CF scenarios and hence we have chosen to enhance the RS with trust-aware techniques. The intuition is the following: while users can still rate routes about their current security level, they can also “rate” other users by eliciting how much they find their comments and reports useful and accurate. This is their “web of trust”. Then the system shows to the user mainly information provided by users she trusts. However there is a problem of coverage: every user is expected to being able to provide a direct trust statement only about a small number of other users. In order to make use also of the information provided by “unknown” users (users the current user has not issued a trust statement about), the system exploits trust propagation to infer a personalized trust score also for unknown users. The algorithms that predict trust in unknown users based on the global trust network are called “trust metrics” and are covered in Section 5.

In this way, the cornerstones of our system become the trust statements issued by users about other users. In order to obtain this information more easily, we have adopted an open publishing architecture, in which the information (trust statements and comments on routes) can be decentralized published in Semantic Web [1] formats. In this way, the system can potentially aggregate the information available over every community or even single ski mountaineers and does not restrict itself to the (possibly few) users of Moleskiing.it. A description of the open decentralized architecture is given in Section 6.


In Moleskiing, there is a clear distinction between ski routes and ski trips. Ski route refers to the itinerary, while ski trip is the experience of a certain ski mountaineer at a certain date on a certain ski route. While information about ski routes is entered by domain experts and is expected to be static and certified, ski trips are comments created by users and hence they are dynamic and, more importantly, they can be unreliable or even totally inaccurate. Our architecture reflects this dichotomy, in fact the ski routes part is stored on a legacy system while the dynamic one relative to ski trips makes use of a blog platform. In particular, every user can maintain a Moleskiing-hosted blog where she can express, using a simple interface, comments and ratings about her ski trips. In a similar way, they can keep a list of users they know and express how much they trust them, that is, how much they find their ski trips annotations useful and reliable. We will see in Section 6 how it is not required for Moleskiing users to keep this information on Moleskiing servers but they can publish it wherever on the Web, possibly in their already used blog .

The typical use case on Moleskiing.it is the following. An user looks for ski trips information in order to decide which routes she is going to experience the day after. Special attention is deserved to the current snow conditions, reported by other users. Then she performs the ski trips and, while at home, she comments the routes specifying the current snow conditions and hence adding her fresh experience to the overall history of that route.

In this scenario, the use of trust affects the application in the first step. In fact, since security is one of the goal of Moleskiing, the system tries to show to every user only reliable comments and to filter out unreliable ones. Trust scores of users (and hence reliability of their comments) are defined on a per-user basis and hence can be different from the point of view of different users. In order to understand which users are trustworthy from the personal point of view of every single user, the system runs periodically a local trust metrics on the overall trust network. In this way, when an user interacts with Moleskiing.it, the system knows how much the information provided by every other user should be taken into account as useful and reliable. A description of the trust metric is given in Section 5.

The first page of Moleskiing.it (see Figure 4) presents a list of the routes commented in the last 15 days. Ski trips annotated before are simply discarded because information about the snow conditions is already too old. Precisely, only routes that are rated as secure in the last 15 days by the majority of “trustable users” (users with a trust score not less than 0.6 in the [0,1] interval) can be displayed in the list of recommended routes. These routes are then ranked based on the average rating given by those users, weighted by their trust score. The chronological order is taken into account as well, since users reports of routes experienced recently should reflect more precisely current snow conditions.

The system is designed in a way that users are always invited to expand and fine tune their web of trust. In fact, it is always possible to click on a user nickname and to read her blog (containing her routes annotations and her web of trust). In this way, the current user can get a first-hand evidence and express trust in this user explicitly. Moreover, an user can always see the list of users not yet rated ordered by predicted trust or see the predicted trust score assigned by the system to every other user. Since the web experience on Moleskiing.it is driven by the user’s web of trust, we believe it is very important that the user has it under control and is invited to update it in order to reflect her real views of other ski mountaineers’ trustworthiness.


Trust metrics [3, 6, 9] are an emerging research topic. A trust network (or social network) is built aggregating all the community trust statements into a single directed weighted graph. Trust statements are weighted and range from total distrust to total trust: for example, in the real interval [0, 1]. Trust statements are also subjective: it is normal to have an user trusted with different scores by different users. They are also asymmetric in the sense that, if A trusts B as 0.9, this does not mean that B has to trust A as 0.9 as well.

Given a current user, it is possible to predict trust scores in users she has not expressed a trust statement about, by exploiting controlled trust propagation. The assumption is that if user A trusts B at a certain level and B trusts C at another level, something can be inferred about the level of trust of A in C.

An important classification of trust metrics is in global and local ones [7, 9]. With local trust metrics, the very personal and subjective views of the user is taken into account when predicting trust scores in unknown users. For this reason, the trust score of a certain user can be different when predicted from the point of view of different users. Instead, global trust metrics computes a “reputation” score that approximates how much the community as a whole trusts a specific user. In this way, global trust metrics don’t take into account the subjective opinions of each user but average them into standardized global values. PageRank [8], one of the algorithm behing the search engine Google.com is an example of global metric. In general, while local trust metrics can be more precise and tailored to the single user’s views, they are also computationally more expensive, since they must be computed for each user whereas global ones are just run once for all the community.

Another interesting feature of local trust metrics is the fact they can be attack-resistant [6]: users who are considered malicious (from a certain user’s point of view) are excluded from trust propagation and they don’t influence the personalization of users who don’t trust them explicitly. This feature is especially important in our domain because the reliability of users (and hence their ski routes annotations) is one of the main concerns. A more complete description of trust metrics and related concepts can be found in [7].

We have implemented a preliminary trust metric to be used in Moleskiing application. Since there are no comparative evaluations of different trust metrics at present time, we have chosen to start with this one and to improve it as long as real data starts to become available from users. In future, we also plan to evaluate and compare this one and other proposed metrics [3, 6, 9]. The goal of this preliminary metric is to be time-efficient so that computing trust scores in unknown users for every user does take a limited amount of CPU time.

The trust metric, named MoleTrust (ver 0.1), works by walking the social network starting from the input user and by propagating trust along trust edges. Precisely, the MoleTrust trust metric works in 2 steps. The first step’s purpose is of destroying cycles. An example of cycle is the following: A trusts B as 0.6, B trusts C a s 0.8, C trusts A as 0.3. The problem created by cycles is that they require passing over a node many times adjusting progressively the temporary trust score until this value converges. Instead we would like to have a trust metric that is able to walk on every user just once and, in doing this, to compute the definitive trust value. In this way, the running time is linear with the number of nodes. Let us assume that we are predicting trust scores of unknown users from the point of view of user Me. MoleTrust firstly orders users based on shortest-path distance from user Me. A parameter of MoleTrust is the Trust Propagation Horizon: trust is not propagated at distances greater than this value (the default is 3). The intuition is that the reliability of the propagated trust decreases with every new trust hop. Moreover, in this way, the number of nodes the trust metric has to consider is reduced and this means smaller computational time. At this point, MoleTrust removes any trust edge from a user at a certain distance users with a lower or equal distance: for example, every edge from users at distance 3 to users at distance 1, 2 or 3 are removed from the social network. The first step ends here. The social network is now a directed acyclic graph where trust flows from Me to other users and it never flows back, i.e. there are no cycles. The second step is a simple graph walk over the modified social network, starting from user Me, whose trust score is maximum by definition. MoleTrust computes first the trust score of all the users at distance 1, then of all the users at distance 2, etc. The trust score of one user at distance x only depends on trust scores of users at distance x − 1, that are already computed and definitive. For predicting the trust score in an user, MoleTrust analyzes the incoming trust edges. However only trust edges coming from users with a predicted trust score greater than 0.6 are considered. The other users are not trustworthy and their trust statements should simply be ignored. The predicted trust score of user B is the average of all the incoming trust edge values, weighted by the trust score of the user who has issued this trust statement. The intuition is that opinions of users about B are weighted based on their (explicit or predicted) trustworthiness. Because of the trust horizon and because of the structure of the network, it is possible that a trust metric is not able to reach every node and to predict its trust score. We have implemented the trust metric extending the open source Java package “Jung” (http://jung.sourceforge.net). In this section we have presented the preliminary trust metric used in Moleskiing. We are aware that the first step can remove significant trust links and result in inaccurate trust score predictions. This is done in order to reduce the computational time, in fact in this way there is no need to pass on one user more than once to compute her final trust value. We plan to verify if this simple but efficient trust metric is suitable enough for the Moleskiing community or if we need to design more complex trust metrics as soon as we will start collecting significative amount of data from users.


Recommender Systems in general works well when there have a sizeable quantity of information available. This means they require a large user base and a large number of annotations provided by those users. However, as long as new community sites arise, the potential community of users is fragmented in smaller communities, often non-exchanging information. In this way, every system can have access only to the information provided by the users of their own (often small) community. As a consequence, every systems’ performances tend to decrease. Moreover, an user of a community site cannot beneficiate of the comments of an user of another site.

To overcome this problem, we have designed an open and decentralized information exchange architecture. The goal is to support interoperability among medium size communities of ski mountaineering. The idea is that every information in the system (trust statements and ski trips annotations) is published using some Semantic Web [1] formats. Precisely we have defined a new format (MSSA) that encodes a ski trip, an annotation made by one user about a certain route at a certain date. One of the properties is and its value could be 0 if the user does not recommend the route based on present snow conditions, and 1 otherwise. The other Semantic Web format we use is FOAF (FriendOf-A-Friend) [3]. A person can encode in her FOAF file information about herself and her social relations with other persons. In particular, we use FOAF format extended with the trust extension presented in [3]. With this extension, the FOAF file creator can also express her level of trust in other users about a certain context. The minimum possible value is 0 and represents distrust and the maximum is 1, total trust. In a FOAF file, other users’ FOAF files are identified with the seeAlso property and, following these links, it is possible, for example, to walk the overall ski mountaineering social network and aggregate it in order to have trust metrics predict trust scores in unknown users. Figure 2 shows the FOAF file of a typical Moleskiing user. Moleskiing exports the information about every user on the Web: the ski trip annotations in MSSA embedded in the user blog entries and the trust statements in the user FOAF file. Other ski mountaineering communities sites (gulliver.it and skirando.com, for instance) are in the process of doing the same, creating a sort of open federation. In this way, every sites beneficiate of the user base of the other ones in order to provide better recommendations and personalization. However, Moleskiing does not require users to create a login on one of the federated systems in order to receive personalized recommendations and experience. For instance, bloggers can publish MSSA-extended entries in their blog and just ping Moleskiing in order to let the system know that they have created a ski trip annotation and that this should be fetched and aggregated. They can also edit their already existent FOAF file and add trust statements to other ski mountaineers (pointing to their FOAF file located everywhere on the Web) as shown in Figure 2. Whenever they arrive on a confederated site, they can simply point to their FOAF file and blog in order to receive personalization. While this approach requires some XML/RDF knowledge from the part of the user, the advantage is that she can keep her profile just in one single place under her control instead of having to maintain n different identities on n different sites.


In this paper we have presented Moleskiing.it: a trustenhanced Recommender Systems whose goal is to make ski mountaineering trips safer by letting users report current snow conditions of ski routes and presenting to every user only information entered by reliable users. We have argued how the ski mountaneering domain is different from standard Collaborative Filtering scenarios and how this requires a trust-enhanced approach. We have presented the preliminary local trust metric we use on Moleskiing and motivated the reasons behind such a choice. We have also described the open information exchange architecture that, by using Semantic Web formats, guarantees interoperability among different ski mountaineering communities. Our future work will be concerned with the final deployment of the trust-enhanced portion of Moleskiing and with the evaluation based on users’ feedback. In particular, we will study if the simple but efficient proposed trust metric is suitable enough for the Moleskiing community and we will compare performances of different trust metrics on the open growing dataset.


[1] T. Berners-Lee, J. Hendler, and O. Lassila. The semantic web. Scientific American, 2001.

[2] J. Breese, D. Heckerman, and C. Kadie. Empirical analysis of predictive algorithms for collaborative filtering. In Proceedings of the Fourteenth Conference on Uncertainty in Artifi cial Intelligence, Madison, WI, July 1998. Morgan Kaufmann.

[3] Jennifer Golbeck, James Hendler, and Bijan Parsia. Trust networks on the Semantic Web. In Proceedings of Cooperative Intelligent Agents, 2003. [4] D. Goldberg, D. Nichols, B.M. Oki, and D. Terry. Using collaborative filtering to weave an information tapestry. Communications of the ACM, 35(12):61–70, 1992.

[5] R. Guha. Open rating systems. Technical report, Stanford University, CA, USA, 2003.

[6] R. Levien. Advogato Trust Metric. PhD thesis, UC Berkeley, USA, 2003.

[7] P. Massa and P. Avesani. Trust-aware collaborative filtering for recommender systems. In Proc. of Federated Int. Conference On The Move to Meaningful Internet: CoopIS, DOA, ODBASE. Springer-Verlag LNCS 3291, 2004.

[8] Lawrence Page, Sergey Brin, Rajeev Motwani, and Terry Winograd. The pagerank citation ranking: Bringing order to the web. Technical report, Stanford Digital Library Technologies Project, 1998.

[9] C. Ziegler and G. Lausen. Spreading activation models for trust propagation. In IEEE International Conference on e-Technology, e-Commerce, and e-Service (EEE’04), 2004.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중