The document describes a new movie rating dataset called MovieTweetings that was collected from Twitter posts containing "I rated #IMDb". The dataset addresses the problem of outdated public movie rating datasets by providing a continuously updated collection of user movie ratings and metadata sourced from Twitter and IMDb. It contains over 120,000 ratings for nearly 12,000 movies from around 20,000 users. Some example insights from the dataset include the most highly rated recent releases and lists of highest/lowest averaged rated films. The dataset is publicly available to support recommender systems research.
2. Research datasets
Recsys research needs datasets
To evaluate, experiment and demonstrate
I need datasets
Available for download:
MovieLens 100K
MovieLens 1M
MovieLens 10M
ConclusionResultsAbout DataTwitter - IMDbIntro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013 2
4. Research datasets
Recsys research needs datasets
To evaluate, experiment and demonstrate
I needed datasets
Available for download:
MovieLens 100K ~ most recent movie: 1998
MovieLens 1M ~ most recent movie: 2000
MovieLens 10M ~ most recent movie: 2008
I need up-to-date movie ratings
ConclusionResultsAbout DataTwitter - IMDbIntro
4Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
5. Finding data
Data is all around us
5
ConclusionResultsAbout DataTwitter - IMDbIntro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
9. Finding data
Data is all around us
BUT extremely unstructured
What we want:
1::122::5::838985046
1::185::5::838983525
1::231::5::838983392
1::292::5::838983421
1::316::5::838983392
(user, item, rating, time)
9
ConclusionResultsAbout DataTwitter - IMDbIntro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
14. Structured data
“I rated Death Proof 10/10 #IMDb”
• User
• Item (movie)
• Rating
• Hashtag
14
ConclusionResultsAbout DataTwitter - IMDb
Intro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
15. Structured data
Search Twitter for
“I rated #IMDb”
Bingo!
15
ConclusionResultsAbout DataTwitter - IMDb
Intro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
16. Collecting data
We query the Twitter API for “I rated #IMDb”
Extract relevant information
Cross-reference with IMDb for extra genre data
16
ConclusionResultsAbout DataTwitter - IMDb
Intro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
18. Your data
MovieTweetings dataset available on GitHub
(https://github.com/sidooms/MovieTweetings)
Find it on the RecSys Wiki (category datasets)
Latest
All ratings
Automagically updated daily
Snapshots
Fixed portion of dataset
Added manually when appropriate
10K, 20K, 30K, 40K, 50K, 100K
DISCLAIMER: Depending on Twitter API, IMDb apps and me!
18
ConclusionResultsAbout DataTwitter - IMDbIntro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
19. Some numbers
MovieTweetings MovieLens 100K MovieLens 1M MovieLens 10M
Ratings 121,404 100,000 1,000,209 10,000,054
Users 19,464 943 6,040 71,567
Items 11,655 1682 3,900 10,681
19
(Results on September 30, 2013)
ConclusionResultsAbout DataTwitter - IMDbIntro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
20. Some fun
Top 3 most rated movies
1. Iron Man 3 (2013)
2. Man of Steel (2013)
3. World War Z (2013)
Top 3 AVG rated movies (min 20 ratings)
1. The Shawshank Redemption (1994)
2. LOTR: The Return of the King (2003)
3. The Dark Knight (2008)
Bottom 3 worst AVG rated movies (min 20 ratings)
3. Scary MoVie (2013)
2. Piranha 3DD (2012)
1. Cosmopolis (2012)
20
ConclusionResultsAbout DataTwitter - IMDbIntro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
21. Some conclusions
Outdated public datasets
Social media = Unstructured data available
Structured rating data through Twitter – IMDb
MovieTweetings: our Movie Rating Dataset
Always up-to-date
Includes most recent and most relevant movies
Unfiltered rating data
Publicly available
Death Proof (2007) really is an awesome movie
21
ConclusionResultsAbout DataTwitter - IMDbIntro
Oct. 12, 2013 Simon Dooms - Ghent University - CrowdRec 2013
I am Simon Dooms from Ghent University, Belgium and I will be presenting you the MovieTweetings dataset which is a Movie Rating dataset collected from Twitter.
Elephant in the room, research loves datasets. Especially recsys research needs datasets, we need it to evaluate our algorithms, do experimentation and also when we want to demonstrate our final recommender systems, we need data to drive the engines.I am no different, my research also needed datasets. For my PhD I am working with hybrid recommender systems and I focus on the movie domain because movies are fun. So I needed data to test out new configurations and algorithms and did what we all do … download the movielens dataset (which comes in three sizes) and insert it into the system. Experiments went well, evaluations were okay, but then I started visually inspecting the end results (so the recommendation lists) of my system.
This is what I got. I should really watch Braveheart, Forrest Gump and Liar Liar. Three very good suggestions but they also illustrate a system. Because I use old datasets I can only recommend old movies. This is not a problem for my personal experiments and offline evaluations. I can calculate all the RMSE I want, but this IS a problem when I want to take my system out of the lab and show it to actual users, maybe run some user-centric experiments.
We should be able to recommend new and interesting movies, but when I inspected the datasets I was working with, I realized that was impossible. When we use the Movielens 100K dataset, we are in fact working with data that is 15 years old. So the most recent movies we can recommend are Blade and ‘Saving Private Ryan’…The bigger MovieLens datasets are somewhat more recent, but still, even 2008 is 5 years ago. The year of the first twilight movie, and the first ‘Iron Man’.So if I want to build a recommender system that produces relevant results, I need up-to-date movie ratings.
So I started to look for rating data. And luckily for me, in these modern times we are living in … data is all around us.
For example take this movie IMDB page. While we get all kinds of information on the movie, there is also preference information to be found, like the fact that the movie is in a top 5000 list, has a total rating of 7.1 , more than 7000 people liked it on Facebook, it had some nominations … and so on.
For another example we go to Facebook, search for the same movie, and this page comes up. Again some basic information about the movie, but also rating information like: more than 300 thousand people who liked this movie/topic. I can click on this link and I get a new screen listing those 300 thousand users.
Yet another source is Twitter, when I search for tweets containing my movie title, I get lists like this one. All tweets contain the movie title, but in fact only two are actual opinions about the movie. Some are rather neutral or just accidentally happen to contain the movie title, like this second one here.
So data is all around us … But it is extremely unstructured and hard to interpret.What we want is a nice list of users, expressing numerical ratings for items with timestamps. So we restart our quest for data and this time we focus on structured data.
Eventually we found our holy grail in the social share feature integrated in IMDb. You see them everywhere on the web nowadays, the ‘share’ button allowing you to advertise content to your social network. Very often when you click on these things, the original website already makes a suggestion as to what you should write. And luckily for us, IMDb has a very interesting suggestion…
At least it does so for its mobile client apps. They have an app for every major platform, but I have an iPhone, so we will be taking the iPhone tour.
I am on my iPhone and I start the IMDb app… I get this homescreen. It allows me to search for movies, so I search for my movie and get this screen…Again, just like the on the website, we see some basic information and the option to rate this movie… Now I click the rate this link
…and get to the rating screen where I can select my rating. And most importantly, I can choose to share my rating.After saving I get the option to post to Twitter….
….which brings me to the most interesting screenshot. The IMDb app pre-formats my tweet in a structured way. ‘I rated Death Proof 10 out of 10 hashtag #IMDB’. So this tweet actually contains all we need to know, it has a user, item, rating and a hashtag making it easier for us to find the tweets.
Now to find structured ratings, all we need to do, is go to Twitter and find all tweets containing ‘I rated’ and the hashtag #IMDB. E voila, behold the jackpot of ratings. Now all tweet results are relevant ratings and contain all the information we need to build ourselves an interesting rating dataset.
On a daily basis we query the Twitter API for tweets containing ‘I rated #IMDB’ and we extract the relevant information. We cross-reference this with the IMDb page to provide also some extra genre data just like MovieLens does.
The end result of our efforts is three files ratings, movies and users. In the Rating file we have users ids, itemids, ratings and timestamps presented in the MovieLens style to make the dataset compatible with code working on MovieLens data.Note however that the ratings are on a 1 to 10 scale as is custom for IMDB, and not 1 to 5 as MovieLens.For item id we use the unique IMDB id which can direct us easily to the relevant IMDB information page by adding the suffix.The movies file contains again much like the MovieLens dataset, some basic info on the movie like title, year and genresThen finally the user file, in this file we make the connection between the internal user id we used in our ratings file and the true Twitter ID of the user. We use the ID and not the username handle because handles can be changed, but the user id will always remain the same.
I use this dataset for my own research, but I figured it could probaly be interesting for the entire recsys community and so I made the dataset available online through the GitHub Platform. Information about the dataset is also added to the RecSys wiki, so you can find the dataset in a number of ways.The data itself is made available in two formats, latest and snapshots. The latest repository will always contain all the data and is automagically updated daily.And there are the snaphots which are just fixed portions of the dataset to make it easier to repeat experiments and refer to the dataset in research. Currently we have snapshots of 10K up to 100K ratings.Little disclaimer I have to add. This continuation of this dataset is currently depending on the Twitter API, the functionality of the IMDb apps and my effort and time. I will do my best to maintain this as long as possible but there is no way of knowing how long that will be.
Okay time for some numbers, we started building this dataset 7 months ago and this is how much ratings we have gathered since then. Currently we are adding between 500 and 600 new ratings to the dataset each day and so at the current pace we have collected about 120K ratings.If we compare numbers with MovieLens, we can see that our data is much sparser because of the high number of users and items contained in the dataset. Our dataset is unfiltered so we also have users with less than 20 ratings.
Time to wrap up and conclude this presentation.We started with the notion that public datasets are still very often used in research, but they are becoming outdated and fail to incorporate new and relevant items.Lots of data could be found in social media, but almost always dubious and unstructured, so hard to use in our systems.We found structured data through the social share features of the IMDB platform and build ourselves a new movie rating dataset based on that.The dataset is updated daily…will therefore always contain the most recent and relevant movies …provides unfiltered rating data…and is publicly available….And last but not least, you should really watch the movie Death Proof, it is awesome. Thank you.