Collaborative filtering methods on a very sparse reddit recommendation dataset
Loading...
URL
Journal Title
Journal ISSN
Volume Title
School of Science |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
Date
2013
Department
Major/Subject
Informaatiotekniikka
Mcode
T-61
Degree programme
Language
en
Pages
vii + 48
Series
Abstract
The research question in this thesis concerns how accurately it is possible to estimate users' future votes based on their voting history when votes can only be for or against (up votes or down votes). This estimation is done on a large and very sparse dataset of over 23 million votes gathered from the website Reddit, which is a very popular social news and entertainment website where users may vote content up or down. Since over 84% of all the votes are up votes, down vote estimation is made even more difficult. Similar to the Netflix Prize, collaborative filtering (CF) methods can be used to approach this problem. The two main approaches in CF are neighbourhood models and latent factor models. Models using both approaches are implemented and tested in this thesis. Neighbourhood approach is implemented by using a k-nearest-neighbour (k-NN) classifier with 3 different types of feature vectors and latent factor models are represented by the classical Singular Value Decomposition (SVD) and more advanced Variational Bayesian Principal Component Analysis (VBPCA). While both SVD and VBPCA are implemented with regularization, VBPCA also uses Bayesian inference methods by adding the noise term into the model and introducing prior distributions over the model parameters. For the experiments, the full Reddit dataset is pre-processed into 3 different sized datasets (k-cores), where the biggest dataset represents the full dataset after removing some noise and outliers and the smallest dataset represents the core of the data, i.e., the most active users and the most voted links. The middle dataset has some properties from both the small and the big dataset. All models are tested for each dataset and the results are measured using different metrics, most notably RMSE. VBPCA and link based k-KN model are shown to perform best on all datasets. While VBPCA is better in terms of down vote estimation for the small and the middle datasets, link-based k-NN performs best on the big dataset.Diplomityön tutkimuskysymys on, kuinka tarkasti on mahdollista estimoida käyttäjien tulevaa äänestyskäyttäytymistä heidän äänestyshistoriansa perusteella, kun äänet ovat joko puolesta tai vastaan. Estimointi suoritetaan laajalle ja hyvin harvalle data-aineistolle, joka koostuu 23 miljoonasta äänestä Reddit-sivustolta. Koska yli 84 % äänistä on puolesta, vastaan olevien äänien estimointi on vielä vaikeampaa. Samaten kuin Netflix prize -kilpailussa, yhteistoiminnallisia suodattamismenetelmiä (collaborative filtering, CF) voi käyttää tämän ongelman ratkaisuun. Kaksi päälähestymistapaa CF-menetelmillä ovat naapurusto- ja latenttimuuttujamallit, joista kummastakin toteutetaan ja testataan menetelmiä. Naapurustomenetelmä toteutetaan k:n lähimmän naapurin (k-NN) menetelmän avulla ja aliavaruusmenetelmistä käytetään esimerkkinä pääakselihajotelmaa (SVD) sekä variaatioapproksimoitua pääkomponenttianalyysia (VBPCA). Vaikka molemmat SVD ja VBPCA on toteutettu regularisaatiolla, VBPCA käyttää myös bayesilaista päättelyä lisäämällä kohinatermin malliin sekä mallintamalla priorijakaumat mallin parametreille. Kokeita varten koko Reddit-aineisto esikäsitellään kolmeksi erikokoiseksi aineistoksi, joista isoin vastaa melkein koko Reddit-aineistoa kun datasta on ensin poistettu kohinaa ja poikkeavia havaintoja. Pienin aineisto vastaa koko aineiston ydintä, siis kaikkein aktiivisimpia käyttäjiä ja äänestetyimpiä linkkejä. Keskimmäinen aineisto sisältää ominaisuuksia sekä pienestä että isosta aineistosta. Kaikki menetelmät ajetaan kaikille aineistoille ja suorituskykyä mitataan eri mittareilla, pääasiassa keskineliövirheen neliöjuurella (RMSE). Kokeissa havaitaan, että VBPCA ja linkkipohjainen k-NN osoittautuvat testattavista menetelmistä parhaiksi kaikille aineistoille. Vaikka VBPCA onkin parempi kahdelle pienimmälle aineistolle, linkkipohjainen k-NN on parempi suurimmalle aineistolle.Description
Supervisor
Oja, ErkkiThesis advisor
Nieminen, IlariKeywords
recommender systems, suositusjärjestelmät, collaborative filtering, yhteistoiminnallinen suodattaminen, sparse dataset, harva-data, singular value decomposition, pääakselihajotelma, variational Bayesian PCA, pääkomponenttianalyysi, k-nearest neighbors, stochastic gradient descent, Reddit, netflix