=Paper= {{Paper |id=None |storemode=property |title=Bridging Recommendation and Adaptation: Generic Adaptation Framework - Twittomender compliance case-study |pdfUrl=https://ceur-ws.org/Vol-823/dah2011_paper_1.pdf |volume=Vol-823 |dblpUrl=https://dblp.org/rec/conf/ht/HannonKBPMS11 }} ==Bridging Recommendation and Adaptation: Generic Adaptation Framework - Twittomender compliance case-study== https://ceur-ws.org/Vol-823/dah2011_paper_1.pdf
    Bridging Recommendation and Adaptation: Generic
    Adaptation Framework - Twittomender compliance
                     case-study.

                    John Hannon2 , Evgeny Knutov1 , Paul De Bra1 ,
               Mykola Pechenizkiy1 , Kevin McCarthy2 , and Barry Smyth2
          1   Department of Computer Science, Eindhoven University of Technology,
                      P.O. Box 513, 5600 MB, Eindhoven, the Netherlands
                   e.knutov@tue.nl, debra@win.tue.nl, m.pechenizkiy@tue.nl
                        2 Clarity: Centre for Sensor Web Technologies,

                          School of Computer Science and Informatics,
                          University College Dublin, Dublin 4, Ireland
               john.hannon@ucd.ie, kevin.mccarthy@ucd.ie, barry.smyth@ucd.ie


       Abstract. In this paper we consider Recommender System (RS) modeling in
       terms of Adaptive Hypermedia Systems (AHS) and investigate AHS and RS func-
       tionality compliance in terms of common features, functionality, building blocks
       and composition of the system. We bring up complementary aspects of adapta-
       tion, personalization and recommendation in a context of a generic framework
       which provides properties of information fusion and heterogeneity and could
       serve as a reference model. We show major recommendation functionality in
       terms of the reference structure and recommendation process by presenting a
       conceptual generic ‘adaptation-recommendation’ sequence chart which overlays
       and combines properties of adaptation and recommendations taking advantages
       of both. In fact we show that RS if implemented on the web can be considered
       as AHS, in this wise a generic framework should be capable of describing virtu-
       ally any RS. In the case study we scrutinize the Twittomender3 RS. We decom-
       pose the system in building blocks, outline and highlight its properties along with
       the advantages and possible enhancements. We conclude by summarizing frame-
       work advantages and AH recommendation compliant features as well as lessons
       learned from this study.


1   Introduction
In recent years a lot of progress has been made in the field of recommender systems
(RS). New efficient models and algorithms have been developed [8]; heterogeneous
and hybrid systems are gaining wide use. Amongst those RS personalized search and
twitter are getting into place [4, 9].
    Since its first emergence on the scene in early 2006, Twitter has grown from an early
microblogging engine into a real time web behemoth. In the early days some 300,000
tweets were produced by early adopters of the system per month, contrast this with
some 140 million tweets estimated to be produced per day in march 20114 . With this
3 http://twittomender.ucd.ie/
4 C. Penner, #numbers, mar, 2011, http://blog.twitter.com/2011/03/numbers.html
obvious information increase, creating ways to use this information appropriately and
intelligently has become a hot topic for many researchers [7, 3]. In Twitter the main
producers of this content are the users themselves who have subscribed to the system.
Obviously, not all the information produced by each user is to everyone’s preference,
so finding the producers, the so-called “diamonds in the rough”, is an interesting re-
search challenge. And, with the Twittomender system we have chosen to frame this as
a recommender systems.
     In the very closely related field of Adaptive Hypermedia (AH) many things have
changed since one of the first reference models models AHAM as well: new terms, def-
initions and models have been introduced and, new adjacent areas (such as the afore-
mentioned RS, personalized web search) have been investigated, new prototypes de-
veloped. Most of these AH models, including the emerging and discussed in the paper
GAF model focus on a layered architecture and discuss the adaptation of the content
and navigation to the user properties as well as recommending the links to follow based
on the user preferences and knowledge, thus bringing the fields of AH and Recommen-
dation closer together. In fact we show that a web-based RS can be treated as AHS
and therefore expressed in terms of a generic AH framework, which we backup by the
conducted case-study of the Twittomender system.
     In the paper we focus on describing RS functionality and Twittomender [4] in par-
ticular in terms of AH systems, in order to show complimentary features of RS and
layers of a generic AH framework (GAF) which aims to develop a new reference
model for the adaptive hypermedia research field by considering new developments,
techniques and methodologies in the area of AH and adjacent fields (including but not
limited to RS) [5]. We show framework compliance (conformity in structure and par-
tial functionality overlay) with the Twittomender, a Twitter based recommender system.
Besides Twittomender is a very interesting example, covering topics such as personal-
ization, recommendation, search and collaborative web experience which means that
we can bring and fit all these features together in the framework. As a result we also
achieve an evaluation of how generic the GAF framework could be on the one hand and
whether the description of one particular RS fits in the framework, and helps to evaluate
the real system on the other.


2   Overview of RS compliance with a generic AHS: system building
    blocks

The main goal of the GAF framework is to provide a reference architecture of AHS,
to describe essential and optional elements of an adaptive system, define the criteria to
distinguish between these elements, describe their functionality and interaction. Here
we define a modular structure (framework) that can be used to describe and develop ap-
plications that satisfy different adaptation and recommendation needs. This framework
has a layered structure where layers match the original classification of AH methods
and techniques and provide the per layer functionality separation 1. Using this classi-
fication we describe recommendation functionality within the same adaptation system
layers depending on the requirements of the application and thus contribute to the sys-
tem extensibility and heterogeneity. We show the correspondence of AHS modeling
(in particular GAF layers) and recommender approaches. We will first summarize the
applicability of GAF with respect to different types of RS and then walk through the
framework layers and functionality to show the compliance.


                                                                Classification of
                                                           AH Methods and Techniques;
                                                               adaptation process
                                      Goal Model
                                                                     Why?

                                     Domain Model
                                                                    What?
                Resource Model

                                       User Model
                  Group Model                                      To What?

                 User Context
                                     Context Model
                Usage Context
                                                                    When?
                                   Application Model                Where?


                                     Adaptation Model
                Higher Order Adaptation

                                   Presentation Model                How?




                                  Fig. 1. GAF building blocks


    Considering RS we would like to mention the major types of RS and give a brief
insight on the GAF structure and functionality related to recommendations:
 – Collaborative Filtering (CF) is usually based on a User Model (UM) and a Group
   model (GM) as known also in AHS (we assume here both user-to-user and item-to-
   item aspects of CF). The recommendations are generated based on a comparison of
   user profiles from the GM and UM. In this case a Recommender UM is represented
   by a vector of items and corresponding ratings, which essentially can be turned into
   a set of interesting items or concepts (for this user) and associated attributes with
   corresponding rating values [6]. Those values are updated as the user interacts with
   the systems, browses through items, rates them, and receives recommendations. In
   general Collaborative Filtering allows to deal with different types of objects where
   essentially only ratings matter which is made possible by separating ratings and
   item set within the GAF Domain, User and Resource models.
 – Content-based RS recommend an item to a user based upon a description of the
   item - feature database (e. g. using words in a text as the textual feature or book
   genres as library properties) and a user profile (UM). Having learned features of
   these items (which can be expressed in the Resource Model (RM)) rated by the user,
   the RS infers new recommendation suggestions. As well as collaborative filtering
   content-based recommenders can also handle different types of objects as long as
   there is a common feature space.
 – In Knowledge-based Recommendation systems a domain expert knows which types
   of recommended items should be assigned to which types of users. In fact this is in
      line with current state of the art in AHS (i. e. there is a domain expert who needs to
      author UM, DM and Adaptation Rules mapping these two). It combines content-
      based filtering performed on the features of the concerned dataset with the explicit
      user query which is used to make inferences about needs and preferences of the the
      user. Thus it is possible to relate how a particular item meets user needs and thus to
      do the reasoning about further possible recommendations.
    – Hybrid type Recommender systems are the most commonly used type. They em-
      ploy different approaches (simultaneously) to achieve better results, both combin-
      ing techniques from collaborative, content-based and knowledge-based methods
      and providing different type of hybridization: mixed, weighted, cascade, etc. Our
      AHS framework allows us to combine both advantages of content and collabora-
      tive filtering, having all necessary building blocks available (e. g. user and group
      models, rankings mechanisms, reasoning engine) and will also help to handle het-
      erogeneous data sources.


3     Twittomender recommender overview
The Twittomender system’s main function involves syncing a users account and pro-
ducing followee recommendations through a range of collaborative and content-based
strategies. However for this to work efficiently, users must be active on Twitter, i.e. they
must follow a number of other users, must have some followers themselves and must
have produced some content (through tweets). Although this functionality is great for
Twitter users who wish to increase the number of appropriate user streams they follow,
it does not perform satisfactorily for new Twitter users. These users have not produced
much content through tweets, nor are they following or being followed by enough users
for collaborative or content-based followee recommendation techniques to perform as
expected. For this reason we also provide a search capability to Twittomender, which
allows users to explicitly type search queries. For our collaborative and content-based
strategies we evaluate 9 different profiling and recommendation strategies based on the
different sources of profile information, in isolation and in combination. To begin with
we implemented 4 content-based strategies that rely on the content of tweets as follows:
 1. (S1) users are represented by their own tweets
    (tweets(UT ));
 2. (S2) users are represented by the tweets of their followees ( f olloweestweets(UT ));
 3. (S3) users are represented by the tweets of their followers ( f ollowerstweets(UT ));
 4. (S4) a hybrid strategy in which users are represented by the combination of tweets
    from tweets(UT ),
    f olloweestweets(UT ), and f ollowerstweet(UT );
In addition we implemented 3 collaborative style strategies, in the sense that we view a
user profile as a simple set of user ids.
 5. (S5) users are represented by the IDs of their followees ( f ollowee(UT ));
 6. (S6) users are represented by the IDs of their followers ( f ollower(UT ));
 7. (S7) a hybrid strategy in which users are represented by the combination f ollowee(UT )
    and f ollower(UT );
Additional 2 strategies are:
 8. (S8) the scoring function is based on a combination of content and collaborative
    strategies S1 and S6;
 9. (S9) the scoring function for this strategy is based on the position of the user in
    each of the recommendation lists so that users that are frequently present in high
    positions are preferred;




                               Fig. 2. Twittomender architecture




4   Recommender System and AHS: Twittomender Study
Considering diverse aspects of the system and its functionality we decompose it in a
a way that forms an overlay of a generic model of an adaptive system, explains the
functionality of the system using terms and definitions from adjacent recommender
systems research area, and foremost brings a custom system to a common denominator
by means of the GAF reference model.
     Fig. 3 presents a picture of Twittomender and the Generic Adaptation Process (GAP) se-
quence chart compliance. Here the GAP process chart is constructed by coupling the
layers of a general purpose AHS as described in [5]. Recommendation steps are as-
signed to a single layer or a transition in the system. Though we have faced certain is-
sues distinguishing parts of the Recommendation Engine functionality, in particular the
filtering and ranking mechanisms (in this respect Application Model (AM) and Adap-
tation Model/Engine (AE) can be treated accordingly) we could align Twittomender
functionality with GAF terms and identify gaps and possible extensions. On the one
hand the mapping proves the genericity of the GAF framework, and on the other hand
it opens new horizons to facilitate and generalize recommendation aspects, bringing
adaptive techniques into place, extend information fusion and heterogeneity possibili-
ties [2] of such a systems encapsulating features of both Recommender and Adaptive
Systems.
    Further we summarize compliant and complementary Twittomender features and
the reference structure of GAF and explain the building blocks and interactions pre-
sented in Fig. 3. Of particular interest here are the remarks regarding AHS functionality
(shown in GAF terms) that can be used to extend Twittomender, but also a few instances
where Twittomender functionality suggests further extensions to the GAF model.

    – Users start system interaction by choosing whether to get recommendations directly
      by logging in with their Twitter profile or by entering a search query they are inter-
      ested in. This refers to a Goal Model of GAF. Internally goal is represented by the
      immediate query input by the user or constructed from the indexed content of the
      users tweets when he or she log-ins into the system.
    – Twittomender Profiler serves both as a UM (User Model), by associating each user
      with the corresponding group of followers and followees, and at the same time as
      user information mediator which requests tweet content information from Twitter
      services and provides this information to Lucene indexer which forms the index of
      user tweets and such forms the domain model to be used in recommendations.
    – The Group Model refers to maintaining a collaborative user profile is already pro-
      vided by Twitter services. It clusters results by location or user age group and gen-
      der, and uses it to rank and recommend results for a particular user or mediate user
      models associated with different groups. To some extent Twitter services provide
      this possibility by maintaining the groups of followers, followees of any given user.
    – Domain Model (DM) of the Twittomender is represented by the index which is
      stored by the Lucene (backend).
    – Context models (both user and usage models) are not considered.
    – Application Model is represented by the Twittomender framework. Mainly it serves
      to query terms from the Lucene and retrieve corresponding ranked lists of users and
      related tweets. Twittomender framework also provides interfaces to the Presentation
      Model (PM).
    – Adaptation Model as described in a generic Recommender system use-case is rep-
      resented by indexing and actual querying solution, Lucene. Its Information Re-
      trieval module provides querying interfaces to Twittomender and return recommen-
      dation lists upon querying (both User Terms and search Terms as indicated in the
      Goal Model. The actual index is stored in DM providing flexibility of the system
      and at the same time decoupling Lucene as a stand-alone Query/Retrieval mecha-
      nism.
    – Presentation Model generates ranked list of users recommended to follow and cor-
      responding cloud of indexed terms that are relevant to the user activity in Twitter.


5     Advantages of GAF in Recommendations

Based on our Twittomender case-study we were able to define the following GAF ad-
vantages which can be used to improve and extend the system functionality:
                                                                                                                                                                                                                                                                                                   !"#$D"+#%&$+)8$                                 !"#$4)0"#5+%"6
                                                                      !"#$%&''!()*$                                                                                                                                                                              ./(00',")8"#$                   I"%',,")8+0(')!                          7#"!")0()*$#"%',,")8+0(')!9$
                                                                                                    G;%")"                                              ./(00',")8"#$                                                                                                                                                                       #+):()*$()5'-9 ;!"#$+%0(<(0=
                                                                    !"+#%&$'#$#"%',-                                                                                                                                                                              1#+,"/'#:                       G;%")0$J+%:")8
                                                                                                                                                          7#'5(2"#                                                                                                                                                                               >!)(??"0!9$"0%-@
                                                                                                                                                                                                                                            BCD$
                                                                                  <=*00'.$"44!3+0                                                                                                                                          E<"#2+=
                                                                                                                                                                                                                                           F'8"2
                                                                                  F'".4:$>3'.C                                                                                                                                                                                           <=*00!)'+&'.
                                                                                                                                                                                                                                                                                            A34'+0$
                                                                                                                                                                                                                                                                                          *+'."40*!+
                                                                                                                                                                                                                                                                                         B3'.C$<'.)-D                                           7#"!")0+0(')6
                                                                                                                                                                                                                                                                                          ,-'.$0'.)-                                            I"%',,")8"8$
                                                                                                                                                                                                                                                                                                                                                  !"#!
                                                                                                                                                                                                                                                                                                                                                >+)8$
                                                                                                                                                                                                                                           %'22+A'#+0(<"$5(20"#()*                                                                              %'##"!?')8()*$
                                                                                                                                                                                                                                               >;!"#$0/""0!@                                                                                    0/""0!@




                                                                      !"#$%!&'#
                                                                                                                      I"0#("<()*$()5'$5'#$                                                                                                       0/""0!$%')0")0$
                                                                                                                    I"%',,")8+0(')!$>I@                                                                                                             5(20"#()*




                                                                                                                                                             ,-'.$%!&'#




                                                                                                     (!)"*+$%!&'#
                                                                                                                                                                                                                                                                                                                                           0+(2'#()*$
                                                                                                                                                                                                                                                                                                                                        I"%-$D0#+0"*("!




                                                                                                                                                                                                      /!+0'10$%!&'#
                                                                                                                        G;%")"$()8"H"#

                                                                                                                                                                                                                                                                                                                           %"*+0"*+*+9$"+&$
                                                                                                                                                                                                                                                                                                                              54>3*.*+9
                                                                                                                                                                                                                                                                                                        5&"60"0*!+$%!&'#




                                                                                                                                                                                                                                                                     566#*4"0*!+$%!&'#




                                                                                                                                                                                                                                                                                                                           5&"60*?'$.3#'-$!@$


                                                                                                                                                                                                                            ,-'.$/!+0'10
                                                                                                                                                                                                                                                                                                                                                                           7.'-'+0"0*!+$%!&'#




                                                                                                                                                   !"#$                                                                                                                                                                      :*9:'.$!.&'.
                                                                                                                                              4)5'#,+0(')3                 I"0#("<()*$
                                                                                                                                                 D"#<(%"$                  *#';?$()5'$
                                                                                                                                                                          5#',$./(00"#                                                                                                                                     %"*+0"*+*+9$"+&$
                                                                                                    4)8"H                                       I"L;"!0
                                                                                                                                                                                                                                                                                                                           36&"0*+9$8;5$
                                                                                                                                                                                                                                                                                                                            =*0:$-C-0')$
                                                                                                                                                                                                                                                                                                                            3-"9'$&"0" D$
                                                                                                                                              ./(00"#$B74                 ./(00"#$B74

                                                                                                                                                                                         .!36$%!&'#
                                                                                                                                                                                                                                                                                                                           "+"#CE*+9$3-'.$
                                                                                                                                                                                                                                                                                                                            "40*?*0C$#!9-
                                                                                                                                                                                                                      ,-"9'$/!+0'10
                                                                                                                                                                                                                                                                                                                                                 8*9:'.$;.&'.$5&"60"0*!+




                                                                                                                             2'-!3.4'$%!&'#
                                                                                                                                                                                 1'22'/"#!3
                                                                                                                                                                                 1'2'/""!
                                                                                                                            ./(00"#
                                                                                                                                                                                                                                                                                                                                 7#"!")0()*$




Fig. 3. Twittomender compliance with Generic Adaptation Framework
                                                                                                                                                                                                                                                                                                                            I"%',,")8+0(')!$+)8$
                                                                                                                                                                                                                                                                                                                              D"+#%&$#"!;20K2(!0
    – Recommendation of resources of a different nature and type employs a separation
      of domain and resource models. Considering conceptual representation irrespec-
      tively of the resource type facilitates the usage of different information sources and
      resource types, mostly dealing with their conceptual representation. Thus not only
      different types of information resources (e. g. text, images, tweets, audio, video,
      etc.) but also heterogeneous resources (e. g. news, archives, e-learning repositories,
      online-shops, etc.) can be recommended within a single framework based on the
      conceptual representation of a specific domain. On the other hand considering re-
      source and domain (conceptual structure) models separately takes a step towards
      solving the problem of the universal recommendations bridging the semantic gap.
      In this respect we have concept space and feature space with rankings that serves
      as a basis for transparent personalization irrespectively of the content type. This
      is perfectly shown in Twittomender where we consider tweets as a content base
      (resources) to provide user recommendations.
    – User modeling — the GAF UM consists of entities (or essentially concepts if we
      consider an overlay model) for which we store a number of attribute-value pairs. For
      each of these entities there may be different attributes, representing various aspects
      of user profile. It implies using both short- and long-term user preferences and
      implements a great variety of user preferences such as users’ tastes, interests, needs.
      In order to provide independence and flexibility of goals selection we distinguish
      goal model, which essentially can be used to recommend certain goals to follow
      based on the user preferences.
    – Contextualization — as in AHS context awareness will help to decouple and make
      AH and RS and applications less integrated with the environment. On the other
      hand, considering a context model will allow the system to be sensitive and adapt
      in many other ways, rather than following a certain number of fixed adaptation
      rules or recommendation patterns [1]. Thus we devise a separate Context Model
      which might be an overlay of DM (and UM correspondingly) and represent both
      usage context (additional properties defining how a particular item/concept from
      a domain model should be used, under which conditions) or user context (e. g.
      certain items can be shown or recommended only in a particular context or each
      item is augmented with the additional contextual explanation with helps to make
      recommendation list more trustworthy).


6     Conclusions, Lessons Learned and Future Work

The coming years will bring more use-cases of how AHS can provide adaptation and
recommendation, what techniques will be introduced, and what research areas will in-
troduce new technologies in its evolution. So far a study of existing approaches in rec-
ommender systems was done to comply with the layered structure of adaptive informa-
tion systems, which has resulted in an overlay presented in Fig. 3 providing an overview
of a Twitter-based recommender systems and a corresponding overlay of AHS layers
and adaptation process.
    In this paper we investigated a general-purpose AHS architecture , which brings us
new challenges to investigate the applicability of different recommendation approaches,
as well as new developments in adaptive information systems. However, as a result of
investigation now we can foresee some further developments and research strategies
of bringing recommendations to the field of AHS and thus try to come up with up-to-
date requirements for a modular composition of a GAF reference model which would
be able to serve as well as a start-up for the Recommender system development us-
ing heterogeneous information sources. At the same time case-study helped to identify
possible Twittomender improvements and extensions.
    As part of future work we plan to make some further developments to Twittomender,
one avenue which we are exploring is a mechanism to focus on users individual per-
sonal traits. What topics do user’s talk about? What types of people do they follow? We
plan to extend the Twittomender platform to cluster similar users based on these traits.
This will allow Twitter users to quickly navigate to the types of people they would
normally tend to gravitate towards or conversely show them the topics they would be
clustered into e.g Sports, Technology, etc. As part of continued qualitative tests of Twit-
tomender, we plan to extend our user trials. One test that will be carried out against
Twitter’s own recommendation system, this trial will check users satisfaction with the
recommendation of both systems.

7   Acknowledgements
This work has been supported by the NWO GAF: Generic Adaptation Framework
project, by Science Foundation Ireland under grant 07/CE/I1147 and by Amdocs Inc..

References
1. G. Adomavicius and A. Tuzhilin. Context-aware recommender systems. In Recommender
   Systems Handbook, pages 217–253. Springer, 2011.
2. P. Brusilovsky, I. Cantador, Y. Koren, T. Kuflik, and M. Weimer. Workshop on information
   heterogeneity and fusion in recommender systems (hetrec 2010). In X. Amatriain, M. Torrens,
   P. Resnick, and M. Zanker, editors, RecSys, pages 375–376. ACM, 2010.
3. S. Garcia Esparza, M. P. O’Mahony, and B. Smyth. On the real-time web as a source of
   recommendation knowledge. In Proceedings of the fourth ACM conference on Recommender
   systems, RecSys ’10, pages 305–308, New York, NY, USA, 2010. ACM.
4. J. Hannon, M. Bennett, and B. Smyth. Recommending twitter users to follow using con-
   tent and collaborative filtering approaches. In Proceedings of the fourth ACM conference on
   Recommender systems, RecSys ’10, pages 199–206, New York, NY, USA, 2010. ACM.
5. E. Knutov, P. D. Bra, and M. Pechenizkiy. Generic adaptation framework: a process-oriented
   perspective. J. Digit. Inf., 12(1), 2011.
6. Y. Koren and R. M. Bell. Advances in collaborative filtering. In Recommender Systems
   Handbook, pages 145–186. Springer, 2011.
7. O. Phelan, K. McCarthy, and B. Smyth. Using twitter to recommend real-time topical news.
   In Proceedings of the third ACM conference on Recommender systems, RecSys ’09, pages
   385–388, New York, NY, USA, 2009. ACM.
8. F. Ricci, L. Rokach, B. Shapira, and P. B. Kantor, editors. Recommender Systems Handbook.
   Springer, 2011.
9. J. Teevan, D. Ramage, and M. R. Morris. #twittersearch: a comparison of microblog search
   and web search. In I. King, W. Nejdl, and H. Li, editors, WSDM, pages 35–44. ACM, 2011.