weHelp: A Reference Architecture for Social Recommender Systems<br />Swapneel Sheth, NipunArora, Christian Murphy, Gail Ka...
Introduction<br /><ul><li>Recommender systems have been increasingly popular and ubiquitous – Amazon, Netflix, Facebook, P...
Most of the research has focused on aspects such as algorithms [Netb, ZP07], social network implications [ZC08], and secur...
Very little research in the area of system architectures for recommendation systems
Work such as [GNOT92] has focused on their own implementations, without aiming to propose a general purpose reference arch...
Introduction<br /><ul><li>We introduce weHelp– A Reference Architecture for Social Recommender Systems
Targeted towards community-driven recommender systems – systems where recommendations are derived automatically from the a...
Designed to be generic and domain agnostic
Intended to provide a template for designing a well-modularized system</li></ul>February 23, 2010<br />SSE 2010<br />3<br />
Background and Motivation<br /><ul><li>We are working on three otherwise unrelated research projects that share a similar ...
These systems were designed independently, and were not intended to exhibit a common architecture, but we realized that th...
Distilled a common architecture and the best practices that we discovered along the way into our reference architecture</l...
genSpace[MSKW08]<br /><ul><li>Plugin for geWorkbench [CFKW], an open-source Java-based system for integrated genomics targ...
geWorkbench includes more than 50 tools for genomics data analysis and visualizations
Can be very daunting for users who don’t know which tools to use, the order of using the tools, etc.
genSpace provides recommendations such as the most frequently occuring workflows including a given tool or starting with t...
Retina [MKLH09]<br /><ul><li>Community-driven recommendations targeted towards CS1 (intro to programming) courses
Students have little prior programming experience – may not be able to estimate the time required or understand the crypti...
Retina provides recommendations such as the time expected to spend on an assignment given the distribution of students' wo...
COMPASS [SAG+09]<br /><ul><li>“Community Driven Parallelization Advisor for Sequential Software” – targeted towards progra...
Parallelizing sequential code is hard
COMPASS provides recommendations on potential optimizations, based on previous optimizations performed by expert users
Uses a code matching and ranking algorithm for the recommendations</li></ul>February 23, 2010<br />SSE 2010<br />7<br />
Reference Architecture<br /><ul><li>Collection of best practices for a domain [HH00]
Blueprint and design template for building applications
Defines a common vocabulary with the goal of standardizing different independent implementations
Usually defines different modules and specifies the functionality of each module along with the interaction and interfaces...
Creates the potential for future components to be reused across systems
E.g., scientific workflow management [LLF+09] and web servers [HH00]</li></ul>February 23, 2010<br />SSE 2010<br />8<br />
weHelp Reference Architecture<br />February 23, 2010<br />9<br />SSE 2010<br />
The Watcher Module<br /><ul><li>Observer of User Activities
“Watches” what the user does and logs it
Explicit Observations
Upcoming SlideShare
Loading in …5
×

weHelp: A Reference Architecture for Social Recommender Systems

836
-1

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
836
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
40
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

