You are on page 1of 6

Project Proposal

Social Recommender
Submitted to
Thomas M. Keating
Assistant Teaching professor
School of Computer Science
Carnegie Mellon University

Prepared by
Will Crichton
James Yang
Vibhav Ganesh
Xiyang Zhao

School of Computer Science


Carnegie Mellon University
October 14, 2013

Abstract
This document is a proposal to create a web based recommender that uses
information from your social network to suggest new things you might want to
try. The key difference between our proposed recommender and existing ones
is that our recommender will take into account the vast amount of information
stored in a persons Facebook network to find movies, books, etc that you might
be interested in. The user will simply allow our app to access their Facebook
network data and will immediately be able to view their top recommendations.
Our application will take into account the movies that your friends watch, the
strength of your friendships, and your feedback after you try the suggestions.
This proposal describes our approach to creating this application, our schedule
and an outline of our plan to complete the project.

Contents
1 Introduction

2 Plan

3 Benefits

4 Approach
4.1 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Project Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . .

4
4
5

5 Evaluation

6 Qualifications

7 Sources

Introduction

In this era of social networks, we can access and process vast quantities of
data about our friends, family, and even distant acquaintances in a matter of
seconds. Applications can now analyze a persons social life in a simple automated system in a manner unprecedented in either technical or social analysis
fields. In particular, sites such as Facebook provide a wealth of data on the
interests of its userslikes are now the ubiquitous term for the seal of approval
afforded to any likable object, be it books, movies, or even people. Here we
introduce a proposal for a web application that will perform a holistic analysis
of a users Facebook data to provide specialized recommendations for objects of
interest to the user. We will show that these recommendations are more likely
to effectively predict a users interest than general interest sites.

Plan

Our final product will consist of three main components: the algorithm for
processing the Facebook data and provided recommendations, the backend for
handling user requests and the Facebook API, and the user interface for interacting with the website. We will divide up the team and create each component
in parallel (see Methodology), combining our efforts and doing a final analysis
of the project at the conclusion of the semester (see Evaluation). By the end,
we will have an efficient and user-friendly product that gives specialized and
accurate recommendations on a range of categories.
To prepare for the algorithm component, our team surveyed the existing
literature on the subject of social recommendations and considered both the
pros/cons of social algorithms as well as the efficacy of individual systems proposed by different researchers. The algorithms we reviewed ranged from specific
analyses of social network data (Katz et. al) to more general graph traversal
methods (Xiang et. al). After considering these documents, we opted to use the
TidalTrust algorithm as a starting point for our development of a superior algorithm for social recommendations. Our review of the literature suggests that
even without improvement these algorithms consistently outperform traditional
venues that give recommendations for objects of interest. Given our current
base of research, we plan to improve upon the algorithms suggested in the literature by specializing them for the specific form of like data that we retrieve
from Facebook.
For the remainder of the application, our team will divide up the work evenly
and have a presentable form of the application ready before Thanksgiving Break.
In the course of our work, we have planned weekly meetings to ensure that
development stays consistent with the product vision of the team members.
Additionally, we will be using Github to ensure a clean development cycle.

Benefits

Although the members of our team have worked on many individual technical
aspects of the project, working to bring an application together across the entire
stack will provide us a solid base of experience in creating large-scale applications
from scratch as well as working with multiple team members for an extended
period of time. Technical and management skills include:
Mathematical analysis of graphs and understanding of social interactions
and recommendations
Architecting systems which require the coupling of abstract modules with
a concrete interface
Coordinating efforts across multiple parts of an application and combining
independent programs into a single cohesive system
More importantly, though, our application could greatly benefit anyone who uses
a social network by providing them an easy way to analyze their own interests
as well as the interests of friends.

Approach

4.1

Methodology

Our methodology covers the three main components of our applications:


1. Algorithm: we will represent the social network data we receive as a specialized weighted graph where each node represents a user and edges represent friendships. We weight each edge according to the strength of friendships and then determine whether a user will enjoy a particular item as
a weighted average of his friends likes and friendship strengths. This is a
modified implementation of the TidalTrust algorithm where we calculate
friendship strength based on a myriad of datum available via the Facebook
API such as posts, likes, photos, and so on.
2. Backend: we will be using Python with the Flask server microframework
to run the backend. The majority of the algorithm will also be written
using Python to allow the backend and algorithm components to easily
interface with each other. Flask will be set up such that the front-end
can send queries in real time to fetch data from the Facebook API and
incorporate it into our social analysis.
3. Frontend: our interface will be as simple as possible, providing the user
a way to log in to Facebook and then see a list of recommendations in
various categories like books or movies. Depending on how the algorithm
evolves throughout the course of the semester, we may add an options
dialogue to allow the user to customize how the algorithm analyses their
social graph.
4

4.2

Project Schedule

We plan to have each component in a usable state by the end of October


and then continually improve until the end of the semester. The front-end and
the back-end can easily be completed in a matter of weeksthe majority of our
efforts during November will be focused on modifying the algorithm to include
more Facebook data and provide more accurate recommendations.

Figure 1 : Gantt chart for our schedule

Evaluation

At the end of the semester, we will evaluate the project by determining if


each component achieves its stated purpose. The front-end must cleanly display
the given output of the social analysis algorithm as routed by the back-end to
the user. It should be as simple as possible and should also look appealing to
users. The back-end will effectively handle all server requests and operate as the
gateway between the user and our algorithm and Facebook. It should perform
these tasks in as little time as possible to maximize the user experience. The
algorithm, the most important part of our project, will not only give reasonable
recommendations for categories of interest defined in Facebook, but its recommending power will exceed that of traditional sites for ratings of books, movies,
and so on. Ultimately we will be evaluating not the mathematical complexity
of our algorithm but whether it truly completes the main goal of surpassing
existing recommendation venues.

Qualifications

Our team is composed of four Carnegie Mellon computer science sophomores


with a wide range of experience across industry and academia. We are:
Will Crichton
Worked as a web developer and systems administrator in five positions
across the technology industry.

Highly experienced as a front-end web developer and has solid knowledge


of the full stack
James Yang
Experienced in Python and Flask.
Has worked with Facebook Social Graph Framework.
Vibhav Ganesh
Experienced with Python and Flask.
Worked on recommendation algorithms at TripAdvisor
Xiyang Zhao
Software development and algorithms experience.
Is currently taking the Artificial Intelligence algorithms class at CMU.

Sources

Katz, Yarden, and Jennifer Golbeck. Social network-based trust in prioritized


default logic. In AAAI, vol. 6, pp. 1345-1350. 2006. (graph-based algorithm
for trust definition)
Xiang, Rongjing, Jennifer Neville, and Monica Rogati. Modeling relationship
strength in online social networks. In Proceedings of the 19th international
conference on World wide web, pp. 981-990. ACM, 2010. (determining level of
trust between users)

You might also like