Los sistemas de recomendación se emplean en un gran número de aplicaciones debido al
potencial que tienen para ayudar a las personas a elegir artículos en función de sus necesidades
o gustos. En la era actual de las comunicaciones, son especialmente útiles en Internet, ya que
es el principal medio empleado por los usuarios para intercambiar información. Además, los
programas que trabajan con esta cantidad de datos, necesitan proporcionar los resultados en el
menor tiempo posible, haciendo uso de un gran número de estructuras y algoritmos para operar
de manera eficiente.
Este Trabajo de Fin de Grado consiste en un estudio y una investigación sobre dichos sistemas
de recomendación, haciendo especial énfasis en los de filtrado colaborativo basados en vecinos.
Se ha llevado a cabo la implementación de un sistema que permite ejecutar algunas medidas
de similitud utilizadas en el campo, como la similitud coseno o la correlación de Pearson (con
algunas variantes) y que además permite realizar ejecuciones con distintas estructuras de datos
conocidas.
Por otro lado, se incluye un estudio sobre los distintos parámetros a configurar tanto en
los algoritmos como en las estructuras, para evaluar qué combinación es la más beneficiosa.
También, se ha llevado a cabo la adaptación e implementación al campo de la recomendación
del algoritmo de la subcadena común más larga, para así comprobar su funcionamiento frente
a las medidas de similitud anteriormente comentadas. Para comprobar el rendimiento de estos
algoritmos con distintas configuraciones, se han efectuado pruebas con un conjunto de datos real,
en concreto con Movielens (100.000 puntuaciones). Los resultados han sido obtenidos efectuando
comparaciones mediante métricas de error (RMSE o MAE, centradas en comprobar la diferencia
entre las puntuaciones reales y las predichas) y mediante métricas de ranking (precision, recall,
NDCG y MRR, orientadas a identificar qué artículos son relevantes a partir de una lista de
recomendados). En cuanto al análisis de las estructuras, se han realizado mediciones tanto de
tiempo como de memoria consumidos en las ejecuciones.
Como resumen, hemos observado que las tablas hash son las estructuras que más memoria
utilizan y no siempre son las que menos tiempo emplean, por lo que en ciertas partes de la
aplicación son peores que otras estructuras más sencillas. Asimismo, se ha mostrado que en
algunos casos (métricas de ranking) el algoritmo que se propone en este trabajo de la subcadena
común más larga obtiene mejores resultados que el resto de medidas de similitud, aunque en el
caso de las métricas de error, la correlación de Pearson logra un error menor. Este trabajo ha
resultado en una publicación en un congreso nacional donde se reportan los resultados sobre el
análisis de tiempo y memoria de las estructuras para recomendación.Recommender systems are used in many applications due to the fact that they have potential
to help people by selecting items according to their needs or tastes. In the current era of communications,
they are especially useful on the Internet, which is the most important application
used by users to exchange information. In addition, programs that work with this amount of
data, need to provide the results in the shortest time possible, using a large number of structures
and algorithms to operate efficiently .
This Bachelor’s Thesis is a study and investigation on these recommendation systems, with
particular emphasis on neighbourhood-based collaborative filtering ones. We have developed a
system that is capable of running some similarity measures used in the field, such as cosine similarity
or the Pearson correlation (with some variations), allowing different known data structures
being plugged in the process.
On the other hand, a study of the various parameters is included to configure both algorithms
and structures in order to achieve the most beneficial combination. Besides, a new algorithm in
the field of recommendation has been implemented, the longest common subsequence algorithm,
to test it against the other measures previously discussed. To check the performance of these
algorithms with different configurations, some test with real data have been done, particularly
with Movielens (100,000 ratings). The results have been obtained by making comparisons using
error metrics (RMSE and MAE, focused on checking the difference between the actual and
predicted scores) and using ranking metrics (precision, recall, NDCG, and MRR, oriented to
identify which items are relevant to the user from a list of recommended items). As for the
analysis of structures, measurements have been made in terms of time and memory used in the
executions.
As a summary, we have observed that the hash tables are the structures that more memory
uses and they do not always spend less time, so in certain parts of the application they are worse
than other simpler structures. Furthermore, we show that in some cases (ranking metrics) the
algorithm proposed herein of the longest common subsequence obtains better results than other
common measures of similarity, although in the case of error metrics, the Pearson correlation,
however, achieves the lowest error. This thesis has resulted in a publication in a national congress
where results about time and memory analysis of data structures for recommendation are
reporte