weHelp: A Reference Architecture for Social Recommender Systems

  1. 1. weHelp: A Reference Architecture for Social Recommender Systems<br />Swapneel Sheth, NipunArora, Christian Murphy, Gail KaiserDepartment of Computer Science, Columbia UniversityNew York, NY 10027{swapneel, nipun, cmurphy, kaiser}@cs.columbia.edu<br />
  2. 2. Introduction<br /><ul><li>Recommender systems have been increasingly popular and ubiquitous – Amazon, Netflix, Facebook, Pandora
  3. 3. Most of the research has focused on aspects such as algorithms [Netb, ZP07], social network implications [ZC08], and security/privacy issues [BEKR07, MA07]
  4. 4. Very little research in the area of system architectures for recommendation systems
  5. 5. Work such as [GNOT92] has focused on their own implementations, without aiming to propose a general purpose reference architecture</li></ul>February 23, 2010<br />SSE 2010<br />2<br />
  6. 6. Introduction<br /><ul><li>We introduce weHelp– A Reference Architecture for Social Recommender Systems
  7. 7. Targeted towards community-driven recommender systems – systems where recommendations are derived automatically from the aggregate of logged activities conducted by the system’s users
  8. 8. Designed to be generic and domain agnostic
  9. 9. Intended to provide a template for designing a well-modularized system</li></ul>February 23, 2010<br />SSE 2010<br />3<br />
  10. 10. Background and Motivation<br /><ul><li>We are working on three otherwise unrelated research projects that share a similar theme: providing suggestions aimed to help users employ particular software tools in some better way
  11. 11. These systems were designed independently, and were not intended to exhibit a common architecture, but we realized that their architectures are very similar
  12. 12. Distilled a common architecture and the best practices that we discovered along the way into our reference architecture</li></ul>February 23, 2010<br />SSE 2010<br />4<br />
  13. 13. genSpace[MSKW08]<br /><ul><li>Plugin for geWorkbench [CFKW], an open-source Java-based system for integrated genomics targeted toward biomedical researchers
  14. 14. geWorkbench includes more than 50 tools for genomics data analysis and visualizations
  15. 15. Can be very daunting for users who don’t know which tools to use, the order of using the tools, etc.
  16. 16. genSpace provides recommendations such as the most frequently occuring workflows including a given tool or starting with the sequence of tools the user has already executed </li></ul>February 23, 2010<br />SSE 2010<br />5<br />
  17. 17. Retina [MKLH09]<br /><ul><li>Community-driven recommendations targeted towards CS1 (intro to programming) courses
  18. 18. Students have little prior programming experience – may not be able to estimate the time required or understand the cryptic compiler error messages
  19. 19. Retina provides recommendations such as the time expected to spend on an assignment given the distribution of students' work on the same assignment in previous semesters and the user's standing within the current class</li></ul>February 23, 2010<br />SSE 2010<br />6<br />
  20. 20. COMPASS [SAG+09]<br /><ul><li>“Community Driven Parallelization Advisor for Sequential Software” – targeted towards programmers
  21. 21. Parallelizing sequential code is hard
  22. 22. COMPASS provides recommendations on potential optimizations, based on previous optimizations performed by expert users
  23. 23. Uses a code matching and ranking algorithm for the recommendations</li></ul>February 23, 2010<br />SSE 2010<br />7<br />
  24. 24. Reference Architecture<br /><ul><li>Collection of best practices for a domain [HH00]
  25. 25. Blueprint and design template for building applications
  26. 26. Defines a common vocabulary with the goal of standardizing different independent implementations
  27. 27. Usually defines different modules and specifies the functionality of each module along with the interaction and interfaces between the different modules
  28. 28. Creates the potential for future components to be reused across systems
  29. 29. E.g., scientific workflow management [LLF+09] and web servers [HH00]</li></ul>February 23, 2010<br />SSE 2010<br />8<br />
  30. 30. weHelp Reference Architecture<br />February 23, 2010<br />9<br />SSE 2010<br />
  31. 31. The Watcher Module<br /><ul><li>Observer of User Activities
  32. 32. “Watches” what the user does and logs it
  33. 33. Explicit Observations
  34. 34. Users can annotate/tag the data and activities
  35. 35. Implicit Observations
  36. 36. Usually a better option – unobtrusive, no effort for users
  37. 37. E.g., counting the number of times a link was clicked
  38. 38. Generate a parseable representation of user activities</li></ul>February 23, 2010<br />SSE 2010<br />10<br />
  39. 39. The Watcher Module<br /><ul><li>Optional Functionality
  40. 40. Users can provide extra domain specific information
  41. 41. Users can rate certain activities</li></ul>February 23, 2010<br />SSE 2010<br />11<br />
  42. 42. The Watcher Module - Amazon<br /><ul><li>Observes the pages visited by a user
  43. 43. E.g., if a user wants to buy an MP3 player, the Watcher can keep track of different MP3 players looked at and details such as vendor, color, etc.
  44. 44. Users can provide explicit information such as rating of products and reviews</li></ul>February 23, 2010<br />SSE 2010<br />12<br />
  45. 45. The Watcher Module - genSpace<br /><ul><li>Observe the users’ activities as they use geWorkbench
  46. 46. Log information such as type of analysis, name of dataset, and the current time
  47. 47. Data can be logged with user names, anonymously, or not at all
  48. 48. All users are treated equally – no differentiation between “novice users” and “expert users”</li></ul>February 23, 2010<br />SSE 2010<br />13<br />
  49. 49. The Watcher Module – Retina<br /><ul><li>Observe and record students’ compilation attempts and compiler errors
  50. 50. Log information such as type of error, file name, and line number
  51. 51. Data can be logged with user names, anonymously, or not at all
  52. 52. All users are treated equally – no differentiation between “novice users” and “expert users”</li></ul>February 23, 2010<br />SSE 2010<br />14<br />
  53. 53. The Watcher Module – COMPASS<br /><ul><li>COMPASS does differentiate between “novice users” and “expert users”
  54. 54. Watcher module targeted towards expert users
  55. 55. Users select “hot-spots” for parallelization and then write the corresponding parallel program
  56. 56. Watcher module stores both versions
  57. 57. Users can provide extra domain information such as target architecture and additional comments</li></ul>February 23, 2010<br />SSE 2010<br />15<br />
  58. 58. The Learner Module<br /><ul><li>Infers patterns and/or recommendations
  59. 59. Uses the data provided by the Watcher module
  60. 60. Can use a simple rule-based system, data aggregation, or complex data mining algorithms</li></ul>February 23, 2010<br />SSE 2010<br />16<br />
  61. 61. The Learner Module<br /><ul><li>Optional Functionality
  62. 62. Use different Ranking Algorithms
  63. 63. Weigh user data in different ways such as weighing data from experts more than data novice users
  64. 64. Generate overall system statistics
  65. 65. Include optimizations such as caching of data and results</li></ul>February 23, 2010<br />SSE 2010<br />17<br />
  66. 66. The Learner Module - Amazon<br /><ul><li>Uses the information recorded by the Watcher module to infer patterns and recommendations
  67. 67. E.g., suggest alternate products to buy depending on the products viewed by the user
  68. 68. Generates statistics such as the highest rated products and the most popular products in different categories</li></ul>February 23, 2010<br />SSE 2010<br />18<br />
  69. 69. The Learner Module - genSpace<br /><ul><li>Uses data aggregation to provide recommendations
  70. 70. E.g., the next best tool to use, based on popular workflows and the tools used by the user so far
  71. 71. Uses an exponential time decay formula [CS03] to weigh recent user data more heavily
  72. 72. Generates statistics such as the most popular tools and the most popular workflows</li></ul>February 23, 2010<br />SSE 2010<br />19<br />
  73. 73. The Learner Module - Retina<br /><ul><li>Uses a rule-based system to provide recommendations
  74. 74. E.g., the amount of time a student can expect to spend on an assignment, based on the student’s past performance and the time taken by others for the same assignment in the past
  75. 75. Generates statistics such as the most common compilation errors and the average time spent on the assignment for all students, which can be useful for instructors to gauge the difficulty of an assignment
  76. 76. Retina also helps instructors by providing a picture of particular difficulties faced by the current class, to help them refine their lectures </li></ul>February 23, 2010<br />SSE 2010<br />20<br />
  77. 77. The Learner Module - COMPASS<br /><ul><li>Uses a code matching and ranking algorithm to provide recommendations
  78. 78. E.g., code parallelizations, based on the serial code under consideration and past parallelizations performed by users
  79. 79. COMPASS uses a code matching algorithm on the key “before” entries in its knowledge base and then a ranking algorithm to prioritize the corresponding value “after” entries </li></ul>February 23, 2010<br />SSE 2010<br />21<br />
  80. 80. The Advisor Module<br /><ul><li>Provides recommendations to the users
  81. 81. Uses the data from the Learner module
  82. 82. Implemented using a variety of different UI options
  83. 83. Pulled Recommendations
  84. 84. Users can ask for recommendations when needed most
  85. 85. Pushed Recommendations
  86. 86. More dynamic, can take into account users’ current activities</li></ul>February 23, 2010<br />SSE 2010<br />22<br />
  87. 87. The Advisor Module<br /><ul><li>Care should be taken to avoid the “Clippy Effect” [Gal06]
  88. 88. Optional Functionality
  89. 89. Allow the user to rate the suggestions
  90. 90. Users can provide feedback to the recommender system and to other users</li></ul>February 23, 2010<br />SSE 2010<br />23<br />
  91. 91. The Advisor Module - Amazon<br /><ul><li>Provides recommendations using HTML pages as UI
  92. 92. E.g., other similar products viewed by users who viewed this product </li></ul>February 23, 2010<br />SSE 2010<br />24<br />
  93. 93. The Advisor Module - genSpace<br /><ul><li>Provides recommendations using Java Swing as UI
  94. 94. Provides both pushed and pulled recommendations
  95. 95. Users can ask for recommendations such as workflows that start with a certain tool
  96. 96. Real-time suggestions such as what’s the next best tool to use, based on the users’ current activities
  97. 97. Users can provide feedback by rating tools and workflows and by writing comments on an affiliated web portal</li></ul>February 23, 2010<br />SSE 2010<br />25<br />
  98. 98. The Advisor Module - Retina<br /><ul><li>Provides recommendations using Instant Messaging Applications as UI
  99. 99. Provides both pushed and pulled recommendations
  100. 100. Users can ask for recommendations such as the amount of time needed for the assignment
  101. 101. Real-time recommendations based on the students’ current activities such as if a student is taking too long on a particular assignment</li></ul>February 23, 2010<br />SSE 2010<br />26<br />
  102. 102. The Advisor Module - COMPASS<br /><ul><li>Provides recommendations as stylized templates known as ‘sketches’
  103. 103. Sketches are shown as graphical overlays on the existing source code
  104. 104. Users can chose whether to accept the recommendation as is, or modify it to suit their needs - this can be used as indirect feedback to the system</li></ul>February 23, 2010<br />SSE 2010<br />27<br />
  105. 105. Other Components<br /><ul><li>Database
  106. 106. Used as a data store for user activities
  107. 107. Security and Privacy Layer
  108. 108. Recommendations provided by the system may be used to invade the privacy of users by inferring how a particular user uses the system
  109. 109. This layer provides the functionality to ensure that the users’ privacy is maintained and security threats are mitigated
  110. 110. User Cloud
  111. 111. Can be used to differentiate users into groups</li></ul>February 23, 2010<br />SSE 2010<br />28<br />
  112. 112. weHelp Reference Architecture<br />February 23, 2010<br />29<br />SSE 2010<br />
  113. 113. Limitations and Future Work<br /><ul><li>Knowledge-based Recommendation Systems
  114. 114. Use domain knowledge to provide recommendations
  115. 115. Similar to Expert Systems, may not utilize any aspects of social networking
  116. 116. E.g., ACE [Mei98] and [MFS09]
  117. 117. Cannot be mapped to the weHelp Reference Architecture
  118. 118. Security and Privacy Layer
  119. 119. Expand on and provide more concrete modules</li></ul>February 23, 2010<br />SSE 2010<br />30<br />
  120. 120. Conclusion<br /><ul><li>weHelp: A Reference Architecture for Social Recommender Systems
  121. 121. Designed to be generic and domain agnostic
  122. 122. Provides a template for designing modularized recommender systems
  123. 123. Could lead to standard interfaces and interoperability among recommender system components</li></ul>February 23, 2010<br />SSE 2010<br />31<br />
  124. 124. Acknowledgements<br /><ul><li>ArisFloratos and KiranKeshav - genSpace
  125. 125. SaharHasan - Retina
  126. 126. SimhaSethumadhavan – COMPASS
  127. 127. Lauren Wilcox
  128. 128. The authors are members of the Programming Systems Lab, funded in part by NSF CNS-0905246, CNS-0717544, CNS-0627473 and CNS-0426623, and NIH 1 U54 CA121852-01A1</li></ul>February 23, 2010<br />SSE 2010<br />32<br />
  129. 129. weHelp: A Reference Architecture for Social Recommender Systems<br />Swapneel Sheth, NipunArora, Christian Murphy, Gail KaiserDepartment of Computer Science, Columbia UniversityNew York, NY 10027{swapneel, nipun, cmurphy, kaiser}@cs.columbia.edu<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×