<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Reproducing and Prototyping Recommender Systems in R</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Ludovik</forename><forename type="middle">C</forename><surname>¸oba</surname></persName>
							<email>lucoba@unibz.it</email>
							<affiliation key="aff0">
								<orgName type="institution">Free University of Bozen-Bolzano</orgName>
								<address>
									<postCode>39100</postCode>
									<settlement>Bozen-Bolzano</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Panagiotis</forename><surname>Symeonidis</surname></persName>
							<email>psymeonidis@unibz.it</email>
							<affiliation key="aff0">
								<orgName type="institution">Free University of Bozen-Bolzano</orgName>
								<address>
									<postCode>39100</postCode>
									<settlement>Bozen-Bolzano</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Markus</forename><surname>Zanker</surname></persName>
							<email>markus.zanker@unibz.it</email>
							<affiliation key="aff0">
								<orgName type="institution">Free University of Bozen-Bolzano</orgName>
								<address>
									<postCode>39100</postCode>
									<settlement>Bozen-Bolzano</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Reproducing and Prototyping Recommender Systems in R</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">5FFEDEE58CE3C3E8610DA492FC4E6013</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T22:05+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In this paper we describe rrecsys, an open source extension package in R for rapid prototyping and intuitive assessment of recommender system algorithms. Due to its wide variety of implemented packages and functionalities, R language represents a popular choice for many tasks in Data Analysis. This package replicates the most popular collaborative filtering algorithms for rating and binary data and we compare results with the Java-based LensKit implementation for the purpose of benchmarking the implementation. Therefore this work can also be seen as a contribution in the context of replication of algorithm implementations and reproduction of evaluation results. Users can easily tune available implementations or develop their own algorithms and assess them according to the standard methodology for offline evaluation. Thus this package should represent an easily accessible environment for research and teaching purposes in the field of recommender systems.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>R represents a popular choice in Data Analytics and Machine Learning. The software has low setup cost and contains a large selection of packages and functionalities to enhance and prototype algorithms with compact code and good visualization tools. Thus R represents a suitable environment for exploring the field of recommender systems. Therefore we present and contribute a novel R package that reproduces several of the most popular recommender algorithms for Likert scaled as well as binary rating values. The functionality of this framework is mainly focused on prototyping and educational purposes due to the compact code representation and the interactive way of invoking and visualizing results in R. We took advantage of the large selection of packages in R to implement the algorithms included in our package. We achieve competing performance due to highly vectorized and mixed R/C++ implementations.</p><p>We therefore introduce rrecsys <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2]</ref> by presenting a general overview of the implemented algorithms and the evaluation methodology. A few code examples are included in an appendix. Furthermore, we proceed by comparing results of rrecsys with those of the Lenskit library. We also include evidence on runtime performance that document the efficient implementation of algorithms in R.</p><p>rrecsys has a modular structure as well as includes expansion capabilities. The core of the package includes the implementation of several popular algorithms, an evaluation component and a couple of auxiliary parts for data analysis and convergence detection. Next we concisely describe the included algorithms.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Algorithms</head><p>Baseline and Popularity: The included baseline predictors are the global mean rating (Global Average), item's mean rating (Item Average), user's mean ratings (User Average) as well as an unpersonalized Most Popular method that determines item popularity based on the total number of (positive) ratings.</p><p>Item Based K-nearest neighbors: Given a target user and her positively rated items, the algorithm will identify the k-most similar items for each target a and will rank them according to aggregated similarities with the different targets as described by Sarwar et al. <ref type="bibr" target="#b13">[14]</ref>. For similarity measures we develop the cosine similarity and the adjusted cosine similarity.</p><p>Items a and b are considered as rating vectors a and b in the user space. Cosine similarity measures the cosine angle between those vectors:</p><formula xml:id="formula_0">sim(a, b) = cos(a, b) = a • b |a| * |b|<label>(1)</label></formula><p>The adjusted cosine similarity is computed by offsetting the user average on each co-rated pair on two item vectors. If I a and I b is the set of users that rated correspondingly item a and b the adjusted cosine similarity is measured as:</p><formula xml:id="formula_1">sim(a, b) = u∈Ia∩I b (Rua − Ru) * (R ub − Ru) u∈Ia∩I b (Rua − Ru) 2 * u∈Ia∩I b (R ub − Ru) 2<label>(2)</label></formula><p>Where R u is the average rating of user u, computed as:</p><formula xml:id="formula_2">Ru = i∈Iu Rui |Iu|<label>(3)</label></formula><p>Where I u is the set of items rated by user u.</p><p>Once similarities among all items are computed a neighborhood might be formed by choosing the items with the highest similarity value. Prediction over a target user u and item a are calculated as the weighted sum <ref type="bibr" target="#b13">[14]</ref>.</p><formula xml:id="formula_3">pu,a = all similar items,k (s a,k * R u,k ) all similar items,k s a,k<label>(4)</label></formula><p>User Based K-nearest neighbors: Herlocker et al. <ref type="bibr" target="#b6">[7]</ref> proposed the algorithm that finds similarities among users instead among items. In our implementation we consider the cosine similarity and the Pearson correlation.</p><p>User u and v are considered as rating vectors u and v in the item space. Cosine similarity measures the cosine angle between those vectors using Formula 1</p><p>Instead the Pearson correlation is measured by offsetting the user average on co-rated pairs among the user vectors:</p><formula xml:id="formula_4">sim(u, v) = P earson(u, v) = i∈Iu∩Iv (Rui − Ru) * (Rvi − Rv) i∈Iu∩Iv (Rui − Ru) 2 * i∈Iu∩Iv (Rvi − Rv) 2 (5)</formula><p>Where R u and R v are correspondingly the average ratings of user u and user v, computed like in Formula 3.</p><p>Once similarities among all items are computed a neighborhood might be formed by choosing the items with the highest similarity value. Prediction over a target user u and item a are calculated as the weighted sum <ref type="bibr" target="#b13">[14]</ref>:</p><formula xml:id="formula_5">pu,a = Ru + all similar items,k (s a,k * R u,k ) all similar items,k s a,k<label>(6)</label></formula><p>Weighted Slope One: proposed by Lemire et al <ref type="bibr" target="#b9">[10]</ref> performs prediction for a missing rating rui for user u on item i as the following average:</p><formula xml:id="formula_6">rui = ∀r uj (devij + ruj)cij ∀r uj cij .<label>(7)</label></formula><p>The average deviation rating dev ij between co-rated items is defined by:</p><formula xml:id="formula_7">devij = ∀u∈users rui − ruj cij . (<label>8</label></formula><formula xml:id="formula_8">)</formula><p>Where c ij is the number of co-rated items between items i and j and r ui is an existing rating for user u on item i. The Weighted Slope One takes into account both, information from users who rated the same item and the number of observed ratings. Simon Funk's SVD: Matrix factorization methods are used in recommender systems to derive a set of latent factors, from the user × item rating matrix, to characterize both users and items by this vector of factors. The useritem interaction are modeled as inner product of the latent factors space <ref type="bibr" target="#b3">[4]</ref>. Accordingly each item i will be associated with a vector of factors V i , and each user u is associated with a vector of factors U u . An approximation of the rating of a user u on an item i can be derived as the inner product of their factor vectors:</p><formula xml:id="formula_9">Rui = µ + bi + bu + Uu * V T i (9)</formula><p>Where µ is the overall average rating and b u and b i indicate the deviation due to user u and item i from the mean rating.</p><p>The U(user) and V(item) factor matrices are cropped to k features and initialized at small values. Each feature is trained until convergence (where convergence specifying the number of updates to be computed on a feature before considering it converged, it can be either chosen by the user or calculated automatically by the package). On each loop the algorithm predicts Rui , calculates the error and the factors are updated as follows:</p><formula xml:id="formula_10">eui = Rui − Rui (<label>10</label></formula><formula xml:id="formula_11">)</formula><formula xml:id="formula_12">V ik ← V ik + λ * (eui * U uk − γ * V ik )<label>(11)</label></formula><formula xml:id="formula_13">U uk ← U uk + λ * (eui * V ik − γ * U uk )<label>(12)</label></formula><p>The attribute λ represents the learning rate, while γ corresponds to the regularization term.</p><p>In addition, the following two algorithms address the One Class Collaborative Filtering problem (OCCF).</p><p>Bayesian Personalized Ranking: The algorithm has been introduced by <ref type="bibr" target="#b11">[12]</ref>. It turns the OCCF into a ranking problem by implicitly assuming that users prefer items they have already interacted with another time. Instead of applying rating prediction techniques, BPR ranks candidate items for a user without calculating a "virtual" rating. The overall goal of the algorithm is to find a personalized total ranking &gt; u ⊂ I 2 for any user u ∈ U sers and pairs of items (i, j) ∈ I 2 that meet the properties of a total order (totality, anti-symmetry, transitivity).</p><p>Weighted Alternated Least Squares: We compute a low-rank approximation matrix R = ( Rij ) m×n = U * V T , where U and V are the usual feature matrix cropped to k features as introduced by <ref type="bibr" target="#b10">[11]</ref>. Weighted low-rank aims to determine R such that minimizes the Frobenius loss of the following objective function:</p><formula xml:id="formula_14">L( R) = L(U, V ) = ij Wij(Rij − Ui * V T j ) 2 + λ * ( Ui 2 F + Vi 2 F )<label>(13)</label></formula><p>The regularization term weighted by λ is added to prevent over-fitting. The expression . F denotes the Frobenius norm. The alternated least square algorithms optimization process solves partial derivatives of L with respect to each entry U and V , ∂L(U,V ) ∂Ui = 0 with fixed V and ∂L(U,V ) ∂Vj = 0 with fixed U , to compute U i and V i . Then U and V are initialized with random Gaussian numbers with mean zero and small standard deviation and are updated until convergence. The matrix W = (W ij ) m×n ∈ R m×n + is a non-negative weight matrix that assigns confidence values to observations (hence the name weighted ALS).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Recommendation List</head><p>The library is currently distributing two different methodologies for computing the top-N recommendation. The first is the Highest Predicted Ratings (HPR), which proposes a sorted list based on the highest computed rating values by an algorithm. The second method is the Most Frequent (MF), that determines the top-N list based on the most frequent items available in the neighborhood of an user or item. This methodology is known to produce better performance than HPR <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b14">15]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Evaluation</head><p>The evaluation module is based on the k-fold cross-validation method. A stratified random selection procedure is applied when dividing the rated items of each user into k folds such that each user is uniformly represented in each fold, i.e. the number of ratings of each user in any fold differs at most by one. For k-fold cross validation each of the k disjunct fractions of the ratings are used k − 1 times for training (i.e. ⊂ R train ) and once for testing (i.e. ⊂ R test ). Practically, ratings in R test are set as missing in the original dataset and predictions/recommendations are compared to R test to compute the performance measures.</p><p>We included the most popular performance metrics according to the survey in <ref type="bibr" target="#b7">[8]</ref>. These are mean absolute error(MAE), root mean squared error(RMSE), Precision, Recall, F1, True and False Positives, True and False Negatives, normalized discounted cumulative gain (NDCG), rank score, area under the ROC curve (AUC) and catalog coverage <ref type="bibr" target="#b4">[5]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Experimental results</head><p>In this Section, we compare our rrecsys library with the popular Lenskit <ref type="bibr" target="#b2">[3]</ref> Java library.</p><p>In Figure <ref type="figure">1</ref>, we compare both libraries in terms of RMSE and MAE, using 5-fold cross validation. Lenskit and rrecsys were configured both with the same algorithms and evaluation methodology. We used the MovieLens100K dataset <ref type="bibr" target="#b5">[6]</ref> for these experiments as the purpose is not only the results per se, but to demonstrate the reproducibility of the results derived from LensKit.</p><p>For the experiments in Figure <ref type="figure">1</ref> on the FunkSVD, we have tuned its parameters as follows, the latent space is set to 100 features, the learning rate is set to 0.001, the regularization term is set to 0.015. In the case of the item based k-nearest neighbor algorithm, we have set the number of nearest neighbors to 100, and adjusted cosine similarity is the similarity measure. In the case of the user-based k-nearest neighbor algorithm, we have set the number of nearest neighbors to 100, and used Pearson as similarity measure.</p><p>As shown in Figure <ref type="figure">1</ref>, all the reported results demonstrate our ability to clearly reproduce and replicate the same results with those of Lenskit in terms of both RMSE and MAE while other libraries failed to do so <ref type="bibr" target="#b12">[13]</ref>. The insignificant differences with LensKit are the result of a random distribution of items in the k-folds. Since BPR and wALS are not implemented in LensKit it is impossible for us to compare results.</p><p>In Table <ref type="table" target="#tab_0">1</ref> we show the performance of rrecsys based on the latest implementations with R/C++ code on the MovieLens100K dataset running on the same machine. It is noticeable that rrecsys performs similarly to LensKit. We compared only optimized algorithms. In future we will provide optimized implementation of more state of the art algorithms.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Using the library</head><p>In this Section, we introduce an executable script in R for running some of the functionalities of rrecsys in order to demonstrate its intuitive use. Please notice that due to space limitations in this paper we do not describe all commands in detail. The library is distributed with a full range of vignettes and a manual describing all available functionalities<ref type="foot" target="#foot_0">1</ref> . The package is loaded on the Comprehensive R Archive Network (CRAN), therefore download, installation and loading of the package requires the execution of the following two functions: install.packages("rrecsys"); library(rrecsys)</p><p>Once the package is loaded the dataset MovieLens Latest 2 will be available within the environment. A setup of the data is required to define possible limits and the structure of the dataset. Users can explore the dataset by checking the number of ratings, its sparsity or even by modifying it to contain a specific number of ratings for each item\user. The following code shows how to train a model (e.g., ub10) on an algorithm (e.g., UBKNN), which can be used for either rating prediction (e.g., p) or item recommendation (e.g., rHPR and rMF). ub10 &lt;-rrecsys(smallmlLatest, "UBKNN", neigh = 10, simFunct = 1) p &lt;-predict(ub10) rHPR &lt;-recommendHPR(ub10, topN = 10) #pt is the positive threshold for recommending an item. rMF &lt;-recommendMF(ub10, topN = 10, pt = 3)</p><p>The following code shows how we generate the k-folds. Same fold distribution can be used to evaluate different algorithms.</p><p>folds &lt;-evalModel(smallmlLatest, folds = 2) #Recommendation evaluation. evalRec(folds, "UBKNN", topN = 10, goodRating = 3, simFunct = 2, recAlg = 1)</p><p>The output of the evaluation function looks like as follows: </p><formula xml:id="formula_15">#</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusions</head><p>This paper contributed a recently released package for prototyping and interactively demonstrating recommendation algorithms in R. It comes with a nice range of implemented standard algorithms for Likert scaled and binary ratings. Reported results demonstrate that it reproduces results of the Java-based Lenskit toolkit. Thus it remains to hope that this effort will be of use for the field of recommender systems and the large R user community.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>data("mlLatest100k") m &lt;-defineData(mlLatest100k, minimum = 1, maximum = 5, halfStar = TRUE) sparsity(m); numRatings(m); rowRatings(m); colRatings(m) #Crop the dataset to contain at least 200 ratings on each user and 10 ratings on each item. smallmlLatest &lt;-m[rowRatings(m) &gt;= 200, colRatings(m)&gt; 10]    </figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Evaluation times with optimized implementations using R/C++ and comparison with LensKit.</figDesc><table><row><cell></cell><cell cols="25">RMSE rrecsys RMSE Lenskit MAE rrecsys MAE LensKit</cell><cell></cell></row><row><cell>1.13</cell><cell>0.95</cell><cell>0.95</cell><cell>1.02</cell><cell>1.04</cell><cell>0.82</cell><cell>0.84</cell><cell>1.04</cell><cell>1.05</cell><cell>0.83</cell><cell>0.84</cell><cell>0.94</cell><cell>0.94</cell><cell>0.74</cell><cell>0.74</cell><cell>0.92</cell><cell>0.92</cell><cell>0.72</cell><cell>0.72</cell><cell>0.93</cell><cell>0.94</cell><cell>0.75</cell><cell>0.73</cell><cell>0.94</cell><cell>0.92</cell><cell>0.73</cell><cell>0.72</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell cols="13">Fig. 1. Benachmark with LensKit.</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>Framew.</cell><cell cols="6">IBKNN (neigh.) 10 100 500</cell><cell></cell><cell cols="19">UBKNN (neigh.) Funk SVD (feat.) WSlopeOne 10 100 500 10 100 500</cell></row><row><cell cols="23">rrecsys 14.91s 14.99s 15.67s 8.77s 8.87s 9.48s 6.23s 15.34s 54.71s</cell><cell cols="4">49.46s</cell></row><row><cell cols="23">Lenskit 14.17s 14.62s 15.28s 60.04s 61.48s 62.32s 4.32s 11.05s 46.82s</cell><cell cols="4">16.41s</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://cran.r-project.org/package=rrecsys</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">We redistribute the MovieLens Latest datasets for demonstration purposes only. Please notice that these datasets change over time and are not appropriate for reporting experimental results.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">rrecsys: an r-package for prototyping recommendation algorithms</title>
		<author>
			<persName><forename type="first">L</forename><surname>¸oba</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zanker</surname></persName>
		</author>
		<ptr target="http://ceur-ws.org/Vol-1688/#paper-12" />
	</analytic>
	<monogr>
		<title level="m">Poster Track of the 10th ACM Conference on Recommender Systems (RecSys 2016) (RecSysPosters). No. 1688 in CEUR Workshop Proceedings</title>
				<editor>
			<persName><forename type="first">I</forename><surname>Guy</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Sharma</surname></persName>
		</editor>
		<meeting><address><addrLine>Aachen</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Replication and reproduction in recommender systems research evidence from a case-study with the rrecsys library</title>
		<author>
			<persName><forename type="first">L</forename><surname>¸oba</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zanker</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">30th International Conference on Industrial Engineering and Other Applications of Applied Intelligent Systems, IEA/AIE 2017</title>
				<meeting><address><addrLine>Arras, France; Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2017-06">June, 2017. 2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Lenskit: A modular recommender framework</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">D</forename><surname>Ekstrand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Ludwig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kolb</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">T</forename><surname>Riedl</surname></persName>
		</author>
		<idno type="DOI">10.1145/2043932.2044001</idno>
		<ptr target="http://doi.acm.org/10.1145/2043932.2044001" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Fifth ACM Conference on Recommender Systems</title>
				<meeting>the Fifth ACM Conference on Recommender Systems<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="349" to="350" />
		</imprint>
	</monogr>
	<note>RecSys &apos;11</note>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><surname>Funk</surname></persName>
		</author>
		<ptr target="http://sifter.org/si-mon/journal/20061211.html" />
		<title level="m">Netflix Update: Try this at Home</title>
				<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A Survey of Accuracy Evaluation Metrics of Recommendation Tasks</title>
		<author>
			<persName><forename type="first">A</forename><surname>Gunawardana</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Shani</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The Journal of Machine Learning Research</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="page" from="2935" to="2962" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">The movielens datasets: History and context</title>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">M</forename><surname>Harper</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Konstan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Trans. Interact. Intell. Syst</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page">19</biblScope>
			<date type="published" when="2015-12">Dec 2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">An algorithmic framework for performing collaborative filtering</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">L</forename><surname>Herlocker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Konstan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Borchers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Riedl</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 22Nd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval</title>
				<meeting>the 22Nd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page" from="230" to="237" />
		</imprint>
	</monogr>
	<note>SIGIR &apos;99</note>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Jannach</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zanker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Ge</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Gröning</surname></persName>
		</author>
		<title level="m">Recommender Systems in Computer Science and Information Systems -A Landscape of Research</title>
				<meeting><address><addrLine>Berlin Heidelberg; Berlin, Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="76" to="87" />
		</imprint>
	</monogr>
	<note>13th International Conference on E-Commerce and Web Technologies</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Evaluation of item-based top-n recommendation algorithms</title>
		<author>
			<persName><forename type="first">G</forename><surname>Karypis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Tenth International Conference on Information and Knowledge Management</title>
				<meeting>the Tenth International Conference on Information and Knowledge Management<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="247" to="254" />
		</imprint>
	</monogr>
	<note>CIKM &apos;01</note>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Slope one predictors for online rating-based collaborative filtering</title>
		<author>
			<persName><forename type="first">D</forename><surname>Lemire</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Maclachlan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SDM</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="page" from="1" to="5" />
			<date type="published" when="2005">2005</date>
			<publisher>SIAM</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">One-class collaborative filtering</title>
		<author>
			<persName><forename type="first">R</forename><surname>Pan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Zhou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Cao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">N</forename><surname>Liu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lukose</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Scholz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Q</forename><surname>Yang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICDM&apos;08. Eighth IEEE International Conference on</title>
				<imprint>
			<date type="published" when="2008">2008. 2008</date>
			<biblScope unit="page" from="502" to="511" />
		</imprint>
	</monogr>
	<note>Data Mining</note>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">BPR : Bayesian Personalized Ranking from Implicit Feedback</title>
		<author>
			<persName><forename type="first">S</forename><surname>Rendle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Freudenthaler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Gantner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Schmidt-Thieme</surname></persName>
		</author>
		<ptr target="http://dl.acm.org/citation.cfm?id=1795167" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Twenty-Fifth Conference on Uncertainty in Artificial Intelligence cs</title>
				<meeting>the Twenty-Fifth Conference on Uncertainty in Artificial Intelligence cs<address><addrLine>LG</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="452" to="461" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Comparative Recommender System Evaluation: Benchmarking Recommendation Frameworks</title>
		<author>
			<persName><forename type="first">A</forename><surname>Said</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bellogín</surname></persName>
		</author>
		<idno type="DOI">10.1145/2645710.2645746</idno>
		<ptr target="http://dx.doi.org/10.1145/2645710.2645746" />
	</analytic>
	<monogr>
		<title level="j">RecSys</title>
		<imprint>
			<biblScope unit="page" from="129" to="136" />
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Item-based collaborative filtering recommendation algorithms</title>
		<author>
			<persName><forename type="first">B</forename><surname>Sarwar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Karypis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Konstan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Riedl</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">10th Int. Conference on the World Wide Web</title>
				<imprint>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="285" to="295" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Collaborative recommender systems: Combining effectiveness and efficiency</title>
		<author>
			<persName><forename type="first">P</forename><surname>Symeonidis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Nanopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">N</forename><surname>Papadopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Manolopoulos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Expert Syst. Appl</title>
		<imprint>
			<biblScope unit="volume">34</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="2995" to="3013" />
			<date type="published" when="2008-05">May 2008</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
