sistemas de recomendación basados en filtrado colaborativo

120
TESIS DOCTORAL Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales FRANCISCO PAJUELO HOLGUERA Programa de Doctorado en Tecnología Aeroespacial: Ingenierías Electromagnética, Electrónica, Informática y Mecánica 2021 Conformidad del Director: Conformidad del Co-director: Fdo: Dr. Juan Antonio Gómez Pulido Fdo: Dr. Fernando Ortega Requena ( la conformidad de los directores de la tesis consta en el original en papel de esta Tesis Doctoral )

Upload: others

Post on 01-Oct-2021

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas de recomendación basados en filtrado colaborativo

TESIS DOCTORAL

Sistemas de recomendación basados en filtrado colaborativo: Aceleración

mediante computación reconfigurable y aplicaciones predictivas sensoriales

FRANCISCO PAJUELO HOLGUERA

Programa de Doctorado en Tecnología Aeroespacial: Ingenierías Electromagnética, Electrónica, Informática y Mecánica

2021

Conformidad del Director:

Conformidad del Co-director:

Fdo: Dr. Juan Antonio Gómez Pulido Fdo: Dr. Fernando Ortega Requena

( la conformidad de los directores de la tesis consta en el original

en papel de esta Tesis Doctoral )

Page 2: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

2

Page 3: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

3

Agradecimientos.

Quien me iba a decir a mí hace unos años que en este momento estaría escribiendo mis últimas líneas de mi tesis doctoral. Todavía recuerdo, allá por 2013, mis primeros días en Cáceres con la enorme ilusión de empezar mis estudios de Ingeniería Informática. Me pongo en la mente de ese chaval de 18 años y ni por asomo iba a pensar en qué pasados 8 años iba a estar a punto de convertirme en doctor. No fue un primer año fácil, donde los cambios al mundo universitario siempre son complicados. Al final, todo fue pasando y concluí la carrera. Ahí, ya tuve que tomar mi primera decisión importante y fue una de las mejores decisiones que pude tomar. En mis estudios de máster, Juan Antonio me dio la posibilidad de trabajar con él y de poder realizar el documento que en el día de hoy finalizo. Por lo tanto, a la primera persona que quiero agradecer enormemente su trabajo y profesionalidad es a él. Excelente persona y gran trabajador. Siempre me instó a trabajar y trabajar que el fruto de mi trabajo llegaría antes o después. También quiero agradecer a Fernando Ortega su trabajo y su colaboración con nosotros. Gracias al trabajo de ambos, pudimos sacar varias investigaciones adelante que dieron lugar a esta tesis. A mi familia por apoyarme en todo momento y por confiar en mí sirviéndome de motivación en todo el camino recorrido. Sin ellos, no sería nada de lo que hoy en día soy. En sólo unas líneas es complicado acordarme de todo el mundo, pero lo que realmente siento es que la vida es sólo una y yo tengo la suerte de estar fantásticamente rodeado. Gracias a todos.

Page 4: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

4

Page 5: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

5

Índice.

Agradecimientos. ______________________________________________________ 3

Índice. _______________________________________________________________ 5

Índice de tablas. _______________________________________________________ 9

Índice de figuras. ______________________________________________________ 11

Términos. ____________________________________________________________ 13

Resumen. ____________________________________________________________ 15

1 Introducción. ______________________________________________________ 17

1.1 Antecedentes. _______________________________________________________ 17

1.2 Planteamientos y objetivos. ____________________________________________ 18 1.2.1 Planteamiento general. _______________________________________ 18 1.2.2 Objetivos. _________________________________________________ 18

2 Marco teórico. ______________________________ ¡Error! Marcador no definido.

2.1 Machine Learning. ____________________________________________________ 19 2.1.1 Tipos de aprendizaje automático. _______________________________ 19 2.1.2 Aplicaciones. _______________________________________________ 20

2.2 Sistemas de recomendación. ___________________________________________ 21 2.2.1 Tipos de sistemas de recomendación. ___________________________ 21 2.2.2 Aplicaciones. _______________________________________________ 22

2.3 Factorización matricial y predicción. _____________________________________ 22

2.4 Computación reconfigurable. ___________________________________________ 23 2.4.1 Definición y conceptos. _______________________________________ 23 2.4.2 FPGA. _____________________________________________________ 24 2.4.3 Lenguajes de descripción hardware. ____________________________ 26

3 Aceleración hardware de los sistemas de recomendación. __________________ 29

3.1 Resumen. ___________________________________________________________ 29

3.2 Introducción. ________________________________________________________ 29

3.3 Sistemas de Recomendación. ___________________________________________ 30 3.3.1 Algoritmo básico. ___________________________________________ 30 3.3.2 Algoritmo BNMF. ____________________________________________ 32

3.4 Diseños hardware para aplicaciones embebidas. ___________________________ 35 3.4.1 Vivado HLS. ________________________________________________ 35 3.4.2 Zedboard Zynq -7000. ________________________________________ 36 3.4.3 Diseño PMF. _______________________________________________ 38 3.4.4 Diseño BNMF. ______________________________________________ 44 3.4.5 Estrategia de paralelización BNMF. _____________________________ 46

Page 6: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

6

3.5 Comparativa de rendimiento. ___________________________________________ 47 3.5.1 Datasets.___________________________________________________ 48 3.5.2 Procedimiento experimental. __________________________________ 48 3.5.3 Resultados de tiempo de computación. __________________________ 48 3.5.4 Resultados de energía. ________________________________________ 50

3.6 Conclusiones y líneas futuras. ___________________________________________ 51

3.7 Aportaciones. ________________________________________________________ 51

4 Aplicación predictiva de los sistemas de recomendación en entornos sensoriales. 53

4.1 Resumen. ___________________________________________________________ 53

4.2 Introducción. _________________________________________________________ 54

4.3 Smartpolitech. _______________________________________________________ 55 4.3.1 Tecnología. _________________________________________________ 56 4.3.2 Infraestructura Smartpolitech. _________________________________ 57 4.3.3 Dispositivos sensoriales. ______________________________________ 58 4.3.4 Monitorización. _____________________________________________ 59

4.4 Formulación del problema. _____________________________________________ 60

4.5 Sistemas de Recomendación en predicciones sensoriales. ____________________ 62

4.6 Resultados. __________________________________________________________ 65 4.6.1 Datasets.___________________________________________________ 65 4.6.2 Procedimiento experimental. __________________________________ 66 4.6.3 Discretización de valoraciones. _________________________________ 66 4.6.4 Metodología. _______________________________________________ 67 4.6.5 Selección de los datos de entrenamiento y test. ____________________ 70 4.6.6 Comparativa PMF y BNMF. ____________________________________ 72

4.7 Conclusiones y líneas futuras. ___________________________________________ 80

4.8 Aportaciones. ________________________________________________________ 81

5 Evaluación de estrategias de selección de datos de test. ____________________ 83

5.1 Resumen. ___________________________________________________________ 83

5.2 Introducción. _________________________________________________________ 83

5.3 Diferentes estrategias para seleccionar datasets de prueba. __________________ 84

5.4 Procedimiento experimental. ___________________________________________ 85

5.5 Resultados. __________________________________________________________ 86 5.5.1 Datasets.___________________________________________________ 86 5.5.2 Resultados experimentales. ____________________________________ 87

5.6 Conclusiones y líneas futuras. ___________________________________________ 89

5.7 Aportaciones. ________________________________________________________ 90

6 Aportaciones. ______________________________________________________ 91

6.1 Aportación general. ___________________________________________________ 91

6.2 Aportaciones particulares. ______________________________________________ 91

Page 7: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

7

6.2.1 Aceleración hardware de los sistemas de recomendación. ___________ 91 6.2.2 Aplicaciones sensoriales predictivas. ____________________________ 91 6.2.3 Evaluación de estrategias de selección de datos de test. _____________ 91

7 Producción científica. _______________________________________________ 93

7.1 Resumen. ___________________________________________________________ 93

7.2 Artículos en revistas. __________________________________________________ 93

7.3 Capítulos de libro. ____________________________________________________ 95

7.4 Comunicaciones en congreso. ___________________________________________ 95

8 Referencias. ______________________________________________________ 97

9 Apéndices. _______________________________________________________ 101

9.1 Datasets y resultados: aplicación predictiva de los RS en entornos sensoriales. _ 103 9.1.1 Aula L1. __________________________________________________ 103 9.1.2 Aula L2. __________________________________________________ 106 9.1.3 Aula LD. __________________________________________________ 109 9.1.4 Aula C3. __________________________________________________ 112 9.1.5 Aula T3. __________________________________________________ 115 9.1.6 Aula C2A. _________________________________________________ 118

Page 8: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

8

Page 9: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

9

Índice de tablas.

Herramientas principales para implementar BNMF en FPGA. ___________ 44

Datasets utilizados para probar los algoritmos PMF y BNMF. __________ 48

Tiempos de computación (s) y aceleración FPGA de los algoritmos PMF y BNMF para las implementaciones CPU y FPGA. ______________________________ 49

Potencia (w) y reducción de potencia FPGA de los algoritmos PMF y BNMF para las implementaciones CPU y FPGA. ___________________________________ 50

Características de los sensores. __________________________________ 58

Hiperparámetros aplicados en los experimentos. ____________________ 62

Características de los datasets utilizados para los experimentos. ________ 65

Términos mapeados entre CF y el trabajo propuesto. _________________ 66

Nomenclatura para la fase experimental. __________________________ 66

Media del error de predicción. _________________________________ 73

Datasets utilizados en las diferentes estrategias. ___________________ 87

Page 10: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

10

Page 11: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

11

Índice de figuras.

Figura 1. Arquitectura global FPGA [Qin 2018]. ____________________________ 25

Figura 2. Representación gráfica del modelo PMF. _________________________ 31

Figura 3. Algoritmo PMF. _____________________________________________ 32

Figura 4. Representación gráfica del modelo BNMF. ________________________ 33

Figura 5. Algoritmo BNMF. ____________________________________________ 34

Figura 6. Entorno IDE de Vivado HLS. ____________________________________ 37

Figura 7. Zedboard Zynq -7000. ________________________________________ 37

Figura 8. Estrategia básica paralelización PMF. ___________________________ 38

Figura 9. Implementación secuencial de PMF. _____________________________ 40

Figura 10. Implementación HLS de PMF. __________________________________ 41

Figura 11. Implementación OpenMP de PMF. ______________________________ 44

Figura 12. Arquitectura básica para BNMF en Zynq Zedboard 7000. ____________ 45

Figura 13. Estrategia de paralelización de BNMF. ___________________________ 47

Figura 14. Procedimiento experimental. __________________________________ 49

Figura 15. Vista de la EPCC, con el posicionamiento de puntos de acceso Wi-Fi. ___ 56

Figura 16. Infraestructura Smartpolitech y flujo de datos. ____________________ 58

Figura 17. Dispositivos sensoriales de SmartPolitech usados en la investigación. __ 59

Figura 18. Visualizador de datos Grafana. _________________________________ 59

Figura 19. Propuesta de predicción de parámetros ante fallos. ________________ 61

Figura 20. Código Python de PMF.. ______________________________________ 63

Figura 21. Código Python de BNMF. _____________________________________ 64

Figura 22. Procedimiento experimental. __________________________________ 67

Figura 23. Variaciones continua y discretizada de la temperatura. _____________ 70

Figura 24. Ejemplo de cálculo del error de la predicción para el dataset L1. ______ 71

Figura 25. Estrategia para seleccionar datos de prueba y de entrenamiento. _____ 72

Figura 26. Variaciones predichas de los parámetros ambientales por PMF. _______ 79

Figura 27. Error de predicción (%) en los parámetros ambientales. _____________ 80

Figura 28. Estrategias de selección diagonal y aleatoria para los datos de test.. ___ 85

Figura 29. Algoritmo que describe el procedimiento experimental. _____________ 87

Figura 30. Resultados de error RMSE. ____________________________________ 88

Page 12: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

12

Figura 31. Resultados por ejecución para los tres datasets. ____________________ 88

Figura 32. Resultados globales para los tres datasets. ________________________ 89

Page 13: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

13

Términos.

ASIC Application Specific Integrated Circuit ....................................................................................................................25

BNMF Bayesian Non-negative Matrix Factorization ..........................................................................................................32

CF Collaborative Filtering .............................................................................................................................................23

CLB Configurable Logic Blocks ........................................................................................................................................27

DT Árboles de Decisión (Decision Tree) ........................................................................................................................22

EC Embedded Computing .............................................................................................................................................25

EPCC Escuela Politécnica de Cáceres ................................................................................................................................55

ES Embedded Systems .................................................................................................................................................25

ESB Zato Enterprise Service Bus .....................................................................................................................................57

FPGA Field Programmable Gate Array ..............................................................................................................................25

GD Gradient Descent .....................................................................................................................................................25

GPU Graphic Processing Unit ..........................................................................................................................................30

HDL Hardware Description Language .............................................................................................................................28

HLS High Level Synthesis ................................................................................................................................................28

IA Inteligencia Artificial ................................................................................................................................................21

ICA Análisis de Componentes Independientes (Independent Component Analysis) .....................................................22

LUT Look Up Table ..........................................................................................................................................................27

MF Factorización Matricial (Matrix Factorization).........................................................................................................24

ML Machine Learning .............................................................................................................................................. 17, 21

NB Naïve Bayes .............................................................................................................................................................22

NSL Aprendizaje No Supervisado (Non-Supervised Learning) ........................................................................................21

PAL Programmable Array Logic ......................................................................................................................................26

PCA Análisis de Componentes Principales (Principal Component Analisys) ...................................................................22

PLA Programmable Logic Array ......................................................................................................................................26

PLD Programmable Logic Devices ...................................................................................................................................26

PMF Probabilistic Matrix Factorization ............................................................................................................................30

RC Reconfigurable Computing ......................................................................................................................................25

Page 14: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

14

RL Aprendizaje por Refuerzo (Reinforcement Learning) .............................................................................................. 21

RS Recommender System ............................................................................................................................................ 17

RTL Register Transfer Level ............................................................................................................................................ 35

SL Aprendizaje Supervisado (Supervised Learning) ..................................................................................................... 21

SoC System on Chip ........................................................................................................................................................ 25

SVD Descomposición en Valores Singulares (Singular Value Decomposition) ................................................................ 22

SVM Máquinas de Vectores de Soporte (Support Vector Machines) .............................................................................. 22

UEX Universidad de Extremadura ................................................................................................................................... 55

VLSI Very large-scale integration .................................................................................................................................... 26

Page 15: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

15

Resumen.

En los últimos años han emergido con mucha fuerza ciertos campos dentro de la Informática, entre los que destacamos Big Data, Machine Learning, Blockchain o Cloud Computing. Estos campos se ven impulsados como consecuencia del vertiginoso crecimiento digital que está experimentando toda la sociedad, a todos los niveles. Estos campos tienen una aplicabilidad práctica muy alta y afectan a la vida cotidiana de las personas, especialmente en su interacción con la Web. De ahí la importancia e interés creciente de las tecnologías involucradas en estos campos. Esta tesis doctoral se centra específicamente en los Sistemas de Recomendación, que constituye una de las muchas disciplinas que abarca el campo de Machine Learning. Estos sistemas son ampliamente utilizados en la recomendación de artículos o productos en diferentes plataformas como Netflix o Amazon, por ejemplo. En este ámbito de conocimiento, la tesis doctoral se centra en dos líneas principales de investigación complementarias: aceleración del cálculo y predicción basada en comportamiento. Los algoritmos que trabajan estas recomendaciones son sofisticados y pueden requerir esfuerzos computacionales muy altos cuando trabajan en entornos de muchos usuarios y datos. Esta circunstancia motivó la investigación en la aceleración de la computación de los algoritmos para obtener resultados de recomendación en tiempos razonables, la cual se llevó a cabo utilizando tecnología de hardware reconfigurable basada en FPGAs como planteamiento novedoso. A partir de los algoritmos acelerados, se realizó después una investigación sobre la predicción basada en comportamiento de usuarios y medidas sensoriales en grandes infraestructuras, donde la novedad radica en la utilización de los sistemas de recomendación como motor de predicción de variables ambientales. Adicionalmente, se abordó un tercer estudio, independiente pero consecuencia del planteamiento anterior, relativo a la selección óptima de los datos de test necesarios para evaluar los algoritmos de predicción. El primer capítulo de esta memoria presenta una introducción de la tesis doctoral, repasando los antecedentes previos, detallando los diferentes planteamientos y listando los objetivos propuestos. El segundo capítulo detalla el marco teórico sobre el que se apoya esta tesis doctoral. En primer lugar, se describe el área informática en el que discurren los trabajos, detallando los algoritmos utilizados. También se detallan las tecnologías y herramientas hardware utilizadas para acelerar los algoritmos de recomendación. Después, la memoria presenta tres capítulos relativos a los trabajos de investigación y sus correspondientes resultados y conclusiones. El tercer capítulo se centra en el estudio de la aceleración de los sistemas de recomendación mediante tecnología FPGA, utilizando lenguajes de síntesis de alto nivel como herramienta de modelación y paralelismo como estrategia de paralelización. Se explican los algoritmos de recomendación utilizados, así como las características de los datasets necesarios para evaluar el rendimiento de la propuesta de aceleración. Se detallan los diferentes esquemas de paralelización propuestos y los resultados obtenidos, en términos de tiempo de computación y consumo energético.

Page 16: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

16

El cuarto capítulo presenta una propuesta innovadora de aplicación de los sistemas de recomendación para un problema de predicción en una infraestructura con sensores. En este caso, se proponen los sistemas de recomendación como motor de predicción para determinar los valores de ciertos parámetros ambientales en función de la actividad humana realizada sobre ciertos espacios, los cuales están monitorizados mediante sensores inalámbricos. De esta forma, los sistemas de control de la climatización, por ejemplo, pueden ajustarse automáticamente en función de la predicción para minimizar el consumo energético y aumentar el confort de las instalaciones. En el análisis de los resultados de estas investigaciones, tanto en la aceleración hardware como en la aplicación predictiva, ha jugado un importante papel la determinación del error mediante la evaluación de conjuntos de datos de test, que son aplicados sobre los modelos generados a partir de los datos de entrenamiento. Esto motivó la necesidad de estudiar el método de selección de los datos de test, para lo cual se investigó la eficacia de distintas estrategias de selección, tal como se explica en el quinto capítulo. Finalmente, se presentan las principales aportaciones de la tesis doctoral, así como un listado con la producción científica generada.

Page 17: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

17

1 Introducción.

1.1 Antecedentes.

Esta tesis parte de los fundamentos teórico-prácticos de las tecnologías de Aprendizaje Automático (ML, Machine Learning), concretamente en el área de los denominados Sistemas de Recomendación (RS, Recommender Systems). Los sistemas de recomendación están adquiriendo una gran importancia en los últimos años, sobre todo gracias a la aparición de diferentes plataformas de vídeo en streaming como Netflix, HBO o Amazon Prime. Estas plataformas, ante la ingente cantidad de contenidos que presentan, pueden realizar recomendaciones al usuario acerca de qué contenidos pueden interesarle. En este sentido, los sistemas de recomendación son sistemas autónomos (no dependen de la interacción directa del usuario) que aprenden de las características de los contenidos que los usuarios han elegido en el pasado para recomendar otros (series, películas) en el futuro. Como indicador del interés e importancia que tienen estos sistemas a la hora de aumentar la precisión de la recomendación, destacamos el hecho de que la plataforma Netflix organiza todos los años un concurso, abierto a toda la comunidad informática, para competir con el mejor algoritmo de recomendación posible. La filosofía que subyace en estos sistemas no se restringe a las plataformas audiovisuales que acabamos de citar, sino que puede aplicarse al sector del comercio electrónico, por ejemplo, donde el sistema puede recomendar productos al cliente en base a compras realizadas en el pasado o los intereses de otros clientes con perfiles similares. Pero también los RS constituyen una oportunidad como método de predicción aplicable a otros ámbitos. La idea de combinar el comportamiento de un usuario frente a unas tareas con el comportamiento de muchos usuarios para una tarea particular, puede aplicarse a ámbitos de predicción donde los RS puedan suponer una solución. Ahora bien, los RS presentan algunos problemas para los cuales la búsqueda de posibles soluciones supone un reto desde el punto de vista de la investigación. Entre estos problemas, destacamos dos: el tiempo de computación de los algoritmos involucrados y la aplicación de estos sistemas como métodos predictivos precisos exportables a otros ámbitos. La búsqueda de soluciones noveles y eficientes a estos retos constituye el fundamento de esta tesis doctoral. En relación al primer reto, hay que destacar que los algoritmos que configuran un RS inciden directamente en la respuesta de la recomendación, que en algunos entornos puede requerir una solución en tiempo real. Esto es particularmente importante cuando los RS están respaldados por bases de datos que almacenan una ingente cantidad de información, que además es creciente en el tiempo. En este sentido, la estrategia para abordar una aceleración de estos algoritmos encuentra su fundamento en el carácter matricial de la formulación involucrada, lo que puede permitir la paralelización de algunos procesos. Esta paralelización es adecuada para implementarse en sistemas de computación basados en hardware reconfigurable, al proporcionar características de paralelismo real.

Page 18: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

18

Por otro lado, y en relación al segundo reto, partimos del hecho de que estos sistemas, como se ha comentado al principio, fueron planteados inicialmente y utilizados profusamente en entornos online basados en contenidos de plataformas streaming y de comercio electrónico. La hipótesis de que estos sistemas, como métodos predictivos, puedan ser efectivos en otros ámbitos, representa una oportunidad investigadora que merece la pena ser explorada. En este sentido se planteó la posibilidad de validar un RS como método predictivo en un ámbito marcado por el comportamiento humano y que tuviera un interés práctico de aumento de la calidad y rendimiento. Así, y en el marco del proyecto de smart-city SmartPoliTech, se consideró la predicción de los valores ambientales en instalaciones académicas a partir del comportamiento previo de los estudiantes que las utilizaron a lo largo del tiempo, utilizando sensores como dispositivos que suministran datos y actuadores como dispositivos que ejecutan la recomendación.

1.2 Planteamientos y objetivos.

1.2.1 Planteamiento general.

El planteamiento general de esta tesis doctoral consiste en llevar a cabo dos investigaciones:

• La primera en estudiar y analizar las posibilidades de aceleración de los sistemas de recomendación mediante el uso de técnicas de paralelización y hardware reconfigurable.

• La segunda estudiar y analizar diferentes ámbitos de aplicación de los sistemas de recomendación con propósitos predictivos, introduciendo nuevas perspectivas respecto de las estrategias tradicionales de predicción.

En el desarrollo del primer planteamiento se utilizaron diversas herramientas software y hardware de actualidad. En cuanto a las herramientas software destacan Xilinx Vivado para poder desarrollar hardware de alto nivel, y Vivado HLS para la síntesis de aplicaciones hardware. En cuanto a las herramientas hardware destaca la tarjeta de prototipado Zynq Zedboard, la cual tiene integrada un dispositivo de lógica reconfigurable que facilita enormemente la implementación de aplicaciones paralelas para la aceleración hardware. En el desarrollo del segundo planteamiento se utilizaron herramientas software para diseñar, ejecutar y validar los programas de aplicación de los sistemas de recomendación, así como para manejar los datos involucrados.

1.2.2 Objetivos.

Objetivos generales:

• Acelerar los RS mediante circuitos reconfigurables.

• Aplicar los RS como métodos predictivos en entornos smart-city.

Page 19: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

19

Objetivos secundarios:

• Estudiar la viabilidad de la implementación de los RS en hardware reconfigurable.

• Desarrollar distintas implementaciones hardware de los RS para validar sus rendimientos.

• Mejorar los tiempos de computación de los RS respecto a implementaciones software ejecutadas en microprocesadores tradicionales.

• Proponer modelos predictivos basados en RS en ámbitos smart-city.

• Estudiar las diferentes estrategias para seleccionar conjuntos de datos de test para evaluar el rendimiento de los RS.

1.3 Machine Learning.

En esta sección introducimos brevemente el concepto de Aprendizaje Automático (ML, Machine Learning) así como los distintos tipos derivados y sus aplicaciones habituales. Se puede definir ML como una disciplina dentro del campo de la informática, muy ligada a la Inteligencia Artificial (IA), mediante la cual se generan sistemas que aprenden de manera automática por sí mismos. En realidad, el sistema que realmente aprende es un algoritmo que es capaz de valorar todos los datos de entrada y, a partir de ahí, realizar varias acciones, como pueden ser predecir valores o recomendar valores futuros. Estos sistemas nacen para simplificar la vida de las personas ya que, al disponer de una gran cantidad de información, el sistema la trabajará en lugar de tener que manejarla las personas. Hay que tener en cuenta que el sistema necesitará disponer de mucha información para poder aprender por sí mismo. Por norma general, cuanto mayor es la cantidad de información de la que se dispone, mejor comportamiento y rendimiento tendrá el algoritmo de ML. Un ejemplo ilustrativo y típico del interés de las técnicas ML podemos encontrarlo en el ámbito médico. A través de los síntomas de los pacientes y la recolección masiva de información en diferentes bases de datos de hospitales, el algoritmo ML puede detectar enfermedades o establecer un diagnóstico médico con bastante posibilidad de acierto.

1.3.1 Tipos de aprendizaje automático.

El aprendizaje automático puede clasificarse según tres tipos:

• Aprendizaje Supervisado (SL, Supervised Learning). En este tipo de ML se dispone de un conjunto de datos o dataset llamado de entrenamiento. El algoritmo entrena al sistema proporcionándole una parte de los datos de entrada como datos de entrenamiento, que son datos etiquetados. Por ejemplo, si tenemos fotos de animales, en concreto de perros y gatos, se etiquetarán estos datos como tales. Una vez que tengamos una gran cantidad de datos, para introducir nuevos datos no hará falta etiquetarlos ya que el sistema, a partir de estos datos de entrenamiento, habrá aprendido qué datos son de perros y cuáles son de gatos.

Page 20: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

20

• Aprendizaje No Supervisado (NSL, Non-Supervise Learning). Este tipo de ML no utiliza etiquetas para los datos. También hay datasets, pero no con datos etiquetados. El objetivo que tiene el algoritmo NSL es aprender de manera automática patrones interesantes que puedan existir en los datos de entrada.

• Aprendizaje por Refuerzo (RL, Reinforcement Learning). En este tipo de ML los sistemas aprenden a partir de la experiencia o reacción ante un evento. Este es un método típico que se está aplicando actualmente en el desarrollo de sistemas de conducción autónoma en vehículos. Cuando el coche toma una decisión errónea, se le penalizará, de acuerdo con un registro de valores. De esta forma, el sistema toma mejores decisiones futuras a base de "castigos" y de "premios".

1.3.2 Aplicaciones.

A continuación, se exponen algunos ejemplos ilustrativos típicos en ML:

Aprendizaje supervisado

• Problemas de clasificación (identificación de dígitos, diagnósticos, o detección de fraude de identidad).

• Problemas de regresión (predicciones meteorológicas, de expectativa de vida, de crecimiento etc).

Los algoritmos más utilizados en SL son:

• Árboles de Decisión (DT, Decision Tree).

• Clasificación de Naïve Bayes (NB).

• Regresión por mínimos cuadrados.

• Regresión Logística.

• Máquinas de Vectores de Soporte (SVM, Support Vector Machines).

Aprendizaje no supervisado

• Problemas de clustering.

• Agrupamientos de co-ocurrencias.

• Perfilado o profiling. Los algoritmos más utilizados en este tipo de ML son:

• Algoritmos de clustering

• Análisis de Componentes Principales (PCA, Principal Component Analisys).

• Descomposición en Valores Singulares (SVD, Singular Value Decomposition).

• Análisis de Componentes Independientes (ICA, Independent Component Analysis).

Algunos ejemplos prácticos más habituales de este tipo de ML son:

• Seguridad informática, diagnóstico de ataques, prevención de fraude online, detección de anomalías, etc.

Page 21: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

21

• Coches o vehículos autónomos: identificación de imágenes en tiempo real, detección de obstáculos y señales de tráfico, prevención de accidentes…

• Salud: evaluación automática de pruebas diagnósticas, robótica médica etc.

• Reconocimiento de imágenes o patrones (facial, dactilar, objetos, voz, etc).

• Recomendaciones.

• Análisis valores de índole económica (predicciones financieras, evolución de mercados etc).

1.4 Sistemas de recomendación.

Los RS [Jannach 2011] son sistemas utilizados hoy día para realizar recomendaciones personalizadas a usuarios de grandes conjuntos de datos. Se basan en el aprendizaje máquina. Parte de una base de datos muy grande, donde tendremos, por norma general, usuarios que valoran ítems (como pueden ser artículos, productos, películas, etc). El RS aprende a partir de esta base de datos y recomienda a los usuarios nuevos artículos que seguramente sean de su agrado o concuerden con sus hábitos y comportamiento. Los RS son muy utilizados en la actualidad en plataformas de contenidos audiovisuales o comercio electrónico, como Netflix, Youtube, Amazon o Spotify. Todas estas plataformas tienen en común el hecho de trabajar con millones de usuarios, aunque cada una de ellas maneja distintos ítems. Las recomendaciones generadas por el RS ayudan a los usuarios a la toma de decisiones sobre los artículos o productos a elegir, algo muy útil cuando, como ocurre actualmente, la información que se le ofrece al usuario es muy abundante, y éste no tiene tiempo de examinar o valorar todas las opciones.

1.4.1 Tipos de sistemas de recomendación.

Entre los tipos más conocidos de RS, se encuentran:

• Sistemas de popularidad. Estos sistemas consideran las ventas de productos o también sugerencias concretas. Se basa en tomar alguna característica popular del ítem en cuestión. Por ejemplo, el número de ventas de un producto. Posteriormente, esta variable se muestra a todos los usuarios que estén investigando en dicha área.

• Sistemas de contenido. Estos sistemas se basan en el historial de datos de un usuario. Según dicho historial, el sistema intenta predecir lo que busca el usuario o recomendarle artículos similares. Esto permite descubrir nuevas opciones de similares características del historial del usuario.

• Sistemas colaborativos. Este tipo de sistema es de los más conocidos dentro de los RS, ya que genera recomendaciones analizando datos, identificando usuarios y comparando la información del perfil del usuario y la de un colectivo de usuarios. De esa forma el modelo aprende a agrupar perfiles similares para desarrollar recomendaciones individuales.

Page 22: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

22

1.4.2 Aplicaciones.

Entre las aplicaciones de los RS, podemos encontrar las siguientes, según el tipo:

Sistemas colaborativos. Los RS basados en el llamado Filtrado Colaborativo (CF, Collaborative Filtering) permiten la generación de recomendaciones a partir de informaciones suministradas por la base de datos: el comportamiento de un usuario al valorar distintos ítems, y el comportamiento de muchos usuarios (colaboración) valorando el mismo ítem para el cual queremos generar la recomendación para el usuario en cuestión. Por poner un ejemplo, estos sistemas permiten, dado el “usuario activo” (Ana) y un objeto que aún no ha visto y sobre el cuál se quiere generar una recomendación:

• Encontrar el conjunto de usuarios que más se parecen a Ana (usuarios a quienes les gustan objetos similares) y han puntuado el objeto.

• Usar, por ejemplo, el promedio de las puntuaciones otorgadas para predecir si a Ana le gustará el objeto.

• Aplicar este proceso sobre todos los objetos que Ana no ha puntuado aún, y recomendar los objetos que tienen mayor puntuación.

Sistemas de contenido. A diferencia del sistema anterior, en este caso se utiliza la descripción del elemento para intentar ofrecer un mejor resultado. Un ejemplo sería un RS de un servicio de música en streaming, como puede ser Spotify. El objeto en este caso serían las canciones, de forma que, por cada canción, se obtienen distintos datos como grupo, género etc. Aquí es donde se puede observar la descripción anteriormente mencionada. Para enriquecer al RS con más datos aún, se valoran las puntuaciones del usuario sobre los temas, así como las características personales del usuario.

Sistemas de popularidad. Un ejemplo sencillo de este tipo de RS es el siguiente: Cuando accedemos a una página web de ventas online (como puede ser Amazon), lo normal es que a los usuarios se les sugiera o artículos rebajados o artículos con grandes éxitos de ventas. Estos artículos con gran éxito de ventas son recomendados a través de sistemas de popularidad que estudian cuáles son los artículos más vendidos y demandados.

1.5 Factorización matricial y predicción.

La Factorización Matricial (MF, Matrix Factorization) [Rendle 2008] es un método de predicción muy útil en los sistemas de recomendación. La factorización matricial realiza una aproximación a la predicción como una combinación lineal de factores, permitiendo buena escalabilidad, y puede incluir diferentes técnicas algorítmicas, como las redes neuronales [Takacs 2009]. A partir de una matriz de ratings R, donde las filas son los usuarios, las columnas son los ítems, y el contenido son las valoraciones de los ítems por parte del usuario, el proceso de factorización genera dos nuevas matrices:

Page 23: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

23

• 𝑃𝑃 𝜖𝜖 ℝ𝑛𝑛𝑛𝑛𝑛𝑛: representa los factores k-latente de los n usuarios.

• 𝑄𝑄 𝜖𝜖 ℝ𝑚𝑚𝑛𝑛𝑛𝑛: representa los factores k-latente de los m ítems.

Una vez realizada la factorización, las predicciones de valoración (�̂�𝑟𝑢𝑢𝑢𝑢) de un usuario u a un ítem i pueden ser computadas por el producto escalar del vector fila de la matriz P que contiene los factores latentes del usuario u (�⃗�𝑝𝑢𝑢) y el vector columna de la matriz Q que contiene los factores latentes del ítem i (�⃗�𝑞𝑢𝑢):

(1) �̂�𝑟𝑢𝑢𝑢𝑢 = �⃗�𝑝𝑢𝑢 ∙ �⃗�𝑞𝑢𝑢𝑇𝑇

Por lo tanto, el proceso de aprendizaje consiste en encontrar los parámetros óptimos para las matrices P y Q que verifica:

(2) 𝑅𝑅 ≈ 𝑃𝑃 ∙ 𝑄𝑄𝑇𝑇

Este proceso suele plantearse como un problema de optimización en el que debe minimizarse la diferencia cuadrática entre las valoraciones conocidas (𝑟𝑟𝑢𝑢𝑢𝑢) de la matriz R y las predicciones (�⃗�𝑝𝑢𝑢 ∙ �⃗�𝑞𝑢𝑢𝑇𝑇 ):

(3) min�⃗�𝑝𝑢𝑢 ,𝑞𝑞�⃗ 𝑖𝑖

∑ ((𝑢𝑢,𝑢𝑢)𝜖𝜖 ℝ 𝑟𝑟𝑢𝑢𝑢𝑢 − �⃗�𝑝𝑢𝑢 ∙ �⃗�𝑞𝑢𝑢𝑇𝑇 )2

Este modelo puede ser entrenado a través de la técnica de Gradiente en Descenso (GD, Gradient Descent) [Koren 2010]. Este método se ha mostrado muy eficiente para problemas con grandes cantidades de datos [Bottou 2010]. Por último, una vez que se tienen las predicciones, hay que comprobar cómo de buenas son éstas. Para ello se utiliza la métrica RMSE (Root Mean Squared Error), que permite obtener una cierta medida del error cometido en la recomendación. Esta métrica se calcula según esta ecuación:

(4) RMSE = �∑ �𝑝𝑝𝑠𝑠,𝑖𝑖−𝑝𝑝�𝑠𝑠,𝑖𝑖�

2𝑠𝑠,𝑖𝑖∈𝐷𝐷𝑡𝑡𝑡𝑡𝑠𝑠𝑡𝑡

|𝐷𝐷𝑡𝑡𝑡𝑡𝑠𝑠𝑡𝑡|

donde Dtest es el conjunto de datos de test utilizado para evaluar la precisión de la predicción.

1.6 Computación reconfigurable.

En esta tesis se describen varios algoritmos que utilizan métodos de computación paralela desarrollados para acelerar los cálculos involucrados en los RS, de ahí la necesidad de contar con una tecnología hardware, concretamente la computación reconfigurable, capaz de implementar dichos algoritmos.

1.6.1 Definición y conceptos.

La Computación Reconfigurable (RC, Reconfigurable Computing) es una tecnología gracias a la cual se pueden diseñar circuitos y arquitecturas de computación de manera

Page 24: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

24

flexible, los cuales pueden ser programados sobre un dispositivo FPGA (Field Programmable Gate Array). De esta forma, la capacidad de la FPGA para albergar circuitos y sistemas diseñados para cualquier propósito permite el desarrollo de sistemas SoC (System on Chip) integrados en un mismo chip. Estos sistemas también pueden implementarse en tecnologías harware no reconfigurables, como ASIC (Application Specific Integrated Circuit). El término SoC surge a partir de los sistemas empotrados o embebidos (ES, Embedded Systems), que son sistemas de computación de propósito específico que forman parte de un sistema de computación más grande. Alrededor de los ES aplicados con propósitos de computación se genera el área de la computación empotrada (EC, Embedded Computing), a partir de la cual se puede considerar la RC como el área específicamente dedicada a los sistemas y tecnologías hardware reprogramables o reconfigurables. Los sistemas de computación reconfigurable se pueden clasificar en dos grandes grupos: grano fino y grano grueso. Lo que distingue a unos de otros es la complejidad de los elementos básicos programables y la anchura de las rutas de datos disponibles. Si se trata de elementos configurables muy básicos (por ejemplo, memorias de 16 palabras de 1 bit), hablamos de grano fino. Si por el contrario los elementos básicos programables son relativamente complejos (como por ejemplo ALUs) y generados a partir de otros elementos de menor nivel, hablamos de grano grueso. Los sistemas hardware implementados en FPGA permiten mucha más flexibilidad que los basados en tecnología ASIC, por lo que son más atractivos a la hora de investigar la implementación de algoritmos en circuitos eficientes.

1.6.2 FPGA.

En los primeros años de la Informática, el tiempo de diseño de los circuitos integrados era bastante más largo que el tiempo que se tardaba en realizar dicho diseño y realizar las pruebas de validación. Esta diferencia de tiempo se convirtió en un problema cuando el diseño presentaba algún error, ya que implicaba una pérdida de tiempo y de recursos, con el consiguiente perjuicio económico. A finales de los 60 y principios de los 70, se crearon los Dispositivos Lógicos Programables (PLD, Programmable Logic Devices), que aportaron una primera solución a este problema del tiempo de desarrollo y validación de circuitos. Los PLDs no eran más que una matriz de puertas lógicas y componentes programables (memorias) conectados entre sí mediante fusibles. Hasta hoy, se han desarrollado muchas familias de PLDs, muchas de las cuales son complejas debido a la conexión que se establece entre las puertas lógicas. De entre estas familias, la más conocidas son los dispositivos FPGA, ya que ofrecen una gran flexibilidad de diseño, capacidad de almacenamiento y versatilidad para realizar para implementaciones hardware, respecto a otras familias de dispositivos lógicos como los Arreglos Lógicos Programables (PLA, Programmable Logic Array) o Lógica de Arreglos Programables (PAL, Programmable Array Logic). En este sentido, las FPGAs pueden utilizarse como plataforma de pruebas en la que se evalúa y rediseña el circuito, de forma que, cuando el diseño está listo para la producción en masa, se implementa en los denominados circuitos VLSI (Very large-scale integration). Estos circuitos son rígidos, de propósito específico (no reprogramables) y por tanto nada flexibles; sin embargo, son más baratos y rápidos que una FPGA.

Page 25: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

25

El atractivo de las FPGA reside, además de su flexibilidad y reducción de tiempos de diseño, en el hecho de que no solo se utilizan como plataforma de pruebas, sino que pueden ser aplicados directamente para implementar sistemas de cómputo, ya que pueden implementar procesadores softcore en parte de su área o, incluso en los nuevos dispositivos, incluir procesadores hardcores ARM. De esta forma las FPGA son utilizadas directamente para resolver problemas de computación e implementar soluciones finales. La empresa Xilinx divide sus modelos de FPGA en diferentes familias en función de su tamaño y características. Así, dependiendo del presupuesto y de los requerimientos del diseñador, se elige la familia de FPGA que mejor se adapte a las necesidades del proyecto. Hay diferentes familias: Spartan (uso prácticamente académico), Kintex, Artix (uso principalmente industrial) y Virtex (uso para altas prestaciones). Otros vendedores y fabricantes de FPGAs son Atmel, Altera, AMD o Motorola. Dentro de las FPGAs de Xilinx (son las utilizadas en los desarrollos de esta tesis doctoral), encontramos una estructura jerárquica de componentes. En esta jerarquía se encuentran, como puede observarse en la Figura 1, los siguientes elementos:

• Los bloques configurables Bloques de Lógica Configurable (CLB, Configurable Logic Blocks), que se conectan directamente a una matriz de interconexión donde se realizan las conexiones reconfigurables.

• Dentro de estos CLBs podemos encontrar varias unidades de componentes llamadas slices. Los slices están compuestos por multiplexores y elementos reconfigurables llamados Tablas de Búsqueda (LUT, Look Up Table), que pueden ser utilizados como un bloque de memoria o un elemento lógico. El número de slices necesario en una implementación se considera una métrica para definir el tamaño del diseño.

• Otros elementos que pueden encontrarse en las FPGAs son DSP, multiplicadores, bloques de memoria o incluso procesadores completos (como fue el caso de Virtex 2, que contenía uno o dos procesadores PowerPC).

Figura 1. Arquitectura global FPGA [Qin 2018].

Page 26: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

26

A continuación, resumimos algunas ventajas e inconvenientes de las FPGA:

• Ventajas: o Aumento de la velocidad de procesamiento mediante paralelismo. o Reducción de consumo energético. o Flexibilidad de diseño. o Tiempos reducidos para el desarrollo y validación de sistemas.

• Desventajas: o Tiempo de aprendizaje para el diseño de sistemas. o Coste del chip para producción en masa del producto. o Menor velocidad respecto a diseños similares en ASIC.

1.6.3 Lenguajes de descripción hardware.

Para poder construir circuitos hardware que puedan ejecutarse en una FPGA, es necesario utilizar lenguajes de descripción hardware. Un Lenguaje de Descripción de Hardware (HDL, Hardware Description Language) es un lenguaje de programación especializado que se utiliza para definir la estructura, diseño y operación de circuitos electrónicos, y más comúnmente, de circuitos electrónicos digitales. Así, los lenguajes de descripción de hardware hacen posible una descripción formal de un circuito electrónico, y posibilitan su análisis automático y su simulación. Hay que destacar dos aspectos que facilitan los HDL:

• Los HDL son declarativos, es decir, facilitan la comprensión del código del circuito implementado.

• La estructura hardware puede ser modelada en un HDL independiente al utilizado para modelar el comportamiento del diseño.

Los lenguajes de descripción hardware más extendidos son VHDL y Verilog. Además, en los últimos años ha incrementado un gran auge de los lenguajes de Síntesis de Alto Nivel (HLS, High Level Synthesis). Así, Vivado HLS el lenguaje de alto nivel de Xilinx basado en C para describir circuitos hardware.

VHDL. VHDL es un lenguaje principalmente dedicado a la descripción de circuitos digitales. Al no ser un lenguaje de programación, para poder diseñar circuitos con él es necesario conocer su sintaxis y tener en cuenta una serie de cuestiones. Es un lenguaje estándar, porque no depende de ningún fabricante o dispositivo, y es independiente, lo cual permite que se puedan reutilizar los diseños. También, al ser un estándar, tiene la ventaja de que es un diseño jerárquico, por lo que se mantiene un orden y se siguen ciertas reglas.

Page 27: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

27

Verilog. Verilog también es un lenguaje de descripción de circuitos hardware. Soporta el diseño, la prueba y la implementación de circuitos analógicos, digitales y de señales mixtas a diferentes niveles de abstracción. Al igual que VHDL, este lenguaje es un estándar de uso público. Este lenguaje se diseñó basándose en el lenguaje de programación C, con el fin de que resultara familiar para los programadores y así fuese rápidamente aceptado. Por esta razón Verilog tiene un preprocesador como C y la mayoría de sus palabras reservadas son muy parecidas a las de dicho lenguaje.

HLS. Por último, HLS podría considerarse como un avance más de Verilog. ya que su sintaxis es muy parecida a la de C. Por lo tanto, se podría destacar que, para los programadores hardware, es más fácil utilizar HLS o Verilog antes que VHDL. La ventaja de utilizar HLS respecto a VHDL o Verilog es que se trata de un lenguaje de más alto nivel, por lo que no es necesario conocer en profundidad su estilo de programación.

Page 28: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

28

Page 29: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

29

2 Aceleración hardware de los sistemas de recomendación.

2.1 Resumen.

En este capítulo se presenta la investigación sobre varias implementaciones de algoritmos de sistemas de recomendación basados en el filtrado colaborativo mediante dispositivos reconfigurables. La investigación persigue un objetivo principal, que es poder acortar los tiempos de computación involucrados en los cálculos del RS. Pero también hay otros objetivos secundarios, como es aumentar la eficiencia de estos sistemas reduciendo su consumo energético, lo cual es valorable en sistemas que están calculando de forma ininterrumpida a lo largo del tiempo. Con este propósito se abordaron dos implementaciones de RS, en las que se explotó la paralelización de las tareas de cómputo involucradas en la descripción matricial.

• La primera fue un RS sencillo que sirvió como primera aproximación para comprobar la viabilidad de implementar los RS mediante FPGAs.

• La segunda fue un algoritmo más sofisticado de RS mediante el cual, además de obtener resultados más precisos, se consiguió reducir el tiempo de computación en comparación con los procesadores multicore habituales.

Para el diseño de estas implementaciones se utilizó HLS para describir el procesamiento paralelo y se validaron en tarjetas de prototipado de hardware reconfigurable. La validación de las implementaciones hardware se realizó utilizando grandes bases de datos reales, muy utilizadas por la comunidad científica para la prueba de algoritmos RS.

2.2 Introducción.

Hoy en día, en el marco de la sociedad de la información, una gran cantidad de información es generada a partir de fuentes de datos heterogéneas. La propia interacción del usuario que genera o usa esta información es añadida a la misma. Se pueden encontrar ejemplos representativos en el comercio electrónico (usuarios que compran y valoran productos) y en la industria del entretenimiento (usuarios que valoran series y películas. Aquí es donde entran en acción los RS que, a través de estas valoraciones, recomiendan o predicen valores a los usuarios. En la ejecución de los RS hay que señalar dos características que abren la puerta a la investigación de la implementación de sus algoritmos mediante computación reconfigurable. Principalmente, los algoritmos trabajan con unas bases de datos de gran tamaño, ya que hay una gran cantidad de usuarios que valoran muchos ítems. El trabajo de recomendación y predicción que realizan estos algoritmos requiere, por tanto, un gran esfuerzo computacional. Esto puede retrasar la generación de las recomendaciones, con

Page 30: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

30

la consiguiente pérdida de respuesta en tiempo real que necesitan los usuarios. En este sentido, el diseño de circuitos aceleradores hardware para acortar estos tiempos de generación de recomendaciones es de gran interés. Se propone usar dispositivos FPGA para el diseño de aplicaciones embebidas RS ya que combinan la flexibilidad del software con el rendimiento del hardware, cuando éste explota la capacidad de desarrollar cálculos paralelos. Así, si se diseña una buena arquitectura paralela, este tipo de computación puede aportar unos excelentes resultados de rendimiento, incluso superando el ofrecido por los microprocesadores habituales en condiciones experimentales similares. También pueden explorarse otros enfoques de diseño basados en diferentes tecnologías hardware. En este sentido, las Unidades de Procesamiento Gráfico (GPU, Graphic Processing Unit) pueden programarse utilizando OpenCL para fines similares, aunque su alto consumo de energía podría ser una limitación cuando se utilicen para aplicaciones integradas. En resumen, la propuesta de esta tesis es el diseño e implementación hardware de sistemas RS de altas prestaciones computacionales y bajo consumo energético, que permita el desarrollo de sistemas RS embebidos, lo cual abre grandes posibilidades de aplicación.

2.3 Sistemas de Recomendación.

En esta sección, se presentan los dos algoritmos CF con los que se ha trabajado, detallando su descripción matemática y funcionamiento.

2.3.1 Algoritmo básico.

En el contexto del aprendizaje automático, la técnica de factorización matricial representa una familia de algoritmos muy conocida que divide una matriz Χ ϵ ℝ𝑛𝑛𝑛𝑛𝑚𝑚 en dos matrices 𝑈𝑈 𝜖𝜖 ℝ𝑛𝑛𝑛𝑛𝑛𝑛 y 𝑉𝑉 𝜖𝜖 ℝ𝑛𝑛𝑛𝑛𝑚𝑚, de tal manera que 𝑋𝑋 ≈ 𝑈𝑈 ∙ 𝑉𝑉 [Lee 1997]. Hay que destacar que el rango de las matrices 𝑈𝑈 y 𝑉𝑉 es mucho más pequeño que el rango de Χ, ya que 𝑘𝑘 ≪ 𝑛𝑛 y 𝑘𝑘 ≪ 𝑚𝑚. Por lo tanto, las matrices factorizadas 𝑈𝑈 y 𝑉𝑉 contienen una representación compacta de la matriz original Χ. Aplicado al filtrado colaborativo, un sistema de recomendación basado en factorización matricial factoriza la matriz de valoración dispersa R ϵ ℝ𝑛𝑛𝑛𝑛𝑚𝑚 que contiene el conjunto de valoraciones conocidas de 𝑛𝑛 usuarios a 𝑚𝑚 elementos [Koren 2009].

El supuesto fundamental de este tipo de algoritmos es que las valoraciones de los usuarios de los artículos están condicionadas por un subconjunto de factores latentes intrínsecos a los usuarios y a los ítems. Por ejemplo, en RS de una película, se supone que la valoración que un usuario otorga a una película está condicionada por el género de la misma. La aplicación más popular de MF aplicado al filtrado colaborativo es la Factorización Matricial Probabilística (PMF, Probabilistic Matrix Factorization) [Mnih 2008]. PMF realiza la factorización mediante un modelo probabilístico que representa la interacción entre los usuarios y los elementos en un contexto de filtrado colaborativo.

Page 31: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

31

La Figura 2 contiene una representación gráfica de este modelo probabilístico. La figura contiene tres elementos de representación:

• Círculos que simbolizan las variables aleatorias.

• Flechas entre dos variables que indican la dependencia entre esas variables aleatorias.

• Rectángulos que indican las repeticiones de las variables aleatorias. El color de los círculos indica si las variables aleatorias se observan (verde) o deben aprenderse (blanco). Como podemos observar, existen tres variables aleatorias

• 𝑅𝑅𝑢𝑢𝑢𝑢 : simboliza la valoración del usuario u al ítem i.

• 𝑃𝑃𝑢𝑢 : simboliza los factores latentes de cada usuario u; y

• 𝑄𝑄𝑢𝑢 : simboliza los factores latentes de cada ítem i.

Las flechas entre 𝑃𝑃𝑢𝑢 y 𝑄𝑄𝑢𝑢 con 𝑅𝑅𝑢𝑢𝑢𝑢 denotan que existe dependencia entre la valoración del usuario u al ítem i y los factores latentes del usuario u y del ítem i.

PMF asume una distribución gaussiana para todas las variables aleatorias, 𝜎𝜎𝑅𝑅, 𝜎𝜎𝑃𝑃 y 𝜎𝜎𝑄𝑄, que denotan los hiperparámetros del modelo. La Figura 3 muestra el pseudo-código del algoritmo PMF, donde:

• Las entradas son la matriz de valoraciones R, el número de factores latentes K y los hiperparámetros para controlar el proceso de aprendizaje λ y γ.

• Las salidas son las matrices de factores latentes P y Q obtenidas de la matriz de valoraciones.

Figura 2. Representación gráfica del modelo PMF.

Pu

UI Rui

σR

σQ σP

Qi

Page 32: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

32

Figura 3. Algoritmo PMF.

2.3.2 Algoritmo BNMF.

El modelo de Factorización Matricial No-Negativo Bayesiano (BNMF, Bayesian Non-negative Matrix Factorization) [Hernando 2016] es otro modelo de factorización diseñado para sistemas de recomendación basados en filtrado colaborativo. El modelo BNMF ha demostrado su superioridad al proporcionar predicciones y recomendaciones más precisas que el modelo PMF. Al igual que PMF, BNMF factoriza la matriz de valoraciones de forma probabilística. El principal objetivo del BNMF es proporcionar un significado probabilístico comprensible del espacio de factores latentes generado como consecuencia del proceso de factorización. Para lograrlo, el modelo se ha diseñado de manera que represente mejor la interacción entre los usuarios y los ítems. En lugar de asumir una distribución continua para representar las valoraciones, como la distribución gaussiana, se utiliza una distribución discreta. Esto coincide con la realidad de la mayoría de los sistemas de filtrado colaborativo, donde los usuarios deben calificar los ítems en una escala preestablecida (por ejemplo, de 1 a 5 estrellas).

Page 33: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

33

La Figura 4 muestra una representación gráfica de BNMF. Este modelo está compuesto por las siguientes variables aleatorias:

• �⃗�𝜃𝑢𝑢 es un vector dimensional K de una distribución Dirichlet. Estas variables aleatorias se utilizan para representar la probabilidad de que un usuario pertenezca a cada grupo.

• 𝑘𝑘𝑢𝑢𝑛𝑛 de la distribución Beta es utilizada para representar la probabilidad de que a un usuario del grupo k le guste el ítem i.

• 𝑍𝑍𝑢𝑢𝑢𝑢 de la distribución Categórica es utilizada para representar que el usuario u valora el ítem i como si él o ella perteneciera al grupo K.

• 𝜌𝜌𝑢𝑢𝑢𝑢 de la distribución Binomial es utilizada para representar la valoración visible del usuario u al ítem i.

Figura 4. Representación gráfica del modelo BNMF.

El modelo también contiene los siguientes hiperparámetros:

• α: está relacionado con la posibilidad de obtener grupos superpuestos de usuarios que compartan las mismas preferencias.

• β: está relacionado con la cantidad de pruebas necesarias para pertenecer a un grupo.

• K: está relacionado con el número de grupos (es decir, el número de factores latentes) que existen en el conjunto de datos.

• R está relacionado con la distribución Binomial que toma valores de 0 a R. Para poder calcular las predicciones con el modelo BNMF, debemos determinar la distribución de probabilidad condicional de las variables aleatorias no observables dadas por un conjunto de observaciones (es decir, las valoraciones conocidas). Aplicando la técnica de inferencia variacional [Hoffman 2013], podemos obtener el algoritmo para realizar esta tarea. La Figura 5 muestra una explicación detallada de la fase de entrenamiento del modelo BNMF. Para más información sobre el proceso de inferencia, véase [Hernando 2016].

U

Zuiρuikik α

R

K

β

I

Page 34: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

34

Figura 5. Algoritmo BNMF.

Page 35: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

35

2.4 Diseños hardware para aplicaciones embebidas.

En este apartado se explican con detalle las implementaciones hardware de los algoritmos PMF y BNMF. El objetivo de realizar ambas implementaciones es doble. Por un lado, se pretende acelerar las operaciones aritméticas de los algoritmos mediante la paralelización de cálculos matriciales, gracias a la capacidad que proporciona el hardware para el paralelismo real; por otro lado, se pretende obtener sistemas de cómputo de consumo de energía reducido, en comparación con los microprocesadores habituales.

2.4.1 Vivado HLS.

Las implementaciones hardware de los algoritmos PMF y BNMF se han realizado aplicando la tecnología HLS [Cong 2011]. Este método de programación transforma las especificaciones C (C, C++, SystemC, o código OpenCL) en una implementación a nivel de transferencia de registros (RTL, Register Transfer Level), lo que permite sintetizar el diseño a cualquier dispositivo FPGA. De esta manera, HLS facilita el diseño rápido de circuitos eficientes al paralelizar el código automáticamente. HLS tiene como objetivo proporcionar al diseñador una manera rápida de implementar algoritmos en hardware, partiendo de una especificación software. La conversión se realiza a partir de una función C, C++ o System C. Para convertir una descripción software en un módulo hardware equivalente, se asocian los elementos del lenguaje de programación utilizado a elementos propios del diseño digital y se imponen ciertas restricciones semánticas en el bloque de código a sintetizar, denominado top function. Específicamente, para este trabajo se ha considerado la herramienta Xilinx Vivado HLS [Xilinx 2020], la cual ha sido analizada en profundidad en [O'Loughlin 2014]. En cuanto a la metodología de diseño, Vivado HLS permite la validación del algoritmo en dos niveles:

• Software: permite verificar que el código está correctamente diseñado.

• Hardware: permite comprobar que la transformación ha sido adecuada. Por otro lado, también es posible aplicar una serie de optimizaciones sobre un mismo diseño, para buscar el equilibrio deseado entre tiempo de ejecución y recursos consumidos. El entorno de trabajo de Vivado HLS está basado en el IDE Eclipse y adaptado a las particularidades de la síntesis de alto nivel. Dentro del mismo se dispone de todo lo necesario para llevar a cabo el diseño y test de módulos hardware completos (ventanas de edición, árbol del proyecto, consolas de ejecución y depuración, etc). La metodología de trabajo está basada en proyectos, de forma que es posible generar diferentes implementaciones hardware a partir de un mismo proyecto. La forma de trabajar con los proyectos puede ser manual, a través de la interfaz gráfica, o automática, mediante el uso de scripts tcl. Dentro de un proyecto podemos diferenciar varias partes:

• Características generales del diseño: familia y dispositivo FPGA seleccionada, frecuencia de reloj objetivo, etc.

Page 36: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

36

• Código fuente: o Relacionado con la implementación top function y todas las funciones de menor

jerarquía utilizadas. o Relacionado con las pruebas (test bench).

• Soluciones, englobando lo anterior junto con una serie de directivas especificadas por el usuario para generar una implementación del diseño.

Dependiendo de la tarea que se está realizando, se puede acceder a tres perspectivas diferentes: síntesis, depuración y análisis.

• Síntesis (Synthesis): Es la perspectiva principal donde se desarrolla el código y se aplican las diferentes directivas de optimización. Como se puede ver en la Figura 6: o A la izquierda está la ventana Explorer, donde se encuentran los ficheros fuentes,

el fichero de test bench para la simulación y las diferentes soluciones adoptadas sobre el código fuente. En cada solución, por ejemplo, se pueden aplicar diferentes directivas de optimización.

o En la parte posterior derecha, es donde se puede realizar el cambio a una perspectiva diferente.

o En la parte inferior se localizan: la consola, donde aparecen los mensajes de las diferentes herramientas a las que llama el entorno (compilador, sintetizador y simulador RTL); y la entrada/salida estándar, en caso de utilizarse.

• Depuración (Debug): Es una perspectiva de depuración de código C/C++, igual que la que se utiliza en los entornos de desarrollo software.

• Análisis (Analysis): En esta perspectiva pueden estudiarse las características de una implementación en cuanto a temporización y recursos, así como el comportamiento del hardware generado. El consumo en ciclos de reloj es una cantidad estimada. Los elementos más importantes en esta perspectiva son: o Jerarquía (Module Hierarchy): Muestra la top function y todas las funciones

utilizadas dentro de la misma. o Rendimiento (Perfomance Profile): Muestra la cantidad de ciclos de reloj que

tarda el diseño en procesar el primer conjunto de datos de entrada (Latency) y el número de ciclos de reloj necesarios para aceptar datos nuevos a la entrada (Initiation Interval).

o Estimación de recursos consumidos (Resource Profile): Muestra los recursos internos que tiene disponibles la FPGA de forma detallada, así como los recursos necesarios para implementar el módulo generado.

2.4.2 Zedboard Zynq -7000.

La tarjeta utilizada para la validación de los desarrollos hardware fue la Zedboard Zynq-7000, del fabricante Digilent (Figura 7). Se trata de una tarjeta de prototipado de bajo costo para el desarrollo de SoC programable. ZedBoard es compatible con SDSoC, que es un entorno para desarrollar aplicaciones C/C++ integradas mediante un IDE Eclipse fácil de usar.

Page 37: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

37

Esta placa contiene todo lo necesario para crear un diseño basado en Linux, Android, Windows u otro sistema operativo/RTOS. Además, varios conectores de expansión facilitan el acceso al sistema de procesamiento y las E/S lógicas programables.

Figura 6. Entorno IDE de Vivado HLS.

Figura 7. Zedboard Zynq -7000.

Page 38: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

38

Las características de esta tarjeta son:

• Xilinx Zynq-7000 AP SoC XC7Z020-CLG484.

• Arm Cortex®-A9 de núcleo doble.

• Almacenamiento: memoria DDR3 de 512 MB, memoria flash quad-SPI de 256 MB y tarjeta SD de 4 GB.

• Programación USB-JTAG incorporada.

• Ethernet 10/100/1000.

• USB OTG 2.0 y USB-UART.

• Códec de audio de 24 bits estéreo, de bajo consumo, de 96 kHz ADAU1761 SigmaDSP® de Analog Devices.

• Transmisor HDMI de 225 MHz, de alto rendimiento ADV7511 de Analog Devices (HDMI 1080p, VGA de 8 bits, OLED 128 x 32).

• Expansión de E/S de PS y PL (FMC, Pmod y XADC).

2.4.3 Diseño PMF.

El algoritmo PMF se paralelizó utilizando algunas directivas diseñadas para desenrollar bucles y funciones, y dividir arrays para realizar operaciones paralelas. Se implementaron dos versiones de PMF en FPGA:

• La primera versión fue un diseño simple sin paralelismo, ideado como primera aproximación al problema para comprobar la viabilidad de utilizar un sistema operativo integrado capaz de ejecutar un RS completo.

• La segunda versión fue el diseño paralelo, ideado para para acelerar las operaciones de cálculo matricial del sistema de recomendación.

La Figura 8 muestra la estrategia seguida de paralelización, de acuerdo con el algoritmo descrito en la Figura 3. Así, tras inicializar el algoritmo, se paralelizaron dos bucles consecutivos para actualizar las correspondientes matrices factorizadas para cada usuario/ítem. Estos bucles se realizan secuencialmente varias veces.

Figura 8. Estrategia básica paralelización PMF.

producto escalarde p[u] y q[i]

calcularerror

actualizarp[u][k]

producto escalarde p[u] y q[i]

calcularerror

actualizarp[u][k]

producto escalarde p[u] y q[i]

calcularerror

actualizarp[u][k]

···para cada usuario u y para cada ítem i

···

producto escalarde p[u] y q[i]

calcularerror

actualizarq[u][k]

producto escalarde p[u] y q[i]

calcularerror

actualizarq[u][k]

producto escalarde p[u] y q[i]

calcularerror

actualizarq[u][k]

···para cada ítem i y para cada usuario u

···

150 iteraciones

bloque paralelo para usuarios bloque paralelo para ítems

puntuacionesaleatorias

p[u][k]q[i][k]

selecciones iniciales

Page 39: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

39

Para ilustrar las distintas alternativas de descripción del diseño hardware del algoritmo PMF, las siguientes figuran muestran los códigos fuente principales de tres implementaciones: secuencial (Figura 9), HLS (Figura 10) y OpenMP (Figura 11). #include <iostream> #include<time.h> #include<fstream> #include<stdlib.h> #include <iomanip> #include <string> #include <map> #include <random> using namespace std; int main(){ //parametros int num_iters=150; // En torno a 150 float lambda=0.055; // En torno a 0.05 float gamma =0.01; // En torno a 0.1 int k=15; // En torno a 10 double error=0.0; int users=6040; //Max_users int items=3706; //Max_items //Indices bucles int i,j,f; int *ratings; double *p,*q; ratings=(int *) malloc(sizeof(int)*users*items); p=(double *) malloc(sizeof(double)*users*k); q=(double *) malloc(sizeof(double)*items*k); //ratings a -1 for(i=0;i<users;i++){ for(j=0;j<items;j++){ ratings[i*items+j]=-1; //cout<<"| |"<<ratings[i*items+j]; } } //Inicializacion ratings int us,it,vo; string u,ite,vot; ifstream lectura; lectura.open("training-ratings.csv",ios::in); if (lectura.is_open()) { while (!lectura.eof()) { getline(lectura, u, ';'); if (!lectura.eof()) { getline(lectura, ite, ';'); getline(lectura, vot); us = atoi(u.c_str()); it = atoi(ite.c_str()); vo = atoi(vot.c_str()); ratings[us*items+it]=vo; } } lectura.close(); } //Inicializacion p double k_i; string k_f; double k_i_last; string k_f_last; lectura.open("initial-user-factors.csv",ios::in); if (lectura.is_open()) { while (!lectura.eof()) { getline(lectura, u, ';'); us = atoi(u.c_str()); //cout <<"usuario "<<us<<endl; if (!lectura.eof()) {

Page 40: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

40

for(i=0;i<k-1;i++) { getline(lectura, k_f, ';'); k_i = atof(k_f.c_str()); p[us*k+i]=k_i; //p[us][i]=k_i; //cout<<"k "<<k_i<<endl; } getline(lectura, k_f_last); k_i_last = atof(k_f_last.c_str()); p[us*k+(k-1)]=k_i_last; //p[us][k-1]=k_i_last; // cout<<"k "<<k_i_last<<endl; } } lectura.close(); } //Inicializacion q lectura.open("initial-item-factors.csv",ios::in); if (lectura.is_open()) { while (!lectura.eof()) { getline(lectura, ite, ';'); it = atoi(ite.c_str()); //cout <<"item "<<it<<endl; if (!lectura.eof()) { for(i=0;i<k-1;i++) { getline(lectura, k_f, ';'); k_i = atof(k_f.c_str()); q[it*k+i]=k_i; //q[it][i]=k_i; //cout<<"k "<<k_i<<endl; } getline(lectura, k_f_last); k_i_last = atof(k_f_last.c_str()); q[it*k+(k-1)]=k_i_last; //q[it][k-1]=k_i_last; //cout<<"k "<<k_i_last<<endl; } } lectura.close(); } //ALGORITMO for(int iter=0;iter<num_iters;iter++) { for(i=0;i<users;i++){ for(j=0;j<items;j++){ for(f=0;f<k;f++){ if(ratings[i*items+j]!=-1){ error=ratings[i*items+j]-(p[i*k+f]*q[j*k+f]); cout<<"Error bucle 1 "<<error<<endl; p[i*k+f]=p[i*k+f]+ gamma*(error* q[j*k+f]-lambda*p[i*k+f]); } } } } for(i=0;i<items;i++){ for(j=0;j<users;j++){ for(f=0;f<k;f++){ if(ratings[j*items+i]!=-1){ error=ratings[j*items+i]-(p[j*k+f]*q[i*k+f]); cout<<"Error bucle 2 "<<error<<endl; q[i*k+f]=q[i*k+f]+ gamma*(error* p[j*k+f]-lambda*q[i*k+f]); } } } } } free(ratings); free(q); free(p); return 0; }

Figura 9. Implementación secuencial de PMF.

Page 41: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

41

void algoritmoBasico(volatile double ratings[223], volatile double p[90], volatile double q[555], int num_iters, int k, int users, int items) { #pragma HLS ARRAY_PARTITION variable=q complete dim=1 #pragma HLS ARRAY_PARTITION variable=p complete dim=1 #pragma HLS INTERFACE s_axilite port=ratings bundle=CTRL_BUS #pragma HLS INTERFACE s_axilite port=p bundle=CTRL_BUS #pragma HLS INTERFACE s_axilite port=q bundle=CTRL_BUS #pragma HLS INTERFACE s_axilite port=return bundle=CTRL_BUS #pragma HLS INTERFACE s_axilite port=num_iters bundle=CTRL_BUS #pragma HLS INTERFACE s_axilite port=k bundle=CTRL_BUS #pragma HLS INTERFACE s_axilite port=users bundle=CTRL_BUS #pragma HLS INTERFACE s_axilite port=items bundle=CTRL_BUS num_iters = 150; int u, i, f; double escalar = 0.0; double error = 0.0; float lambda = 0.055; float gamma = 0.01; k = 15; users = 6040; //Max_users items = 3706; //Max_items //Algoritmo: for (int iter = 0; iter < num_iters; iter++) { for (u = 0; u < users; u++) { #pragma HLS UNROLL for (i = 0; i < items; i++) { for (f = 0; f < k; f++) { #pragma HLS PIPELINE if (ratings[u * items + i] != -1) { escalar += p[u * k + f] * q[i * k + f]; } } if (ratings[u * items + i] != -1) { error = ratings[u * items + i] - (escalar); } escalar = 0.0; for (f = 0; f < k; f++) { #pragma HLS PIPELINE if (ratings[u * items + i] != -1) { p[u * k + f] = p[u * k + f] + gamma * (error * q[i * k + f] - lambda * p[u * k + f]); } } } } for (i = 0; i < items; i++) { #pragma HLS UNROLL for (u = 0; u < users; u++) { for (f = 0; f < k; f++) { #pragma HLS PIPELINE if (ratings[u * items + i] != -1) escalar += p[u * k + f] * q[i * k + f]; } if (ratings[u * items + i] != -1) error = ratings[u * items + i] - (escalar); escalar = 0.0; for (f = 0; f < k; f++) { #pragma HLS PIPELINE if (ratings[u * items + i] != -1) q[i * k + f] = q[i * k + f] + gamma * (error * p[u * k + f] - lambda * q[i * k + f]); } } } } //fin ITER

Figura 10. Implementación HLS de PMF.

Page 42: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

42

#include <iostream> #include<time.h> #include<fstream> #include<stdlib.h> #include <iomanip> #include <string> #include <map> #include <omp.h> #include <random> #include <omp.h> using namespace std; int main(){ //Parametros: int num_iters=150; float lambda = 0.055; float gamma = 0.01; int k = 15; double ini,fin; double error = 0.0; double escalar = 0.0; int users = 6040; //Max_users int items = 3706; //Max_items //Indices bucles int i, u, f; //Numero de hilos OpenMP omp_set_num_threads(2); //Inicializacion de matrices (ratings, p y q) int *ratings; double *p, *q; ratings=(int *) malloc(sizeof(int)*users*items); p=(double *) malloc(sizeof(double)*users*k); q=(double *) malloc(sizeof(double)*items*k); #pragma omp parallel for private(u,i) for(u=0;u<users;u++) { for(i=0;i<items;i++) { ratings[u*items+i]=-1; } } //Inicializacion ratings int us, it, vo; string use, ite, vot; ifstream lectura; lectura.open("training-ratings.csv",ios::in); if (lectura.is_open()) { while (!lectura.eof()) { getline(lectura, use, ';'); if (!lectura.eof()) { getline(lectura, ite, ';'); getline(lectura, vot); us = atoi(use.c_str()); it = atoi(ite.c_str()); vo = atoi(vot.c_str()); ratings[us*items+it]=vo; } } lectura.close(); }

Page 43: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

43

//Inicializacion p double k_i; string k_f; double k_i_last; string k_f_last; lectura.open("initial-user-factors.csv",ios::in); if (lectura.is_open()) { while (!lectura.eof()) { getline(lectura, use, ';'); us = atoi(use.c_str()); if (!lectura.eof()) { for(i=0;i<k-1;i++) { getline(lectura, k_f, ';'); k_i = atof(k_f.c_str()); p[us*k+i]=k_i; } getline(lectura, k_f_last); k_i_last = atof(k_f_last.c_str()); p[us*k+(k-1)]=k_i_last; } } lectura.close(); } //Inicializacion q lectura.open("initial-item-factors.csv",ios::in); if (lectura.is_open()) { while (!lectura.eof()) { getline(lectura, ite, ';'); it = atoi(ite.c_str()); if (!lectura.eof()) { for(i=0;i<k-1;i++) { getline(lectura, k_f, ';'); k_i = atof(k_f.c_str()); q[it*k+i]=k_i; } getline(lectura, k_f_last); k_i_last = atof(k_f_last.c_str()); q[it*k+(k-1)]=k_i_last; } } lectura.close(); } //Algoritmo: ini=omp_get_wtime(); for(int iter=0;iter<num_iters;iter++) { printf("Iteracion %d\n",iter); #pragma omp parallel { #pragma omp for private(u,i,f) reduction(+:escalar) for(u=0;u<users;u++) { for(i=0;i<items;i++) { for(f=0;f<k;f++) { if(ratings[u*items+i]!=-1) { escalar+=p[u*k+f]*q[i*k+f]; } } if(ratings[u*items+i]!=-1) { error=ratings[u*items+i]-(escalar); } escalar=0.0; for(f=0;f<k;f++) { if(ratings[u*items+i]!=-1) { p[u*k+f]=p[u*k+f]+ gamma*(error* q[i*k+f]-lambda*p[u*k+f]); } } } }

Page 44: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

44

#pragma omp for private(u,i,f) reduction(+:escalar) for(i=0;i<items;i++) { for(u=0;u<users;u++) { for(f=0;f<k;f++) { if(ratings[u*items+i]!=-1) escalar+=p[u*k+f]*q[i*k+f]; } if(ratings[u*items+i]!=-1) error=ratings[u*items+i]-(escalar); escalar=0.0; for(f=0;f<k;f++) { if(ratings[u*items+i]!=-1) q[i*k+f]=q[i*k+f]+ gamma*(error* p[u*k+f]-lambda*q[i*k+f]); } } } }//fin omp parallel }//fin ITER fin=omp_get_wtime(); printf ("Tiempo en milisegundos %f\n",(fin-ini)*1000); }//fin MAIN

Figura 11. Implementación OpenMP de PMF.

2.4.4 Diseño BNMF.

Tras analizar la viabilidad de diseñar y programar en hardware reconfigurabe un sistema de recomendación basado en BMF, se procedió al diseño e implementación del algoritmo BNMF en hardware reconfigurable, con el objetivo de aumentar el rendimiento del procesamiento respecto a microprocesadores. Las principales herramientas utilizadas para el diseño del algoritmo BNMF en FPGA se resumen en la Tabla 1.

Hardware

Zedboard Zynq-7000

SoC Xilinx Zynq XC7Z020 Elementos HDMI, VGA, audio, Ethernet, SD, USB… Memoria 512 MB DDR3

Osciladores 100 MHz y 33.3 MHz Sistema Operativo Linaro OS

Software Xilinx Vivado HLS

Herramientas principales para implementar BNMF en FPGA.

La Figura 12 muestra la arquitectura en la que se implementa y ejecuta BNMF. Esta arquitectura consiste básicamente en tres elementos, comunicados mutuamente a través de un bus AXI: memoria externa, sistema multiprocesador y lógica programable.

Memoria externa. La memoria del tipo DDR3 puede almacenar hasta 512 MB. Alberga los conjuntos de datos que proporcionan los usuarios y los elementos al RS, así como el programa principal para controlar el flujo de BNMF.

Page 45: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

45

Almacenar los conjuntos de datos en la memoria externa en lugar de en los bloques de memoria interna de la FPGA permite liberar espacio en la lógica programable para implementar el núcleo de BNMF. Además, se eligió una interfaz AXI para implementar el acceso paralelo a la memoria para no limitar excesivamente el ancho de banda. Sin embargo, los conjuntos de datos muy grandes pueden exceder la capacidad de memoria disponible; en este caso, el conjunto de datos está alojado en la tarjeta SD junto con el sistema operativo Linaro.

Sistema multiprocesador. El sistema multiprocesador se basa en un procesador ARM Dual Cortex-A9. Este procesador solo se encarga de ejecutar el programa de control principal, consistente en las operaciones básicas para inicializar e iniciar el núcleo BNMF implementado en la FPGA, así como para obtener y mostrar los resultados devueltos por él.

Lógica programable. El bloque SoC implementa el núcleo de BNMF. La principal ventaja de este bloque es el alto nivel de paralelización de las operaciones, tal como se describen en la Figura 13. Por lo tanto, el rendimiento esperado de este diseño sería mayor que el rendimiento proporcionado por un simple código secuencial ejecutado mediante el mismo programa de control principal.

Figura 12. Arquitectura básica para BNMF en Zynq Zedboard 7000.

Como se hizo con PMF, se comienza instalando un sistema operativo Linux embebido (distribución Linaro) en la tarjeta de prototipado para permitir la ejecución del programa de control de BNMF en la FPGA. El sistema de archivos Linaro es una distribución Linux completa basada en Ubuntu con un escritorio gráfico. Este sistema operativo se lanza desde una partición separada en la tarjeta SD, por lo que los cambios realizados por el programa se escriben en dicha partición.

MPCore SystemARM Dual Cortex-A9

control program execution

initializations call BNMF get results display results

FPGA Xilinx Zynq-7000 SoCXC7Z020-CLG484

BNMF core

start loads users/items performs parallel

calculations returns results

Memory512 MB DDR3

datasets

users items

AXIBus

controlprogram

Page 46: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

46

La ventaja de usar Linaro es que podemos trabajar con la tarjeta ZedBoard como si ésta usara un procesador comercial. Por lo tanto, el código ejecutado tanto en ZedBoard como en la CPU es exactamente el mismo.

2.4.5 Estrategia de paralelización BNMF.

Los buenos resultados obtenidos previamente en la implementación paralela de PMF animaron a diseñar una implementación paralela más precisa con BNMF con el objetivo de mejorar el rendimiento final. La implementación hardware de BNMG se benefició de las características de paralelización automática de HLS sobre la arquitectura paralela diseñada. No obstante, también se modificó el diseño manualmente, incluyendo diferentes directivas de optimización proporcionadas por HLS para aumentar el paralelismo de grano fino sin necesidad de modificar el código C, con el fin de obtener un circuito de mayor rendimiento. Gracias a estas directivas, se consiguió paralelizar ciertos bucles y operaciones que de otra forma no hubiera sido posible. Las directivas más utilizadas fueron las diseñadas para desenrollar bucles o funciones, que permiten trabar con matrices en paralelo. Además, también se utilizaron otras directivas para transferir posteriormente los datos al algoritmo BNMF. La Figura 13 permite explicar fácilmente la estrategia de paralelización seguida por el diseño, de acuerdo con las operaciones descritas en la Figura 5.

• En primer lugar, se inicializaron de forma aleatoria γ, 𝑒𝑒+y 𝑒𝑒− . Estas inicializaciones se realizaron de forma paralela, ya que se trata de matrices altamente paralelizables.

• A continuación, cuatro bloques consecutivos implementan el funcionamiento en paralelo para calcular algunas secciones del algoritmo. Estos cuatro bloques se ejecutan de forma secuencial porque hay una clara dependencia de datos entre ellos.

• La actualización de λ requiere un gran coste computacional, ya que se podría definir como un vector de matrices. Básicamente, la estrategia de paralelización seguida consiste en actualizar cada uno de los elementos de ese vector de matrices en paralelo.

• A continuación, también se actualizan 𝑒𝑒+y 𝑒𝑒− en paralelo.

• Finalmente, los factores de usuario a y b son calculados en paralelo.

Page 47: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

47

Figura 13. Estrategia de paralelización de BNMF.

2.5 Comparativa de rendimiento.

En este apartado se muestran los resultados de rendimiento, en términos de tiempo de computación y consumo de energía, obtenidos en las implementaciones hardware de PMF y BNMF. Previamente, se detallan los conjuntos de datos o datasets utilizados para la validación experimental.

Initialization

parallel tasks

sequentialtasks i1 i2 i iI

k1k2···kK

k1k2···kK

k1k2···kK

Parallel block for calculating and

k1k2···kK

i1 i2 ··· iIk1k2···kK

i1 i2 ··· iIk1k2···kK

i1 i2 ··· iI

k

i

u1 u2 u uU

Parallel block for calculating

k

i

u1 u2 u uU

k1k2···kK

i1 i2 ··· iIk1k2···kK

i1 i2 ··· iIk1k2···kK

i1 i2 ··· iI

Parallel block for calculating , , and

Convergence?No

k1 k2 k kK

Parallel blocks for calculating and

u1 u2 ··· uU

i1 i2 ··· iI

Yes

u1 u2 ··· uU

i1 i2 ··· iIu1 u2 ··· uU

i1 i2 ··· iIu i

k

itemsi

usersu

factors

End

Start

Page 48: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

48

2.5.1 Datasets.

Tanto PMF como BNMF se probaron utilizando cuatro datasets de última generación de diferentes características, ampliamente utilizados para este fin: The Movies Dataset (Kaggle), Movielens-100K, Movielens-1M, y Netflix-100M. Estos datasets almacenan la actividad de muchos usuarios cuando valoran películas con puntuaciones del 1 al 5, donde cada usuario valora al menos 20 películas Las características (número de valoraciones, usuarios e ítems) de estos datasets se muestran en la Tabla 2. Se han escogido estos cuatro datasets al proporcionar diferentes tamaños, de forma que puedan analizarse el impacto de los cálculos matriciales involucrados en el rendimiento proporcionado por las implementaciones en FPGA. Para tener una idea aproximada de los datos procesados por la FPGA, el producto Users x Items va de 6.3 millones en Kaggle a 8.495 millones en Netflix-100M.

Dataset Kaggle Movielens-100k Movielenes-1M Netflix-100M Valoraciones 100,000 100,000 1,000,000 10,000,000

Usuarios 700 943 6,000 480,188

Ítems 9,000 1,682 4,000 17,691

Datasets utilizados para probar los algoritmos PMF y BNMF.

2.5.2 Procedimiento experimental.

La Figura 14 muestra las fases del procedimiento experimental seguido en la investigación. En primer lugar, se estudió en profundidad la mejor manera de paralelizar BNMF, buscando aquellas operaciones que podían ser paralelizadas sin alterar el cálculo correcto de las demás. Una vez determinada la estrategia de paralelización, se generó el core paralelo utilizando Xilinx Vivado HLS. El diseño de BNMF se exportó como un core IP, al que el procesador y la memoria pueden acceder según la arquitectura descrita en la Figura 12. A continuación, el core se exportó como bitstream al sistema operativo Linaro, y se añadieron los datasets necesarios para realizar las pruebas de validación. Finalmente, se ejecutó el algoritmo BNMF y se analizaron los resultados. Este procedimiento experimental se realizó tantas veces como datasets había disponibles, con el fin de analizar el rendimiento aportando diversidad de esfuerzo computacional para los algoritmos.

2.5.3 Resultados de tiempo de computación.

En este apartado se muestra el tiempo de computación obtenido por las implementaciones de hardware de los algoritmos BNMF y PMF, y el tiempo proporcionado por un microprocesador actual, de forma que pueda establecerse una comparativa FPGA-CPU. En este sentido, es importante recalcar que la CPU ejecutó códigos que implementan las mismas operaciones descritas en los algoritmos PMF y BNMF, considerando los mismos parámetros y datasets.

Page 49: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

49

Figura 14. Procedimiento experimental.

En cuanto a la implementación en FPGA, se midió el tiempo transcurrido mediante el uso de las funcionalidades proporcionadas por Vivado HLS, considerando el mismo dispositivo FPGA y la frecuencia de operación requerida. Una vez sintetizado el diseño, HLS permite saber si la frecuencia ofrecida puede ser soportada por la FPGA, así como el número de ciclos de reloj utilizados por el hardware. Por lo tanto, se calcula el tiempo de computación transcurrido. Para la ejecución en CPU se consideró un procesador Intel i7-950 con una frecuencia de reloj de 3 GHz para los experimentos. Nótese que el RS implementado en la FPGA alcanzó una frecuencia de 667 MHz, que es muy baja en comparación con la proporcionada por la CPU. La Tabla 3 muestra el tiempo de cálculo en segundos de los algoritmos PMF y BNMF para las implementaciones de la CPU y la FPGA, considerando los cuatro datasets.

Dataset Kaggle Movielens-100k Movielenes-1M Netflix-100M Algoritmo PMF BNMF PMF BNMF PMF BNMF PMF BNMF

CPU (s) 76.12 284.38 33.62 152.22 113.41 504.01 96,381.80 405,843.84

FPGA (s) 1,129.70 313.82 831.04 163.72 2,934.57 105.93 98,649.80 50,625.32 Aceleración

FPGA x0.07 x0.91 x0.04 x0.93 x0.04 x4.76 x0.98 x8.02

Tiempos de computación (s) y aceleración FPGA de los algoritmos PMF y BNMF para las implementaciones CPU y FPGA.

BNMF parallelization

Vivado HLS parallelization

Export HLS block into Linaro OS in Zynq

Load datasets into Linaro OS in Zynq

Run BNMF

Valid results?No

Yes

Test another datest

New designstrategy

Page 50: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

50

De estos resultados, se obtienen dos conclusiones interesantes:

• En primer lugar, comparando ambos algoritmos, se puede observar que BNMF tarda más tiempo en ejecutarse que PMF en la CPU, aunque mucho menos en la FPGA. La razón es simplemente que BNMF proporciona un mayor grado de paralelización en la implementación FPGA.

• En segundo lugar, se puede observar que, cuanto mayor es el tamaño del dataset (mayor número de datos a procesar por el algoritmo), mejores son los resultados que obtenemos en la implementación paralela de BNMF en la FPGA. Tanto en el dataset Kaggle como en el dataset Movielenes-100k, los resultados son muy similares. Sin embargo, los dos datasets de mayor tamaño empiezan a mostrar una mayor diferencia de tiempo entre la FPGA y la CPU. Así, para el dataset Movielens-1M, la FPGA consigue una aceleración de casi x5, mientras que esta aceleración aumenta a x8 para el dataset Netflix-100M.

En conclusión, una implementación FPGA es más atractiva para el algoritmo BNMF y para datasets más grandes.

2.5.4 Resultados de energía.

El consumo de energía es otra medida importante para medir el rendimiento de los sistemas informáticos, especialmente cuando estos sistemas tienen que estar operativos de forma ininterrumpida. Los algoritmos de RS tienen un cierto impacto energético en las plataformas de computación que los ejecutan. Conocer este impacto es importante porque ayuda a optimizar los diseños de los RS embebidos con conciencia energética. Se tiene en cuenta que los RS embebidos pueden ser demandados para casos de computación intensiva cuando se realizan muchas predicciones a lo largo del tiempo. Xilinx Vivado proporciona información sobre la potencia total disipada en el chip de las implementaciones de FPGA. La Tabla 4 muestra la potencia en vatios de los algoritmos PMF y BNMF para las implementaciones de CPU y FPGA, considerando los cuatro datasets. Se observa que la reducción de potencia en cualquier implementación FPGA es muy alta (más del 80% en promedio). Por lo tanto, una clara ventaja de implementar RS en las FPGA es el bajo consumo de energía con respecto a las CPU actuales.

Dataset Kaggle Movielens-100k Movielenes-1M Netflix-100M

Algoritmo PMF BNMF PMF BNMF PMF BNMF PMF BNMF

CPU (w) 8.21 11.33 7.33 10.81 12.31 16.26 32.21 41.20 FPGA (w) 0.95 2.52 0.82 2.24 1.64 4.41 3.03 7.37

Reducción de potencia 88% 78% 89% 80% 87% 73% 91% 83%

Potencia (w) y reducción de potencia FPGA de los algoritmos PMF y BNMF

para las implementaciones CPU y FPGA.

Bajo el punto de vista algorítmico, podemos comprobar en la Tabla 4 que BNMF consume bastante menos energía que PMF. Este hecho, junto con la reducción del tiempo de

Page 51: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

51

computación para grandes datasets que se deduce de la Tabla 3, nos lleva a concluir que BNMF es la mejor opción algorítmica para construir aplicaciones de RS embebidas.

2.6 Conclusiones y líneas futuras.

En esta tesis se investigó el rendimiento de los algoritmos de filtrado colaborativo basados en factorización matricial para sistemas de recomendación en aplicaciones embebidas implementadas mediante hardware reconfigurable, bajo términos de tiempo de computación y consumo de energía. Con este fin, se diseñaron arquitecturas paralelas mediante síntesis de alto nivel para dispositivos FPGA. En lo que respecta al tiempo de computación, la implementación FPGA del algoritmo bayesiano de factorización matricial no negativa proporcionó buenos rendimientos en comparación con los microprocesadores de uso general cuando se trata de grandes datasets, y superó claramente los resultados obtenidos por el enfoque de factorización matricial probabilística. Además, el bajo consumo de energía de las FPGA hace realmente interesante la aplicación de las FPGA como plataformas de computación para aplicaciones embebidas de filtrado colaborativo. Una posible línea de trabajo futuro sería explorar la paralelización de grano fino para incrementar la aceleración de las implementaciones hardware de PMF y BNMF. Para ello, a un nivel más bajo se podrían paralelizar las operaciones aritméticas elementales (sumas, multiplicaciones) involucradas en el cálculo de la factorización matricial.

2.7 Aportaciones.

Como aportaciones personales realizadas por el doctorando en el trabajo de tesis descrito en este capítulo, se citan las siguientes:

• Propuesta de arquitecturas paralelas para la aceleración de algoritmos de filtrado colaborativo basados en factorización matricial.

• Propuesta de una plataforma de computación basada en hardware reconfigurable de sistema de recomendación completo con un sistema operativo Linux integrado.

• Obtención de rendimientos acelerados respecto a CPUs para grandes datasets. La producción científica generada en relación a este capítulo fue la siguiente:

Artículos en revistas internacionales

• “Performance of Two Approaches of Embedded Recommender Systems”. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, and Fernando Ortega. Electronics, Vol. 9 (546). MDPI AG, Basel, Switzerland. pp. 1 -15. (2020). ISSN=2079-9292 (JCR=2.412-19, Q2/T2).

• “Recommender system implementations for embedded collaborative filtering applications”. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, Fernando Ortega, José M. Granado-Criado. Microprocessors and Microsystems 73. Elsevier. pp. 1 -10. (2020). ISSN=0141-9331. (JCR=1.161-19, Q3/T2).

Page 52: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

52

Artículos en congresos nacionales

• “Implementación SoC de una aplicación de filtrado colaborativo”. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, Fernando Ortega. Avances en Arquitectura y Tecnología de Computadores. Actas de las Jornadas Sarteco. , Cáceres, España, 2019. pp. 539-544. (2019). ISBN=978-84-09-12127-4. Jornadas Sarteco 2019 - IV Jornadas de Computación Empotrada y Reconfigurable, 18-20 de septiembre de 2019, Cáceres, España.

• “Computación empotrada de funciones de los sistemas de recomendación mediante FPGAs”. Francisco Pajuelo Holguera, Juan Antonio Gómez Pulido, Arturo Durán Domínguez y José María Granado Criado. Avances en Arquitectura y Tecnología de Computadores. Actas de las Jornadas Sarteco. F.J. Martínez, J.A. Sanguesa, P. Garrido, A. González, D. Llanos, S. Cuenca, J. González (eds.). Sociedad de Arquitectura y Tecnología de Computadores, Teruel, España, 2018. pp. 525-531. (2018). ISBN=978-84-09-04334-7. Jornadas Sarteco 2018 - III Jornadas de Computación Empotrada y Reconfigurable, 12-14 de septiembre de 2018, Teruel, España.

Page 53: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

53

3 Aplicación predictiva de los sistemas de recomendación en entornos sensoriales.

3.1 Resumen.

En el capítulo anterior, se expusieron propuestas de aceleración hardware de algoritmos para RS. La validación de estas propuestas se basó en un enfoque clásico de los RS, basados en la premisa "usuario valora ítems". De esta forma, se utilizaron datasets donde los usuarios valoraban películas. Sin embargo, en esta tesis se quiso explorar más allá de este enfoque, y plantear la hipótesis del comportamiento de los algoritmos RS como métodos predictivos en otros ámbitos donde, si bien el enfoque no es el de "usuario valora ítem", pueden ser similares en cuanto a la filosofía del conocimiento compartido que aporta el filtrado colaborativo. Como propuesta para explorar esta hipótesis, se utilizaron los algoritmos RS para predecir valores sensoriales en espacios académicos, según el comportamiento histórico de los usuarios de los mismos. Los espacios académicos son un ambiente que promueve el rendimiento de los estudiantes no sólo por la calidad de sus equipamientos, sino también por sus condiciones de confort ambiental, que pueden ser controladas por medio de actuadores que reciben datos de sensores. Algo similar puede decirse de otros entornos, como en el hogar, en los negocios o en la industria. Sin embargo, los dispositivos sensoriales pueden causar fallos o lecturas inexactas de manera inoportuna, afectando a los mecanismos de control. La relación mutua entre las variables ambientales puede ser una fuente de conocimiento para predecir una variable en caso de que un sensor falle. Además, la relación entre estos y la ocupación de los espacios por parte de los estudiantes a lo largo del tiempo también supone un estudio extra para la predicción. Por otro lado, los RS basados en el filtrado colaborativo tienen un enfoque predictivo, ya que la recomendación no deja de ser una predicción. En este sentido, el enfoque "usuario valora ítem" para predecir la valoración de un ítem para un usuari, da paso al enfoque "ocupación (sesión) en un espacio académico proporciona un valor (medida) a una variable ambiental". Esto se explica con detalle en el presente capítulo. Por lo tanto, se propone predecir las variables del entorno mediante los dos algoritmos de RS explicados en el capítulo anterior, es decir, PMF y BMNF. La precisión de los algoritmos al comparar los valores reales y los previstos y la comparación de rendimiento entre las dos implementaciones de filtrado colaborativo nos lleva a proponer a PMF como un buen enfoque para apoyar los sistemas de control ambiental.

Page 54: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

54

3.2 Introducción.

Los dispositivos sensoriales están cada vez más presentes en todo tipo de instalaciones académicas, proporcionando datos que se supervisan con múltiples fines, como la seguridad, la comodidad, la eficiencia energética, etc. Este ecosistema de datos promueve la creación de múltiples aplicaciones innovadoras y con fines específicos que facilitan la vida de la comunidad universitaria. Los espacios académicos utilizados por los estudiantes para el aprendizaje son instalaciones de especial interés para los sensores, ya que el uso del tiempo de estudio y aprendizaje depende no sólo de la calidad del mobiliario y el equipo técnico, sino también de las condiciones de confort del entorno. Estos espacios pueden ser aulas para clases magistrales, laboratorios, aulas de informática, bibliotecas, salas de estudio, etc. Las condiciones ambientales de estos espacios pueden ser controladas por medio de actuadores y sistemas como los termostatos para regular la temperatura, los motores para subir y bajar las persianas, el flujo de agua a través de limitadores, advertencias acústicas de la presencia de gases, etc. En cualquier caso, las decisiones de control se basan en los datos de los sensores que miden parámetros ambientales como la temperatura, la humedad y la concentración de CO2, mencionando sólo los tres parámetros cubiertos por la investigación. Los dispositivos sensoriales son sistemas electrónicos que pueden fallar en momentos específicos, dejando de proporcionar lecturas válidas y provocar decisiones incorrectas por parte de los sistemas de control del ambiente. Una posible solución a este tipo de evento sería ser disponer de un sistema de control inteligente que no sólo detecte el fallo de la lectura del sensor, sino que también sea capaz de predecir los valores de los parámetros ambientales, de acuerdo con el contexto en el que se ha producido. Este contexto es determinado por dos factores:

• Por un lado, es razonable suponer que existe una relación entre los parámetros ambientales cuando se enfrentan a una situación como la llegada de los estudiantes al aula. En ese caso, no sólo puede aumentar la temperatura, sino que también la humedad y los niveles de CO2 puede verse afectada. Además, esta relación puede tener un comportamiento similar en circunstancias análogas en otros momentos. Por lo tanto, la correlación entre las variaciones a lo largo del tiempo de los parámetros ambientales medidos por los sensores puede ser una importante fuente de conocimiento.

• Por otro lado, la evolución o el comportamiento a lo largo del tiempo de esta relación entre los parámetros en eventos similares de ocupación de aulas por los estudiantes, también es una fuente de conocimiento del contexto, que puede ser tomado en cuenta para la predicción.

La intersección de ambas fuentes de conocimiento puede ser explotada para diseñar un método inteligente de predicción. Para ello, se propone el uso de RS vinculando los tiempos de uso de los espacios en diferentes sesiones a lo largo del tiempo con la relación entre los parámetros ambientales medidos por los sensores durante esas sesiones. Los RS son una técnica de predicción. En este estudio, se considera la relación entre las sesiones a lo largo del tiempo y los parámetros ambientales recogidos por los diferentes sensores. Las condiciones ambientales se tienen en cuenta en la predicción.

Page 55: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

55

3.3 Smartpolitech.

SmartPoliTech es un proyecto desarrollado en la Escuela Politécnica de Cáceres (EPCC) de la Universidad de Extremadura (UEX), en España. Su objetivo es transformar la EPCC en un gran ecosistema experimental, un living-lab para el diseño, implantación, integración y validación de sistemas capaces de crear espacios inteligentes, mediante el desarrollo de tecnologías SmartX; un espacio que sea energéticamente eficiente, que facilite la vida social y académica, y que resulte atractivo para el desarrollo individual de sus habitantes y usuarios. La EPCC es un centro universitario de ámbito tecnológico localizado en la ciudad de Cáceres (Figura 15). Se fundó en 1982, ofreciendo actualmente cursos de grado y postgrado en informática, telecomunicaciones, arquitectura e ingeniería civil, además de programas de doctorado. Este centro proporciona las condiciones ideales para la ejecución de este proyecto, encuadrado en el ámbito de las smart-cities. Varios grupos de investigación en informática, comunicaciones, construcción y medio ambiente coexisten aquí, así como varias spin-offs y start-ups. Todo este potencial creativo, con el apoyo de cientos de estudiantes de grado y máster que conviven juntos cada año, se han coordinado para desarrollar el proyecto SmartPoliTech. Este proyecto se planificó como un proceso paulatino de sensorización y automatización de los distintos espacios del centro, con el fin de introducir niveles crecientes de inteligencia en cada uno de ellos y en su conjunto. La instalación de sensores y actuadores en espacios delimitados y controlados por elementos de inteligencia local enlaza, claramente, con los conceptos desarrollados en robótica durante las últimas décadas y que han sido adaptados y ampliados en campos de reciente creación como la Inteligencia Ambiental, la Inmótica o la Computación Ubicua. Cada espacio debe ser sensorizado según su uso y cada agrupación de espacios debe incorporar nuevos elementos de inteligencia. Los objetivos que debe alcanzar esta inteligencia son múltiples y a veces contrapuestos (posicionamiento, robustez, consumo energético, número de recursos físicos, etc), por lo que es necesario incluir algoritmos de planificación automática del posicionamiento de puntos de acceso, sensores o routers, mediante algoritmos de optimización multiobjetivo [Lanza 2015], junto también con técnicas de aprendizaje que incrementen el conocimiento del sistema. Teniendo todo esto en consideración, SmartPoliTech plantea una aproximación incremental a estos objetivos, iterando sobre tres fases:

• Selección del tipo y modelo de sensores y actuadores.

• Modelado predictivo de los distintos espacios y procesos.

• Planificación y control de los servicios según los datos sensoriales. En cada ciclo de este proceso, todas las tecnologías involucradas son evaluadas y sometidas a pruebas de fiabilidad y durabilidad, con el fin de establecer aplicaciones integradas en los protocolos y servicios habituales de la EPCC.

Page 56: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

56

Figura 15. Vista de la EPCC, con el posicionamiento de puntos de acceso Wi-Fi.

3.3.1 Tecnología.

Este proyecto plantea diferentes retos tecnológicos para recorrer el camino que va desde un espacio tradicional, no tecnificado, a un espacio inteligente que interactúa con sus habitantes a través de aplicaciones y servicios web accesibles desde dispositivos móviles. Un espacio inteligente como Smartpolitech se basa en la filosofía de datos abiertos para permitir que todos los que habitan el espacio puedan imaginar y crear nuevas aplicaciones y servicios cada día. Para ello es necesario desarrollar tecnologías en cinco frentes:

• Conectividad de sensores.

• Almacenamiento masivo y de alta disponibilidad.

• Visualización de datos.

• Modelado de procesos.

• Planificación de servicios. El avance en estos frentes conlleva la necesidad de investigar en middlewares de comunicación de tecnología abierta muy flexibles, escalables y seguros. Estas capas middlewares permiten:

• Comunicar cientos o miles de dispositivos heterogéneos con un sistema de almacenamiento en la nube de alta accesibilidad.

• Introducir bases de datos NoSQL.

• Explorar la intersección de la Internet de las Cosas con la Inmótica.

• La filosofía Open Data con la Minería de Datos.

• Apostar por el desacoplo entre el almacenamiento de los datos y sus usos finales. Todos estos son retos que requieren la participación coordinada de grupos con experiencia en electrónica, comunicaciones, sistemas de información, ingeniería de datos, ingeniería del software, inteligencia artificial, aprendizaje automático, estadística, acústica, edificación, instalaciones, etc. trabajando sobre un escenario común.

Page 57: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

57

3.3.2 Infraestructura Smartpolitech.

En este apartado se explica el sistema de información en el que se basa SmartPolitech: instalación de sensores y su guía de programación, las bases de datos utilizadas, el servicio de bus Zato (ESB) para conectar los sensores, bases de datos y usuarios, y finalmente, la herramienta de visualización de datos Grafana. La Figura 16 muestra un esquema-resumen de todos los componentes que integran el sistema de información de SmartPolitech y el flujo de datos que circula a través de dicho sistema. Los aspectos más notables de este esquema son:

• Sensores. Un gran número de sensores están distribuidos en toda la EPCC, la mayoría de los cuales han estado en continuo funcionamiento durante los últimos tres años. Estos sensores generan datos relacionadas con diferentes variables, principalmente: o Temperatura ambiente. o Humedad relativa. o Concentración de dióxido de carbono. o Consumo de agua. o Consumo de electricidad. La sección de vista de sensores del middleware incluye algunas directrices para el uso y programación de los sensores, así como mapas con su ubicación.

• El servicio de bus. Para este propósito, es escogió Zato Enterprise Service Bus (ESB) [Suchojad 2013]. Se trata de un software de código abierto con fines comerciales y comunitarios, consistente principalmente en un servidor de solicitudes escrito en Python que puede ser usado para construir middleware y sistemas de backend. SmartPoliTech utiliza Zato como anfitrión de servicios que facilitan la integración de datos de sensores a las bases de datos, enviándolos a las bases de datos, solicitando bases de datos por los usuarios, y recogiendo información del punto de acceso Wi-Fi, entre otros resultados.

• Las bases de datos. Otro aspecto a destacar es la persistencia, que se representa por las bases de datos InfluxDB y Neo4J en la Figura 16. o InfluxDB es una base de datos de código abierto de series temporales que encaja

perfectamente con el tipo de datos generados por SmartPoliTech (principalmente, son series temporales) y permite la integración con la herramienta de visualización de Grafana de una manera muy simple.

o Neo4J es una base de datos orientada a gráficos que se utiliza para construir un sistema de mantenimiento con las operaciones de crear, leer, actualizar y borrar en un modelo de red de datos. Se utiliza en sistemas de procesamiento en línea, por lo que SmartPoliTech lo aplica para obtener una estructura ordenada de las instalaciones y los sensores desplegados a través de ellos, permitiendo la generación de mapas disponibles para los usuarios de la EPCC.

Page 58: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

58

Figura 16. Infraestructura Smartpolitech y flujo de datos.

3.3.3 Dispositivos sensoriales.

SmartPoliTech cuenta con una amplia red de sensores (más de 200 dispositivos) que realizan mediciones en ambientes heterogéneos. Estos recogen valores de parámetros de infraestructura (estado de las ventanas y las persianas) de ocupación (mediante sesiones abiertas en puntos de acceso a la red inalámbrica), energéticos, etc. Los datos considerados para este trabajo se recogieron a partir de la temperatura y sensores de humedad transmitidos a través de la red Wi-Fi. El despliegue de estos dispositivos sensores fue simple y rápido, ya que son inalámbricos y funcionan con pilas. Fueron diseñados bajo la arquitectura de Arduino y fabricados por la la empresa Ray Ingeniería Electrónica S.L. [Anon, 2020], cuya sede están en la ciudad de Cáceres. La arquitectura Arduino de los sensores permite a los usuarios modificar el firmware a través del IDE y el programador ICSP, según las preferencias y propósitos de los usuarios. La Tabla 5 enumera las características particulares de los sensores usados en este trabajo, montado en dos dispositivos: DHT22 (temperatura y humedad) y RS485 (CO2). Ambos dispositivos se muestran en la Figura 17.

Medida Temperatura CO2 Humedad

Unidades º C %ppm %RH

Resolución 0.1 N/D 1 Rango -40 a +80 400 a 10000 0 a 100

Precisión +/ -0.5 +/-3 +/-3

Características de los sensores.

Page 59: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

59

Figura 17. Dispositivos sensoriales de SmartPolitech usados en la investigación.

3.3.4 Monitorización.

La herramienta Grafana se utiliza para visualizar los datos de SmartPoliTech, porque permite una fácil y rápida integración con InfluxDB. Es la herramienta más utilizada para visualizar datos de series temporales para infraestructura y aplicaciones de análisis, pero también se utiliza en otros ámbitos, entre ellos sensores industriales y control de procesos. La Figura 18 muestra una captura real del proyecto SmartPoliTech.

Figura 18. Visualizador de datos Grafana.

La plataforma Grafana puede detectar si un sensor falla, tomando la correspondiente acción. En este sentido, la herramienta fue configurada para enviar una señal de control en caso de lecturas inusuales. Por ejemplo, si el sensor registra un valor muy alto de temperatura en invierno, se envía un mensaje de advertencia con el fin de identificar dos posibles causas: el sensor se ha averiado o hay un problema en el aula donde se encuentra.

Page 60: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

60

3.4 Formulación del problema.

Los dispositivos sensoriales desplegados en espacios académicos inteligentes, en ocasiones, pueden presentar fallos de funcionamiento o simplemente dejar de funcionar. Las lecturas erróneas pueden llevar a decisiones de control no deseadas por parte de los sistemas de actuadores encargados de las condiciones ambientales de confort y seguridad. Este es el punto de partida de la investigación: ¿Qué se puede hacer cuando un sensor falla para que el sistema de control pueda seguir actuando con cierta fiabilidad? La Figura 19 muestra este punto de partida. Supongamos que una sesión de laboratorio tiene lugar durante un cierto intervalo de tiempo, en que la mera presencia de los estudiantes implica un cambio en las lecturas del sensor con respecto a sus valores iniciales. De esta manera, podemos describir el impacto del progreso del período de sesiones en los parámetros ambientales como la variación de la misma, expresada como el valor absoluto de la diferencia entre la lectura inicial y la final. Por ejemplo, si 𝑃𝑃 es el parámetro ambiental, que puede ser 𝑇𝑇 (temperatura), 𝐶𝐶 (CO2) o 𝐻𝐻 (humedad), entonces, 𝑃𝑃𝑉𝑉 = |𝑃𝑃𝑒𝑒𝑛𝑛𝑃𝑃 - 𝑃𝑃𝑃𝑃𝑛𝑛𝑃𝑃| es la variación absoluta considerada (𝑇𝑇𝑉𝑉, 𝐶𝐶𝑉𝑉 o 𝐻𝐻𝑉𝑉). Estas sesiones tienen lugar a lo largo del tiempo, en días posiblemente diferentes y en diferentes momentos. Si se produce un fallo en el sensor en cualquiera de estas sesiones, la propuesta es desarrollar un sistema inteligente capaz de reemplazar los datos erróneos con otro de valor concreto, el cual ha sido calculado teniendo en cuenta dos dimensiones: el contexto actual y el contexto histórico.

• El contexto actual tiene que ver con la relación entre los diferentes parámetros ambientales durante la misma sesión. Las variaciones 𝑇𝑇𝑉𝑉, 𝐶𝐶𝑉𝑉 y 𝐻𝐻𝑉𝑉 se deben claramente a la presencia y actividad desarrollada por los estudiantes en la sala, incluso en la mutua influencia entre los parámetros.

• El contexto histórico tiene que ver con la relación mutua entre 𝑇𝑇𝑉𝑉, 𝐶𝐶𝑉𝑉 y 𝐻𝐻𝑉𝑉 a lo largo del tiempo, es decir, su relación a lo largo de las diferentes sesiones. Es razonable suponer que, si la presencia de los estudiantes es la principal fuente de las variaciones 𝑇𝑇𝑉𝑉, 𝐶𝐶𝑉𝑉 y 𝐻𝐻𝑉𝑉, la relación entre ellos es similar en las diferentes sesiones de la misma asignatura, ya que todos comparten la misma característica de actividad (mismo número de estudiantes y mismos materiales utilizados). La excepción sería si una sesión corresponde a una actividad distinta donde pueda haber otras causas distintas al impacto de los estudiantes (como la influencia de diferentes equipos).

Las variaciones 𝑇𝑇𝑉𝑉, 𝐶𝐶𝑉𝑉 y 𝐻𝐻𝑉𝑉 registradas para las diferentes sesiones componen lo que se denomina matriz de parámetros:

• Filas: sesiones.

• Columnas: variaciones de los parámetros ambientales.

• Contenido: valores de estas variaciones en las sesiones correspondientes.

Así, si el sensor de temperatura falla durante la sesión 𝑃𝑃, se desconocerá el valor de la variación 𝑇𝑇𝑉𝑉. Sin embargo, teniendo en cuenta los contextos actuales e históricos explicados anteriormente, este valor de 𝑇𝑇𝑉𝑉 puede calcularse a partir de los valores de 𝑇𝑇𝑉𝑉 registrados en las diferentes sesiones, así como las variaciones del resto de parámetros ambientales durante la sesión 𝑃𝑃.

Page 61: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

61

Esta es la base del filtrado colaborativo. Por lo tanto, se propone utilizar un RS capaz de calcular el valor predicho 𝑇𝑇𝑉𝑉𝑃𝑃, que corresponde a la variación desconocida de la temperatura en la sesión 𝑃𝑃. Esta solución inteligente evita tener que reemplazar un sensor en tiempo real cuando falla para que el control ambiental puede seguir funcionando bien.

Figura 19. Propuesta de predicción de parámetros ante fallos.

T ini

C ini

H ini

T end

TV =

|T e

nd-T

ini|

C end

CV =

|C e

nd-C

ini|

H end

HV =

|H e

nd-H

ini|

sess

ion

1

T ini

C ini

H ini

T end

TV =

|T e

nd-T

ini|

C end

CV =

|C e

nd-C

ini|

H end

HV =

|H e

nd-H

ini|

sess

ion

N

T ini

C ini

H ini

T end

?

TV

= ?

C end

CV =

|C e

nd-C

ini|

H end

HV =

|H e

nd-H

ini|

sess

ion

ite

mpe

ratu

rese

nsor

FAI

LS

. . .

.. .

. .

. . .

.. .

. .

sens

or m

easu

ring

para

met

ers T

, C, H

durin

g th

ela

bse

ssio

nac

tuat

ors

take

actio

nsac

cord

ing

tova

riatio

nspa

ram

eter

varia

tions

HV1

CV1

TV1

HV2

CV2

TV2

······

···

HVi-1

CVi-1

TVi-1

H iCV

iTV

i

H i+1

CVi+

1TV

i+1

······

···

HVN

-1CV

N-1

T N-1

HVN

CVN

TVN

sess

ion

sess

ion

. . .

. .

sess

ion

sess

ion

sess

ion

. . .

. .

sess

ion

sess

ion

1 2 i-1 i i+1

N-1 N

rela

tions

hip

betw

een

T in

sess

ion

iw

ith T

in a

ll th

e se

ssio

ns

rela

tions

hip

betw

een

TV in

ses

sion

i with

the

othe

rpar

amet

ers

in sa

me

sess

ion

inte

llige

ntsy

stem

for

pred

ictio

nTV

P

pred

icte

dva

lue

"par

amet

er m

atrix

"

lab

sess

ions

alon

gw

eeks

varia

tions

tem

pera

ture

CO

2

h

umid

ity

Page 62: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

62

3.5 Sistemas de Recomendación en predicciones sensoriales.

Como se comentó anteriormente, los RS pueden ser aplicados para propósitos de predicción. Dando una descripción clásica, un sistema de recomendación considera las valoraciones que un conjunto de usuarios ha dado sobre unos determinados ítems. Por lo tanto, tenemos n usuarios, m ítems y una matriz de valoraciones R ϵ ℝ𝑛𝑛𝑛𝑛𝑚𝑚. Se seguirán estos términos para explicar el método utilizado, ya que posteriormente se mapearán hacia el problema abordado en SmartPoliTech. Los algoritmos de filtrado colaborativo que se han utilizado para el desarrollo de la investigación furon PMF y BNMF, explicados con detalle en el capítulo anterior. Como primer paso para aplicar BNMF como método de predicción, se debe determinar la distribución de probabilidad condicional de las variables aleatorias no observables dadas un conjunto de observaciones (es decir, las valoraciones conocidas). Aplicando la técnica de inferencia variacional [Hoffman 2013] se obtiene el algoritmo que realiza esta tarea. En la Tabla 6 se enumeran los valores de los hiperparámetros aplicados para los experimentos de PMF y BNMF. Estos valores han sido ajustados utilizando la técnica GridSearch, en el que se ha evaluado un amplio rango de valores para cada hiperparámetro con el fin de minimizar el error de predicción.

PMF BNMF

Número de factores 4 Número de factores 5

Número de iteraciones 50 Número de iteraciones 20

Tasa de aprendizaje β 0.2 Tasa de superposición α 0.2 Factor de regularización λ 0.05 Número de evidencias β 10

Hiperparámetros aplicados en los experimentos.

Los algoritmos PMF y BNMF se programaron en Python para esta investigación, siguiendo las configuraciones explicadas en el capítulo anterior. Los códigos de PMF y BNMF se muestran en la Figura 20 y la Figura 21 respectivamente. import csv import numpy as np import sys, os import urllib import random import scipy.special import math numFactors = 6 numIters = 1 gamma = 0.2 lambd = 0.05 numItems = 4 arr = [] ratings = []

Page 63: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

63

with open('MR_RU_12.csv', newline='') as File: reader = csv.reader(File) for row in reader: [u, i, x, s] = row[0].split(";") arr =[int(u),int(i),int(x),int(s)] ratings.append(arr) print (ratings) numUsers = len(ratings) print (numUsers) p = [[random.random() for _ in range(numFactors)] for _ in range(numUsers)] q = [[random.random() for _ in range(numFactors)] for _ in range(numItems)] iter = 0 for iter in range(numIters): print ("ITER",iter) for user in range(numUsers): for item in range(numItems): escalar = np.dot(p[user],q[item]) error = ratings [user][item] - (escalar) #print (error) escalar = 0 for k in range(numFactors): p[user][k]+= gamma*(error*p[user][k] - lambd*q[item][k]) print (p[user][k]) for item in range(numItems): for user in range(numUsers): escalar = np.dot(p[user],q[item]) error = ratings [user][item] - (escalar) escalar = 0 for k in range(numFactors): q[item][k]+= gamma*(error*q[item][k] - lambd*p[user][k]) prediction = np.dot(p[0],q[1]) #print(p) #print(q) print ("PREDICCION",prediction)

Figura 20. Código Python de PMF..

import urllib import random import scipy.special import math NUM_USERS = 1 NUM_ITEMS = 3 MIN_RATING = 0 MAX_RATING = 1 ratings = [[0.8,0.5,0.2]] """[5.1,4,2.2],[4.6,3,3.6],[5.3,3,2.6],[3.9,2,2.9], [4.7,3,2.2],[2.4,2,2.4],[3.5,2,3.6],[3,2,1.9],[2.8,4,2.2],[3.7,3,1.8], [5.3,2,1.9],[2.7,5,3.3],[3.6,2,2.8],[5.3,4,1.8],[2.5,3,2.2],[3,3,1.9], [5.3,2,2.2],[2,3,2.4],[4.1,4,3.6],[2,2,2.4],[4.1,2,2.8],[3.2,3,1.9]] """ NUM_FACTORS = 5 ALPHA = 0.2 BETA = 10 R = 4 gamma = [[random.random() for _ in range(NUM_FACTORS)] for _ in range(NUM_USERS)] ep = [[random.random() for _ in range(NUM_FACTORS)] for _ in range(NUM_ITEMS)]

Page 64: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

64

em = [[random.random() for _ in range(NUM_FACTORS)] for _ in range(NUM_ITEMS)] ################################################## NUM_ITERATIONS = 5 for it in range(NUM_ITERATIONS): print("Iteración " + str(it + 1) + " de " + str(NUM_ITERATIONS)) # Calculamos lambda lmbda = [[[0 for _ in range(NUM_FACTORS)] for _ in range(NUM_ITEMS)] for _ in range(NUM_USERS)] for u in range(NUM_USERS): for i in range(NUM_ITEMS): if ratings[u][i] != None: r = (ratings[u][i] - MIN_RATING) / (MAX_RATING - MIN_RATING) summation = 0 for k in range(NUM_FACTORS): lmbda[u][i][k] = math.exp( scipy.special.digamma(gamma[u][k]) + R * r * scipy.special.digamma(ep[i][k]) + R * (1 - r) * scipy.special.digamma(em[i][k]) + R * scipy.special.digamma(ep[i][k] + em[i][k]) ) summation += lmbda[u][i][k] for k in range(NUM_FACTORS): lmbda[u][i][k] /= summation # Reinicioamos gamma, epsilon+ y epsilon- gamma = [[ALPHA for _ in range(NUM_FACTORS)] for _ in range(NUM_USERS)] ep = [[BETA for _ in range(NUM_FACTORS)] for _ in range(NUM_ITEMS)] em = [[BETA for _ in range(NUM_FACTORS)] for _ in range(NUM_ITEMS)] # Actualizamos for u in range(NUM_USERS): for i in range(NUM_ITEMS): if ratings[u][i] != None: r = (ratings[u][i] - MIN_RATING) / (MAX_RATING - MIN_RATING) for k in range(NUM_FACTORS): gamma[u][k] += lmbda[u][i][k] ep[i][k] += lmbda[u][i][k] * R * r em[i][k] += lmbda[u][i][k] * R * (1 - r) ########################################################### a = [[0 for _ in range(NUM_FACTORS)] for _ in range(NUM_USERS)] for u in range(NUM_USERS): summation = sum([_ for _ in gamma[u]]) for k in range(NUM_FACTORS): a[u][k] = gamma[u][k] / summation b = [[0 for _ in range(NUM_FACTORS)] for _ in range(NUM_ITEMS)] for i in range(NUM_ITEMS): for k in range(NUM_FACTORS): b[i][k] = ep[i][k] / (ep[i][k] + em[i][k]) def compute_prediction (a_u, b_i): prediction = 0 for k in range(NUM_FACTORS): prediction += a_u[k] * b_i[k] return prediction * (MAX_RATING - MIN_RATING) + MIN_RATING predictions = [[None for _ in range(NUM_ITEMS)] for _ in range(NUM_USERS)] for u in range(NUM_USERS): for i in range(NUM_ITEMS): #if test_ratings[u][i] != None: predictions[u][i] = compute_prediction(a[u], b[i]) print (predictions)

Figura 21. Código Python de BNMF.

Page 65: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

65

3.6 Resultados.

En esta sección se describen los datasets utilizados en los experimentos de filtrado colaborativo, el procedimiento experimental y la comparación de rendimiento basada en el error cometido en la predicción.

3.6.1 Datasets.

La Tabla 7 muestra las principales características relacionadas con los conjuntos de datos utilizados en los experimentos. Se eligieron seis aulas de laboratorio según el uso de grupos de estudiantes de diferentes materias. Cada espacio se utilizó para un cierto número de sesiones durante varias semanas. La heterogeneidad de los espacios, el número de estudiantes y las asignaturas permite introducir una variedad de comportamientos muy útil para evaluar la respuesta de una solución basada en el filtrado colaborativo. Durante todas las sesiones registradas en estos espacios no se produjo ningún fallo de funcionamiento de ningún sensor, ni tampoco lecturas inusuales, lo cual es un requisito necesario para la posterior estimación del error de predicción.

Aula Sesiones Estudiantes Asignatura Celdas L1 36 (2 horas cada una) 20 Estructuras de Datos y de la Información 72 L2 15 (3 horas cada una) 15 Introducción a los Computadores L2 7 (4 horas cada una) 15 Diseño de Procesadores L2 12 (2 horas cada una) 12 Diseño de Sistemas Operativos L2 11 (4 horas cada una) 14 Computación Paralela L2 45 135 LD 18 (6 horas cada una) 12 Estructura de Computadores LD 28 (4 horas cada una) 12 Introducción a los Computadores LD 46 138 C3 24 (5 horas cada una) 40 1º Grado Informática C3 26 (5 horas cada una) 40 2º Grado Informática C3 50 150 T3 30 (5 horas cada una) 20 3º Grado Telecomunicaciones T3 22 (5 horas cada una) 20 4º Grado Telecomunicaciones T3 52 156

C2A 40 (2 horas cada una) 15 Inglés C2A 33 (4 horas cada una) 10 Máster TIC C2A 73 219

Características de los datasets utilizados para los experimentos.

Los datasets están disponibles de forma pública en los repositorios IEEE DataPort [GómezD1 2020] y Mendeley [GómezD2 2020].

Page 66: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

66

3.6.2 Procedimiento experimental.

El objetivo de la investigación en predecir las variaciones de los parámetros ambientales en caso de fallos de los sensores, aplicando filtrado colaborativo como herramienta de predicción, considerando las motivaciones descritas anteriormente sobre los contextos actuales e históricos. Para ello, se mapean los términos correspondientes del RS como se describe en la Tabla 8. Nótese que, de acuerdo con estas definiciones, las variaciones 𝑇𝑇𝑉𝑉, 𝐶𝐶𝑉𝑉 y 𝐻𝐻𝑉𝑉 (para PMF) corresponden a los puntos 1, 2 y 3, respectivamente.

CF Propuesta Matriz de valoraciones R Matriz de parámetros

n usuarios u N sesiones m ítems i Variaciones de los tres parámetros ambientales

Valoración r Medida sensor Valor predicho �̂�𝑝 Variaciones predichas

Términos mapeados entre CF y el trabajo propuesto.

3.6.3 Discretización de valoraciones.

Al construir la matriz de valoraciones, debe tenerse en cuenta una importante consideración: PMF puede trabajar con valoraciones correspondientes a variables continuas (valores reales), mientras que BNMF sólo puede trabajar con valores discretos. En este caso, la matriz de valoraciones se construye a partir de las variaciones de los parámetros ambientales (por ejemplo, de 0,0 a 5,8); por lo tanto, para BNMF estos valores deben discretizarse para proporcionar, por ejemplo, puntuaciones con sólo 10 valores posibles, que van desde "variación muy pequeña" a "variación muy grande".

PMF BNMF

Parámetro ambiental 𝑃𝑃 (𝑇𝑇, 𝐶𝐶,𝐻𝐻)

Medida al inicio de una sesión 𝑃𝑃𝑢𝑢𝑛𝑛𝑢𝑢

Medida al final de una sesión 𝑃𝑃𝑒𝑒𝑛𝑛𝑒𝑒

% de la variación absoluta durante la sesión - 𝑃𝑃𝑃𝑃 = �

𝑃𝑃𝑒𝑒𝑛𝑛𝑒𝑒𝑃𝑃𝑢𝑢𝑛𝑛𝑢𝑢

− 1 �

Min/max PP en todas las sesiones - 𝑃𝑃𝑃𝑃𝑚𝑚𝑢𝑢𝑛𝑛, 𝑃𝑃𝑃𝑃𝑚𝑚𝑚𝑚𝑛𝑛

Matriz valoraciones 𝑃𝑃𝑉𝑉 = |𝑃𝑃𝑒𝑒𝑛𝑛𝑒𝑒 − 𝑃𝑃𝑢𝑢𝑛𝑛𝑢𝑢| 𝑃𝑃𝑃𝑃 = 𝑟𝑟𝑟𝑟𝑟𝑟𝑛𝑛𝑃𝑃. 1 �𝑃𝑃𝑃𝑃 − 𝑃𝑃𝑃𝑃𝑚𝑚𝑢𝑢𝑛𝑛

𝑃𝑃𝑃𝑃𝑚𝑚𝑚𝑚𝑛𝑛 − 𝑃𝑃𝑃𝑃𝑚𝑚𝑢𝑢𝑛𝑛� 𝑥𝑥 10

Valor predicho 𝑃𝑃𝑉𝑉𝑃𝑃 𝑃𝑃𝑃𝑃𝑃𝑃

Error de predicción % de predicción de error 𝑃𝑃𝑉𝑉𝑃𝑃𝑒𝑒𝑝𝑝 = �

𝑃𝑃𝑉𝑉𝑃𝑃𝑉𝑉𝑃𝑃

− 1 � 𝑃𝑃𝑃𝑃𝑃𝑃𝑒𝑒𝑝𝑝 = �𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃

− 1 �

Nomenclatura para la fase experimental.

Page 67: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

67

3.6.4 Metodología.

Para explicar el procedimiento experimental, utilizamos la nomenclatura definida en la Tabla 9. Para simplificar la descripción, se identifica 𝑃𝑃 a partir de ahora como cualquiera de los parámetros ambientales 𝑇𝑇, 𝐶𝐶 o 𝐻𝐻. La Figura 22 resume el procedimiento experimental diseñado para esta propuesta. El planteamiento se apoya en la premisa de que los estudiantes utilizan una determinada estancia durante un cierto periodo de tiempo para asistir a una o varias sesiones docentes. Para este periodo de tiempo, se registran los valores del parámetro ambiental 𝑃𝑃 al principio y al final, por medio de las lecturas recogidas por el sensor correspondiente.

Figura 22. Procedimiento experimental.

BNMFPMF

(%) (%)

algorithm performancecomparison

predictionaccuracy

comparison

predictionaccuracy

comparison

sensor values collected atstart and end of each session

Absolute variationof P along the session

PP normalized between 0 and 1and discretized in 11 steps

% absolute variationof P along the session

Predicted valueof PV by PMF

Predicted valueof PD by BNMF

Min/Max values ofPP of all sessions

P = ambient parameter:Temperature (T), CO2 (C), humidity (H)

prediction bycollaborative

filtering

(rating matrix values)

Prediction error:absolute difference

Percentage ofprediction error

Page 68: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

68

Para construir las matrices de valoraciones, hay que tener en cuenta que PMF puede manejar variables continuas mientras que BNMF sólo puede manejar variables discretas. Así, para PMF se considera como valoración la variación absoluta de 𝑃𝑃 durante el período de sesiones, 𝑃𝑃𝑉𝑉, mientras que BNMF necesita un mecanismo adicional de discretización.

El mecanismo de discretización comienza calculando 𝑃𝑃𝑃𝑃 como la variación absoluta relativa de 𝑃𝑃 a lo largo de la sesión. Entonces, conociendo la valores mínimos y máximos de 𝑃𝑃𝑃𝑃 para todas las sesiones, se normaliza 𝑃𝑃𝑃𝑃 entre 0.0 y 1.0. Finalmente, el resultado normalizado se redondea hacia arriba al primer decimal más cercano y luego se multiplica por 10 para obtener la valoración 𝑃𝑃𝑃𝑃. Esta valoración puede corresponder a uno de los 11 valores posibles desde 0 ("sin variación") a 10 ("máxima variación posible"). Por ejemplo, la Figura 23 muestra las valoraciones de temperatura 𝑇𝑇𝑃𝑃 para la columna de temperatura en la matriz de valoraciones BNMF, obtenida tras aplicar el mecanismo de discretización para los seis datasets considerados.

0

5

10

15

20

25

30

0

5

10

15

20

25

Discretizedvariation (ºC)

Temperature T(ºC)

Lab sessions

L1 TDTVTiniTend

0

5

10

15

20

25

30

0

5

10

15

20

25

Discretizedvariation (ºC)

Temperature T(ºC)

Lab sessions

L2 TDTVTiniTend

Page 69: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

69

0

5

10

15

20

25

30

0

5

10

15

20

25

Discretizedvariation (ºC)

Temperature T(ºC)

Lab sessions

LD TDTVTiniTend

0

5

10

15

20

25

30

0

5

10

15

20

25

Discretizedvariation (ºC)

Temperature T(ºC)

Lab sessions

C3 TDTVTiniTend

0

5

10

15

20

25

30

0

5

10

15

20

25

Discretizedvariation (ºC)

Temperature T(ºC)

Lab sessions

T3 TDTVTiniTend

Page 70: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

70

Figura 23. Variaciones continua y discretizada de la temperatura.

Se consideran tantos casos de predicción como celdas haya en la matriz de valoraciones. Por ejemplo, para la celda 𝑃𝑃𝑢𝑢 que representa la valoración experimentada por el parámetro ambiental 𝑃𝑃 durante la sesión 𝑃𝑃, se asume que es un valor desconocido debido al fallo del correspondiente sensor. Por lo tanto, se obtienen los valor predichos 𝑃𝑃𝑉𝑉𝑃𝑃𝑢𝑢 y 𝑃𝑃𝑃𝑃𝑃𝑃𝑢𝑢 después de aplicar PMF y BNMF respectivamente. Como se conocen los valores reales 𝑃𝑃𝑉𝑉𝑢𝑢 y 𝑃𝑃𝑃𝑃𝑢𝑢, se puede calcular los errores absolutos 𝑃𝑃𝑉𝑉𝑃𝑃𝑒𝑒𝑢𝑢 y 𝑃𝑃𝑃𝑃𝑃𝑃𝑒𝑒𝑢𝑢, que también pueden representarse como un porcentaje de error de las valoraciones previstas con respecto a los verdaderos 𝑃𝑃𝑉𝑉𝑃𝑃𝑒𝑒𝑝𝑝𝑢𝑢 y 𝑃𝑃𝑃𝑃𝑃𝑃𝑒𝑒𝑝𝑝𝑢𝑢.

Como PMF y BNMF son algoritmos estocásticos, los valores predichos pueden ser diferentes en cada ejecución. Por esta razón, cada valor elegido como predicho fue la media de 41 ejecuciones, donde el mínimo, el máximo, la media, la mediana y la desviación estándar fueron registrados. La Figura 24 muestra un ejemplo de cálculo del error en la predicción para el dataset L1. La matriz de rendimiento que se muestra se generó a partir de los datos sensoriales, tras un proceso de discretización y normalización. Los resultados de la predicción corresponden al algoritmo BNMF.

3.6.5 Selección de los datos de entrenamiento y test.

Otro aspecto a destacar es que los algoritmos de CF realizan la predicción usando un conjunto de datos de entrenamiento y un conjunto de datos de prueba. Se considera que el dataset de entrenamiento está compuesto por todos los datos de la matriz de valoraciones, mientras que el dataset de prueba fue elegido siguiendo una estrategia de selección diagonal. Esta estrategia consiste en elegir los datos de test siguiendo un camino en zigzag que atraviesa las filas y las columnas de la matriz de manera uniforme, como muestra la Figura 25 para el conjunto de datos L1.

0

5

10

15

20

25

30

0

5

10

15

20

25

Discretizedvariation (ºC)

Temperature T(ºC)

Lab sessions

C2A TDTVTiniTend

Page 71: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

71

Figura 24. Ejemplo de cálculo del error de la predicción para el dataset L1.

para

met

ers

Tem

p.C0

2H

um.

max

.m

in.

mea

nm

ed.

dev.

max

.m

in.

mea

nm

ed.

dev.

max

.m

in.

mea

nm

ed.

dev.

Dif.

%Di

f.%

Dif.

%

date

sse

ssio

nsT

CH

TSCS

HS

TDTD

PCD

CDP

HD

HD

P29

-01-

2020

(09:

30-1

1:30

)1

4.2

33.

34.

794.

264.

454.

790.

273.

743.

223.

413.

650.

233.

753.

363.

643.

360.

200.

256%

0.41

14%

0.34

10%

30-0

1-20

20 (1

1:00

-13:

30)

25.

14

2.2

5.53

5.11

5.23

5.22

0.18

4.73

4.04

4.21

4.09

0.31

2.86

2.22

2.76

2.85

0.30

0.13

3%0.

215%

0.56

26%

31-0

1-20

20 (0

9:00

-14:

00)

34.

63

3.6

5.29

4.62

4.98

4.69

0.30

3.72

3.02

3.35

3.02

0.33

3.89

3.60

3.66

3.60

0.14

0.38

8%0.

3512

%0.

062%

03-0

2-20

20 (0

9:00

-14:

00)

45.

33

2.6

5.98

5.30

5.50

5.30

0.32

3.84

3.23

3.59

3.84

0.29

2.92

2.62

2.69

2.84

0.14

0.20

4%0.

5920

%0.

093%

03-0

2-20

20 (1

5:30

-19:

00)

53.

92

2.9

4.36

3.96

3.93

3.96

0.21

2.65

2.15

2.57

2.54

0.23

3.25

2.99

3.02

3.25

0.15

0.03

1%0.

5729

%0.

124%

04-0

2-20

20 (0

9:00

-13:

00)

64.

73

2.2

5.23

4.79

4.99

4.81

0.21

3.64

3.20

3.52

3.64

0.21

2.75

2.24

2.68

2.32

0.26

0.29

6%0.

5217

%0.

4822

%

05-0

2-20

20 (0

9:30

-11:

30)

72.

42

2.4

2.86

2.42

2.76

2.85

0.21

2.74

2.02

2.27

2.12

0.32

2.65

2.44

2.67

2.41

0.20

0.36

15%

0.27

14%

0.27

11%

06-0

2-20

20 (1

0:30

-13:

30)

83.

52

3.6

3.92

3.52

3.59

3.84

0.19

2.92

2.13

2.32

2.32

0.35

3.89

3.60

3.66

3.60

0.14

0.09

3%0.

3216

%0.

062%

07-0

2-20

20 (0

9:00

-13:

30)

93

21.

93.

643.

013.

633.

640.

312.

892.

242.

672.

890.

302.

381.

922.

002.

000.

210.

6321

%0.

6734

%0.

106%

10-0

2-20

20 (0

9:00

-14:

00)

102.

84

2.2

3.36

2.86

2.93

2.86

0.24

4.63

4.03

4.23

4.03

0.28

2.86

2.22

2.76

2.85

0.30

0.13

5%0.

236%

0.56

26%

10-0

2-20

20 (1

5:30

-19:

00)

113.

73

1.8

4.19

3.71

3.89

3.72

0.22

3.64

3.20

3.52

3.64

0.21

2.22

1.82

1.96

1.98

0.17

0.19

5%0.

5217

%0.

169%

11-0

2-20

20 (0

9:00

-13:

00)

125.

32

1.9

5.98

5.30

5.50

5.30

0.32

2.74

2.02

2.27

2.12

0.32

2.38

1.92

2.00

2.00

0.21

0.20

4%0.

2714

%0.

106%

12-0

2-20

20 (0

9:30

-11:

30)

132.

75

3.3

3.19

2.71

2.89

2.72

0.22

5.79

5.19

5.39

5.69

0.28

3.82

3.31

3.44

3.30

0.24

0.19

7%0.

398%

0.14

4%

13-0

2-20

20 (1

0:30

-13:

30)

143.

62

2.8

4.09

3.61

3.82

3.61

0.23

2.42

2.02

2.17

2.02

0.19

3.23

2.81

3.00

3.23

0.20

0.22

6%0.

179%

0.20

7%

14-0

2-20

20 (0

9:00

-13:

30)

155.

34

1.8

5.75

5.31

5.55

5.31

0.21

4.73

4.04

4.21

4.09

0.31

2.22

1.82

1.96

1.98

0.17

0.25

5%0.

215%

0.16

9%

17-0

2-20

20 (0

9:00

-14:

00)

162.

53

2.2

2.93

2.57

2.71

2.92

0.17

3.72

3.02

3.35

3.02

0.33

2.86

2.22

2.76

2.85

0.30

0.21

9%0.

3512

%0.

5626

%

17-0

2-20

20 (1

5:30

-19:

00)

173

31.

93.

633.

033.

233.

030.

283.

893.

203.

663.

200.

352.

381.

922.

002.

000.

210.

238%

0.66

22%

0.10

6%

18-0

2-20

20 (0

9:00

-13:

00)

185.

32

2.2

5.98

5.30

5.50

5.30

0.32

2.42

2.02

2.17

2.02

0.19

2.75

2.24

2.68

2.32

0.26

0.20

4%0.

179%

0.48

22%

19-0

2-20

20 (0

9:30

-11:

30)

192

32.

42.

732.

042.

212.

090.

313.

553.

113.

233.

290.

192.

852.

442.

572.

410.

200.

2111

%0.

238%

0.17

7%

20-0

2-20

20 (1

0:30

-13:

30)

204.

14

3.6

4.74

4.12

4.25

4.33

0.27

4.63

4.03

4.23

4.03

0.28

3.89

3.60

3.66

3.60

0.14

0.15

4%0.

236%

0.06

2%

21-0

2-20

20 (0

9:00

-13:

30)

212

22.

42.

642.

032.

212.

020.

292.

642.

132.

422.

520.

222.

652.

442.

672.

410.

200.

2111

%0.

4221

%0.

2711

%

24-0

2-20

20 (1

5:30

-19:

00)

224.

12

2.8

4.74

4.12

4.25

4.33

0.27

2.85

2.34

2.57

2.41

0.23

3.23

2.81

3.00

3.23

0.20

0.15

4%0.

5729

%0.

207%

25-0

2-20

20 (0

9:00

-13:

00)

233.

23

1.9

3.74

3.22

3.41

3.65

0.23

3.72

3.02

3.35

3.02

0.33

2.38

1.92

2.00

2.00

0.21

0.21

7%0.

3512

%0.

106%

test

data

max

imum

min

imum

stan

dard

dev

iatio

nm

edia

npr

edic

ted

(mea

n)re

al(s

enso

r rea

ding

s)

Page 72: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

72

Figura 25. Estrategia para seleccionar datos de prueba y de entrenamiento.

La razón de proponer este método para construir el dataset de prueba es que se garantiza que el dato de prueba representa la mayoría de las sesiones y de los parámetros ambientales con un peso similar.

3.6.6 Comparativa PMF y BNMF.

Una vez la matriz de predicciones se ha generado tras aplicar PMF y BNMF para todas las variaciones de los parámetros ambientales en las diferentes instalaciones a lo largo del tiempo, se puede comprobar no sólo la exactitud del algoritmo cuando se comparan los valores reales y los previstos, sino también se puede comparar el rendimiento entre las dos implementaciones de CF. La Figura 26Figura 26 muestra las variaciones reales (línea sólida) y las variaciones predichas (línea discontinua) obtenidas por PMF a lo largo del tiempo (definido como sesiones de laboratorio), para cada parámetro ambiental (𝑇𝑇, 𝐶𝐶, y 𝐻𝐻) y en las aulas. A primera vista, las curvas de predicción parecen muy similares a las curvas reales en todos los casos. La primera conclusión es que la predicción basada en el filtrado colaborativo funciona razonablemente bien. Este buen comportamiento de la predicción no sólo se

rating matrix rating matrix

PMF (L1) BNMF

sessions TV CV HV TD CD HD1 4.2 3 3.3 8 5 22 5.1 4 2.2 5 7 13 4.6 3 3.6 9 3 34 5.3 3 2.6 8 4 25 3.9 2 2.9 2 1 46 4.7 3 2.2 8 4 17 2.4 2 2.4 2 1 28 3.5 2 3.6 5 0 49 3 2 1.9 4 0 0

10 2.8 4 2.2 3 7 211 3.7 3 1.8 2 3 312 5.3 2 1.9 8 0 113 2.7 5 3.3 3 8 314 3.6 2 2.8 4 1 215 5.3 4 1.8 8 7 016 2.5 3 2.2 1 3 117 3 3 1.9 1 3 518 5.3 2 2.2 8 1 119 2 3 2.4 1 4 220 4.1 4 3.6 5 7 521 2 2 2.4 0 0 422 4.1 2 2.8 2 0 1023 3.2 3 1.9 2 3 324 2.4 2 2.2 2 0 125 3.5 4 3.8 5 5 526 3 3 3.6 5 3 227 2.8 2 3.2 2 0 428 4.2 5 2.8 7 10 129 5.1 2 2.9 9 1 230 4.6 2 2.2 7 1 131 5.3 3 2.8 10 4 132 4.1 4 2.7 3 5 333 4.7 3 2.2 5 3 134 3.3 2 2.4 3 0 135 4.2 3 2.1 5 4 136 3.7 4 3.8 4 8 4

Training data Test data

Page 73: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

73

basa en el grado de similitud entre las curvas, sino también por la ausencia de valores atípicos, que señala la fiabilidad del método propuesto. A pesar del buen comportamiento de la predicción según la apariencia de estas curvas, es más significativo cuantificar la precisión de la predicción considerando las tasas de error de predicción: 𝑃𝑃𝑉𝑉𝑃𝑃𝑒𝑒𝑝𝑝 para PMF y 𝑃𝑃𝑃𝑃𝑃𝑃𝑒𝑒𝑝𝑝 para BNMF. De esta manera, se pueden comparar los resultados obtenidos por ambas implementaciones CF, ya que manejan diferentes medidas de las variaciones de los parámetros ambientales (en los dominios continuos y discretos). La Tabla 10 muestra los valores medios del error cometido en la predicción, para cada parámetro ambiental y algoritmo de filtrado colaborativo, mientras que la Figura 27 muestra los porcentajes de errores de predicción al aplicar PMF y BNMF. Analizando esta figura, se pueden obtener interesantes conclusiones. En primer lugar, PMF alcanza resultados mucho mejores que BNMF, que es también comprobado mediante el cálculo de la media de estos valores, como muestra la Tabla 10.

PMF BNMF

Temperatura 15% 33%

CO2 15% 33%

Humedad 15% 33%

Media del error de predicción.

El buen comportamiento de la PMF es generalizado, excepto en un caso, cuando la temperatura fue monitorizada en el aula de C2A. Sin embargo, allí se puede haber dado alguna situación anómala con el sensor de temperatura, como se deduce al observar el comportamiento en las variaciones. Incluso sin considerar esta clase, la tasa de error en la predicción de la temperatura caería al 8%. En cualquier caso, claramente se apuesta por PMF como la aplicación de CF propuesta para el control de los parámetros ambientales. También se observa que no todos los parámetros ambientales tienen la misma la precisión de predicción. Como se puede ver en la Tabla 10, la predicción de la humedad es más precisa que la predicción de temperatura o del CO2.

Page 74: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

74

1

2

3

4

5

6 Variation(ºC)

Lab sessions

PMF prediction of T(L1)

TVTVP

1

2

3

4

5

Variation(%ppm)

Lab sessions

PMF prediction of C(L1)

CVCVP

1

2

3

4

Variation(%RH)

Lab sessions

PMF prediction of H(L1)

HVHVP

Page 75: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

75

1

2

3

4

5

6 Variation(ºC)

Lab sessions

PMF prediction of T(L2)

TVTVP

1

2

3

4

5

Variation(%ppm)

Lab sessions

PMF prediction of C(L2)

CVCVP

1

2

3

4

Variation(%RH)

Lab sessions

PMF prediction of H(L2)

HVHVP

Page 76: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

76

1

2

3

4

5

6 Variation(ºC)

Lab sessions

PMF prediction of T(LD)

TVTVP

1

2

3

4

5

Variation(%ppm)

Lab sessions

PMF prediction of C(LD)

CVCVP

1

2

3

4

Variation(%RH)

Lab sessions

PMF prediction of H(LD)

HVHVP

Page 77: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

77

1

2

3

4

5

6 Variation(ºC)

Lab sessions

PMF prediction of T(C3)

TVTVP

1

2

3

4

5

Variation(%ppm)

Lab sessions

PMF prediction of C(C3)

CVCVP

1

2

3

4

Variation(%RH)

Lab sessions

PMF prediction of H(C3)

HVHVP

Page 78: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

78

1

2

3

4

5

6 Variation(ºC)

Lab sessions

PMF prediction of T(T3)

TVTVP

1

2

3

4

5

Variation(%ppm)

Lab sessions

PMF prediction of C(T3)

CVCVP

1

2

3

4

Variation(%RH)

Lab sessions

PMF prediction of H(T3)

HVHVP

Page 79: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

79

Figura 26. Variaciones predichas de los parámetros ambientales por PMF.

1

2

3

4

5

6 Variation(ºC)

Lab sessions

PMF prediction of T(C2A)

TVTVP

1

2

3

4

5

Variation(%ppm)

Lab sessions

PMF prediction of C(C2A)

CVCVP

1

2

3

4

Variation(%RH)

Lab sessions

PMF prediction of H(C2A)

HVHVP

Page 80: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

80

Figura 27. Error de predicción (%) en los parámetros ambientales.

Todos los datos relativos a los resultados de la predicción están disponibles en forma de tablas en el apéndice 9.1.

3.7 Conclusiones y líneas futuras.

Como conclusión final, podemos decir que la propuesta para predecir la variación de los parámetros ambientales por medio de sistemas de recomendación basados en filtrado colaborativo representa un enfoque adecuado para afrontar el problema de cubrir la falta de lecturas válidas para sistemas de control ambiental cuando un sensor falla. La novedad de esta propuesta radica en el hecho de que la predicción de un parámetro ambiental tiene en cuenta su comportamiento en todas las sesiones registradas, y en el comportamiento de los parámetros ambientales restantes en la misma sesión, siguiendo una hipótesis de colaboración. Aunque los resultados obtenidos por el algoritmo PMF son razonablemente buenos, se destaca la fiabilidad de la propuesta, ya que no hay casos de predicciones anómalos en ninguno de los escenarios experimentales. Como principal línea de trabajo futuro, se puede plantear la aplicación de otros algoritmos de filtrado colaborativo con el objetivo de mejorar la precisión de la predicción.

10% 10% 8%

28%

49% 51%

T C H

Prediction error (%) in L1PMFBNMF

6%10%

6%

29%

44% 42%

T C H

Prediction error (%) in L2PMFBNMF

9% 10%6%

45%

21%

29%

T C H

Prediction error (%) in LDPMFBNMF

8%12%

9%

31%

25%

36%

T C H

Prediction error (%) in C3PMFBNMF

14%16%

9%

31%

38%35%

T C H

Prediction error (%) in T3PMFBNMF

41%

13%7%

31%26%

30%

T C H

Prediction error (%) in C2APMFBNMF

Page 81: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

81

3.8 Aportaciones.

La principal aportación realizada por el doctorando en el trabajo de tesis descrito en este capítulo es la propuesta de un sistema de predicción de parámetros ambientales ante posibles anomalías como fallos de los sensores, según un modelo de filtrado colaborativo. La producción científica generada en relación a este capítulo fue la siguiente:

Artículos en revistas internacionales

• “Recommender Systems for Sensor-based Ambient Control in Academic Facilities”. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, Fernando Ortega. Engineering Applications of Artificial Intelligence, Vol. 96, Nov. 2020, 103993. Elsevier, 2020. pp. 1-12. (2020). ISSN=0952-1976. (JCR=4.201-19, Q1/T1).

Page 82: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

82

Page 83: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

83

4 Evaluación de estrategias de selección de datos de test.

4.1 Resumen.

Los sistemas de recomendación basados en el filtrado colaborativo elaboran el modelo de predicción mediante factorización matricial a partir de un conjunto de datos o dataset de entrenamiento. Este modelo es posteriormente validado dataset de prueba o test, con el propósito de medir el error de predicción y determinar la precisión del modelo. La selección aleatoria de datos para la construcción de los datasets de entrenamiento y de test es la opción más simple e intuitiva. Sin embargo, se podría pensar que otros métodos de selección pudieran obtener conjuntos de datos que generasen mejores modelos o que realizasen validaciones más robustas de los modelos. Se planteó este trabajo de investigación a raíz del uso intensivo de conjuntos de entrenamiento y test en los trabajos anteriores de la tesis (aceleración de algoritmos y aplicaciones predictivas sensoriales), lanzando la hipótesis de que otras estrategias de selección pudieran derivar en modelos de predicción más precisos. Concretamente, se focalizó el problema en la selección de los datos de test, ya que este es un aspecto menos estudiado que la selección de datos de entrenamiento. Se optó por experimentar con un modelo de selección determinista que pudiera seleccionar las valoraciones de las pruebas de manera uniforme a lo largo de la base de datos, a fin de obtener una contribución equilibrada de todos los usuarios y los ítems de la matriz de rendimientos. Con este propósito, se planteó una estrategia determinista en zigzag que selecciona las valoraciones uniformemente a través de las filas y columnas de la matriz de valoraciones, siguiendo un camino diagonal. Después de analizar los resultados estadísticos, se llegó a la conclusión de que no hay ventajas particulares al considerar la estrategia determinista frente a una meramente aleatoria.

4.2 Introducción.

Como se explicó en capítulos anteriores, los RS permiten hacer recomendaciones personalizadas según el comportamiento y las preferencias del usuario al solicitar información y calificar los ítems. En la implementación de RS del filtrado colaborativo, el comportamiento futuro de los usuarios es similar al comportamiento pasado cuando se califican los artículos. Este modelo se construye a partir de una matriz de valoraciones 𝑅𝑅 que relaciona a los usuarios con los artículos, almacenando las puntuaciones de los usuarios con los ítems sin necesidad de que se introduzca más información. Normalmente, 𝑅𝑅 es muy dispersa ya que no todos los usuarios califican todos los artículos.

El modelo CF trata de llenar los huecos de 𝑅𝑅 mediante la factorización matricial, que construye un modelo matemático basado en dos matrices 𝑃𝑃 𝑦𝑦 𝑄𝑄 que realizan la predicción de una clasificación como una combinación lineal de factores. Además, en el modelo de

Page 84: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

84

factorización matricial, los elementos están descritos y condicionados por factores latentes 𝐾𝐾. El modelo trata de encontrar estos factores ocultos a través de 𝑅𝑅, considerando un número particular 𝐾𝐾. El modelo de factorización matricial se construye, o se entrena, a partir de datos de puntuación conocidos. Como 𝑅𝑅 normalmente incluye pocas valoraciones en comparación con el tamaño de la matriz, el conjunto de datos de entrenamiento 𝑃𝑃𝑡𝑡𝑡𝑡𝑚𝑚𝑢𝑢𝑛𝑛 que se considera para construir el RS tiende a incluir tantos datos conocidos como sea posible, teniendo en cuenta los recursos computacionales disponibles. Por otro lado, el modelo obtenido se valida mediante el conjunto de datos de prueba 𝑃𝑃𝑡𝑡𝑒𝑒𝑡𝑡𝑡𝑡. Se han explorado algunos métodos para seleccionar los conjuntos de datos de entrenamiento [Storkey 2009]. Dependiendo de la naturaleza de la base de datos de valoraciones, la forma de seleccionar estos conjuntos de datos puede influir fuertemente en los resultados del rendimiento [Bickel 2007]. En este capítulo, se mostrarán las influencias en los datos de prueba en lugar de los de entrenamiento, ya que los primeros validan el modelo del sistema de recomendación, mientras que los segundos son escogidos normalmente según una estrategia particular que no se puede modificar. Por lo tanto, las preguntas a responder son:

• ¿Cómo seleccionar los datos para probar el modelo?

• ¿Puede la forma de seleccionar los datos de test influir en los resultados del rendimiento?

Para realizar un primer enfoque, se consideran dos métodos o estrategias para seleccionar los datos de pruebas:

• Estrategias aleatorias.

• Estrategias deterministas. La estrategia determinista selecciona los datos de prueba atravesando las filas y columnas de la matriz de valoraciones de manera uniforme siguiendo un camino en zigzag.

Por lo tanto, la investigación que se presenta en este capítulo persiguió conocer si el método determinista proporciona menos error en la predicción que una selección meramente aleatoria.

4.3 Diferentes estrategias para seleccionar datasets de prueba.

En primer lugar, se decidió utilizar PMF como algoritmo de generación de los sistemas de recomendación basados en filtrado colaborativo. Se trata de un algoritmo sencillo, que reúne los conceptos y filosofías básicos de los distintos métodos para la factorización matricial. Este algoritmo es explicado detalladamente en los capítulos anteriores. Posteriormente se estableció un número determinado de valoraciones conocidas para construir el dataset de prueba, considerando dos métodos diferentes de selección de las valoraciones:

• Estrategia aleatoria. Este método elige los datos de la prueba de forma aleatoria. Por lo tanto, presenta una naturaleza no determinista que sugiere abordar cualquier prueba realizando varias ejecuciones para obtener resultados estadísticos.

Page 85: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

85

• Estrategia diagonal. Este método elige los datos de la prueba siguiendo un camino en zigzag que atraviesa uniformemente las filas y columnas de la matriz de valoraciones. No necesita realizar distintas ejecuciones del mismo experimento, ya que el resultado será siempre el mismo.

La razón de proponer el método de selección diagonal es que garantiza que los datos de prueba representan a la mayoría de los usuarios y artículos con un peso similar. Básicamente, la estrategia diagonal elige un valor de calificación por cada usuario (fila) siguiendo elementos consecutivos (columnas). La Figura 28 muestra un ejemplo simple de la estrategia diagonal: cuando la valoración a seleccionar cae en un valor desconocido, se salta a la siguiente columna de la misma fila (A), a menos que el final de la fila haya sido alcanzado, en cuyo caso se selecciona la primera columna de la siguiente fila (B).

Figura 28. Estrategias de selección diagonal y aleatoria para los datos de test..

Cada conjunto de datos de prueba, independientemente del método a partir del cual se generó, se aplica en un modelo de RS para obtener el valor del error cuadrático medio (RMSE) como métrica de calidad del error. Esta métrica se calcula según esta ecuación:

(5) RMSE = �∑ �𝑝𝑝𝑠𝑠,𝑖𝑖−𝑝𝑝�𝑠𝑠,𝑖𝑖�

2𝑠𝑠,𝑖𝑖∈𝐷𝐷𝑡𝑡𝑡𝑡𝑠𝑠𝑡𝑡

|𝐷𝐷𝑡𝑡𝑡𝑡𝑠𝑠𝑡𝑡|

4.4 Procedimiento experimental.

valoración conocida

s1

s2

s3

s4

s5

s6

s7

s8

s9

s10

s11

m1 m2 m3 m4 m5 m6 m7

valoración desconocida dato de test

ítems

usua

rios

casoB

casoA

s1

s2

s3

s4

s5

s6

s7

s8

s9

s10

s11

m1 m2 m3 m4 m5 m6 m7

ítems

usua

rios

método diagonal método aleatorio

Page 86: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

86

Para desarrollar los experimentos se han planteado las siguientes consideraciones:

• Es aconsejable considerar más de un conjunto de datos de valoraciones.

• Independientemente de la validación de la prueba, cada vez que se entrena un modelo de RS, las matrices 𝑃𝑃 𝑦𝑦 𝑄𝑄 se inicializan al azar. En consecuencia, cada proceso de entrenamiento debe repetirse varias veces para obtener validez estadística. En este sentido, se consideran 31 ejecuciones para cada modelo de entrenamiento (se trata de un valor impar para poder calcular la mediana).

• Una vez que se obtiene un modelo de RS después del proceso de entrenamiento, la precisión proporcionada por las matrices 𝑃𝑃 𝑦𝑦 𝑄𝑄 se valida mediante la aplicación de conjuntos de datos de prueba construidos a partir de dos estrategias diferentes: o Un conjunto de datos de prueba obtenido de la estrategia diagonal sólo necesita

una ejecución para ser aplicada en el modelo RS, ya que esta estrategia es determinista. El valor RMSE obtenido se denomina RMSE_diag.

o Los conjuntos de datos de prueba obtenidos de la estrategia aleatoria deben ser aplicados en el modelo RS, ya que esta estrategia tiene una naturaleza estocástica. Para este propósito, se generan 31 conjuntos de datos de prueba al azar, para realizar 31 ejecuciones de la validación del modelo RS. Después de estas ejecuciones, se toman la media de los valores RMSE obtenidos y se denominan RMSE_rand_mean.

• Se comparan tanto RMSE_diag como RMSE_rand_mean para obtener la precisión para un modelo particular de RS.

• Finalmente, como se generan 31 modelos de RS, es necesario calcular la media de los 31 valores del RMSE_diag (RMSE_diag_mean) y la media de los 31 valores RMSE_rand_mean (RMSE_rand_mean_mean), y luego realizar una comparativa para obtener una conclusión final.

La Figura 29 muestra el pseudo-código utilizado por el algoritmo que implementa el procedimiento experimental descrito en los puntos anteriores.

4.5 Resultados.

4.5.1 Datasets.

Las estrategias diagonal y aleatoria se probaron utilizando tres datasets (Tabla 11) de última generación de diferentes características, ampliamente utilizados para este fin:

• The Movies Dataset (Kaggle).

• Movielens-100K.

• Movielens-1M (Tabla 15). Estos datasets almacenan la actividad de muchos usuarios cuando valoran películas con puntuaciones del 1 al 5, donde cada usuario valora al menos 20 películas.

Page 87: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

87

Figura 29. Algoritmo que describe el procedimiento experimental.

Dataset Kaggle Movielens-100k Movielenes-1M

Valoraciones 100,000 100,000 1,000,000

Usuarios 700 943 6,000

Ítems 9,000 1,682 4,000

Datasets utilizados en las diferentes estrategias.

4.5.2 Resultados experimentales.

La Figura 30 muestra los resultados obtenidos según el procedimiento experimental descrito en la Figura 29. Esta figura enumera los resultados de RMSE según las dos estrategias para los tres datasets considerados.

Page 88: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

88

Cada fila en esta figura corresponde con una ejecución (run), lo que significa que:

• Inicialmente se generan aleatoriamente las matrices 𝑃𝑃 𝑦𝑦 𝑄𝑄.

• Después se obtiene el modelo RS correspondiente (𝑃𝑃 𝑦𝑦 𝑄𝑄 finales).

• Se genera un dataset de prueba con la estrategia diagonal, y se calcula el correspondiente valor RMSE (RMSE_diag);

• Finalmente see generan aleatoriamente 31 datasets de prueba, y se calcula la media de sus correspondientes valores RMSE (RMSE_rand_mean).

La última fila muestra los resultados globales de cada conjunto de datos, como la media de las 31 ejecuciones: RMSE_diag_mean y RMSE_rand_mean_mean para estrategias diagonales y aleatorias respectivamente.

Figura 30. Resultados de error RMSE.

Los resultados de la Figura 30 se muestran de forma gráfica en la Figura 31 para los resultados de ejecución, y en la Figura 32 para los resultados globales.

Figura 31. Resultados por ejecución para los tres datasets.

0.91

0.92

0.93

0.94

0.951

23

45

6

7

8

9

10

11

1213

1415161718

1920

21

22

23

24

25

26

27

2829

3031

Movielens-100KRMSE_diag RMSE_rand-mean

0.91

0.92

0.93

0.94

0.951

23

45

6

7

8

9

10

11

1213

1415161718

1920

21

22

23

24

25

26

27

2829

3031

Movielens-1MRMSE_diag RMSE_rand-mean

0.91

0.92

0.93

0.94

0.951

23

45

6

7

8

9

10

11

1213

1415161718

1920

21

22

23

24

25

26

27

2829

3031

KaggleRMSE_diag RMSE_rand-mean

Page 89: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

89

Figura 32. Resultados globales para los tres datasets.

A partir del análisis de estas dos gráficas, se pueden extraer las siguientes conclusiones:

• La estrategia aleatoria proporciona un resultado mucho mejor (menor RMSE) que la estrategia diagonal en todas las ejecuciones de dos datasets (Movielens-100k y Kaggle), mientras que esta mejora es muy ligera para el tercer dataset (Movielens-1M), donde incluso una de las 31 ejecuciones reporta el mejor resultado para la estrategia diagonal.

• Observando los resultados globales, se puede concluir que la estrategia diagonal no ofrece ventajas en términos de precisión con respecto a un método aleatorio simple para seleccionar datasets de prueba, pese a que esta estrategia fue diseñada para proporcionar una representación equilibrada entre los distintos usuarios e ímtes de la matriz de valoraciones.

4.6 Conclusiones y líneas futuras.

En este capítulo se ha demostrado que un método determinista para seleccionar datos de prueba para validar los modelos de un sistema de recomendación, no proporciona mejores resultados que una simple selección aleatoria. La razón para diseñar un método determinista como el propuesto fue el poder construir datasets de prueba cuyos valores recogen las calificaciones de los usuarios y los elementos de manera uniforme a través de la matriz de valoraciones, con un peso y representatividad similar de usuarios y de ítems. En este sentido, una posible línea futura de investigación se podría centrar en el diseño de métodos que de selección que generen el dataset de prueba combinando estrategias aleatorias y deterministas, con el objetivo de proporcionar las ventajas de una buena representación de usuarios e ítems y una rápida selección. En cualquier caso, para robustecer la validez de los resultados experimentales, se propone considerar un mayor número de datasets de gran tamaño.

0.94931 0.94918 0.94949

0.92857

0.94913

0.92660

0.91

0.92

0.92

0.93

0.93

0.94

0.94

0.95

0.95

Movielens-100k Movielens-1M Kaggle dataset

Mean of 31 runs initializing (P,Q) RMSE_diag RMSE_rand-mean

Page 90: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

90

4.7 Aportaciones.

Como aportaciones personales realizadas por el doctorando en el trabajo de tesis descrito en este capítulo, se citan las siguientes:

• Propuesta de una estrategia determinista, que equilibre la representatividad de usuarios e ítems, para seleccionar valoraciones que validen los modelos del RS.

• Comprobación que esta estrategia no ofrece ventajas significativas respecto a una selección meramente aleatoria.

La producción científica generada en relación a este capítulo fue la siguiente:

Capítulos de libros internacionales

• “Evaluating Strategies for Selecting Test Datasets in Recommender Systems”. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, Fernando Ortega. Hybrid Artificial Intelligence Systems. LNAI, Vol. 11734. Springer, Switzerland. pp. 243-253. (2019). ISSN=0302-9743. ISBN=978-3-030-29858-6.

Page 91: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

91

5 Aportaciones.

5.1 Aportación general.

La principal aportación de la presente tesis doctoral es la viabilidad de acelerar algoritmos de filtrado colaborativo basados en factorización matricial en sistemas de recomendación, implementados en hardware mediante la computación reconfigurable. Adicionalmente, la tesis aporta la aplicación de los sistemas de recomendación como método predictivo de parámetros ambientales en instalaciones sensorizadas, utilizando los mismos algoritmos y planteamientos utilizados por los sistemas aceleradores hardware de la principal aportación.

5.2 Aportaciones particulares.

Las aportaciones particulares son:

5.2.1 Aceleración hardware de los sistemas de recomendación.

• Propuesta de arquitecturas paralelas para la aceleración de algoritmos de filtrado colaborativo basados en factorización matricial.

• Propuesta de una plataforma de computación basada en hardware reconfigurable de sistema de recomendación completo con un sistema operativo Linux integrado.

• Obtención de rendimientos acelerados respecto a CPUs para conjuntos de datos de gran tamaño.

5.2.2 Aplicaciones sensoriales predictivas.

• Propuesta de un sistema de predicción de parámetros ambientales ante posibles anomalías como fallos de los sensores, según un modelo de filtrado colaborativo.

5.2.3 Evaluación de estrategias de selección de datos de test.

• Propuesta de una estrategia determinista, que equilibre la representatividad de usuarios e ítems, para seleccionar valoraciones que validen los modelos del RS.

• Comprobación que esta estrategia no ofrece ventajas significativas respecto a una selección meramente aleatoria.

Page 92: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

92

Page 93: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

93

6 Producción científica.

6.1 Resumen.

• 11 publicaciones científicas.

• 6 artículos en revistas internacionales (4 con factor de impacto ISI JCR).

• 1 capítulo de libro internacional.

• 4 comunicaciones en congreso (2 nacionales y 2 internacionales).

6.2 Artículos en revistas.

Recommender Systems for Sensor-based Ambient Control in Academic Facilities. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, Fernando Ortega. Engineering Applications of Artificial Intelligence, Vol. 96, 103993. pp. 1-12 (2020). DOI: 10.1016/j.engappai.2020.103993. Elsevier. ISSN=0952-1976. JCR=4.201-19, (Q1/T1).

Performance of Two Approaches of Embedded Recommender Systems. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, and Fernando Ortega. Electronics, Vol. 9 (546). pp. 1-15 (2020). DOI: 10.3390/electronics9040546. MDPI AG, Basel, Switzerland. ISSN=2079-9292 JCR=2.412-19, (Q2/T2).

Page 94: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

94

Recommender system implementations for embedded collaborative filtering applications. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, Fernando Ortega, José M. Granado-Criado. Microprocessors and Microsystems 73. pp. 1-10 (2020). DOI: 10.1016/j.micpro.2020.102997. Elsevier. ISSN=0141-9331. JCR=1.161-19, (Q3/T2)

Optimizing Latent Factors and Collaborative Filtering for Students’ Performance Prediction. Juan A. Gómez-Pulido, Arturo Durán-Domínguez, and Francisco Pajuelo-Holguera. Applied Sciences, vol.10 (no.16: 5601). pp. 1-18 (2020). DOI: 10.3390/app10165601. MDPI AG, Basel, Switzerland. ISSN: 2076-3417. Impact factor = 2.474

Optimización del filtrado colaborativo basado en factorización matricial mediante la relevancia de las preferencias de los usuarios. Priscila Valdiviezo-Diaz, Fernando Ortega, Jesús Mayor, Francisco Pajuelo-Holguera. Iberian Journal of Information Systems and Technologies, E28, 04/2020. pp. 465-478 (2020). AISTI – Associação Ibérica de Sistemas e Tecnologias de Informação. ISSN: 1646-9895.

Virtual Classrooms as Data Sources for Prediction Tools. Arturo Duran-Dominguez, Juan A. Gomez-Pulido, Francisco Pajuelo-Holguera. PUPIL: International Journal of Teaching, Education, and Learning, Vol. 2, Issue 2. pp. 170-180 (2018). GRDS Publishing, Rajasthan, India. DOI: 10.20319/pijtel.2018.22.170180. ISSN: 2457-0648.3

Page 95: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

95

6.3 Capítulos de libro.

Evaluating Strategies for Selecting Test Datasets in Recommender Systems. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, Fernando Ortega. Hybrid Artificial Intelligence Systems. LNAI, Vol. 11734. pp. 243-253 (2019). Springer, Switzerland, ISBN: 978-3-030-29858-6.

6.4 Comunicaciones en congreso.

Including Machine Learning Tools in On-Line Campus Environments for Predicting Student Performance. Arturo Duran-Dominguez, Juan A. Gomez-Pulido, Francisco Pajuelo-Holguera. Proceedings of the 5th Int. Conference on Teaching, Education and Learning (ICTEL 2018), pp. 39-40 Global Research and Development Services, Universidade de Lisboa, Lisbon, Portugal, 2018.

Selecting Latent Factors when Predicting Student Performance in Online Campus by Using Recommender Systems. Arturo Durán-Domínguez, Juan A. Gómez-Pulido, David Rodríguez-Lozano, Francisco Pajuelo-Holguera. Proc. of 13th Iberian Conference on Information Systems and Technologies (CISTI 2018), pp. 1-6. IEEE, Cáceres, Spain, 2018.

Page 96: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

96

Implementación SoC de una aplicación de filtrado colaborativo. Francisco Pajuelo-Holguera, Juan A. Gómez-Pulido, Fernando Ortega. Avances en Arquitectura y Tecnología de Computadores. Actas de las Jornadas Sarteco, pp. 539-544. Sociedad de Arquitectura y Tecnología de Computadores. Cáceres, España, 2019. ISBN: 978-84-09-12127-4.

Computación empotrada de funciones de los sistemas de recomendación mediante FPGAs. Francisco Pajuelo Holguera, Juan Antonio Gómez Pulido, Arturo Durán Domínguez y José María Granado Criado. Avances en Arquitectura y Tecnología de Computadores. Actas de las Jornadas Sarteco, pp. 525-531. Sociedad de Arquitectura y Tecnología de Computadores. Teruel, España, 2018. ISBN: 978-84-09-04334-7.

Page 97: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

97

7 Referencias.

[Alpaydin 2010] E. Alpaydin, “Introduction to Machine Learning Second Edition” The Massachusetts Institute of Technology Press Cambridge, Massachusetts, 2010.

[Amatriain 2014] X. Amatriain, “Recommender Systems, Collaborative Filtering and other approaches”. Machine Learning Summer School 2014. Carnegie Mellon University, USA, 2014.

[Anon 2020] Anon, 2020. Ray Ingeniería Electrónica. URL https://www.ray-ie.com/.

[Bickel 2007] Bickel, S., Bruckner, M., Scheffer, T.: Discriminative learning for differing training and test distributions. In: ICML, pp. 81–88. ACM Press (2007).

[Bottou 2010] L. Bottou, "Large-Scale Machine Learning with Stochastic Gradient Descent," Proceedings of 19th International Conference on Computational Statistics, G. S. Y. Lechevallier, ed., pp. 177-186: Springer, 2010.

[Cong 2011] Cong, J.; Liu, B.; Neuendorffer, S.; Noguera, J.; Vissers, K.; Zhang, Z. “High-Level Synthesis for FPGAs: From Prototyping to Deployment.” IEEE Trans. Comput. Aided Des. Integr. Circ. Syst. 2011, 30, 473–491, doi:10.1109/TCAD.2011.2110592.

[Estrin 2002] G. Estrin, "Reconfigurable computer origins: the UCLA fixed-plus-variable (F+V) structure computer," in IEEE Annals of the History of Computing, vol. 24, no. 4, pp. 3-9, Oct.-Dec. 2002, doi: 10.1109/MAHC.2002.1114865.

[GómezD1 2020] Gómez-Pulido, Juan A. (2020), "Sensor readings for ambient control in academic facilities", IEEE Dataport, doi: http://dx.doi.org/10.21227/5dmd-ke09

[GómezD2 2020] Gómez-Pulido, Juan A. (2020), “Data for: Recommender Systems for Sensor-based Ambient Control in Academic Facilities”, Mendeley Data, V2, doi: 10.17632/7j845nz5wh.2

[Hernando 2016] Hernando, A.; Bobadilla, J.; Ortega, F. “A non-negative matrix factorization for collaborative filtering recommender systems based on a Bayesian probabilistic model.” Knowl. Based Syst. 2016, 97, 188–202.

[Hoffman 2013] Hoffman, M.D.; Blei, D.M.; Wang, C.; Paisley, J. “Stochastic variational inference”. J. Mach. Learn. Res. 2013, 14, 1303–1347.

[Jannach 2011] D. Jannach, M. Zanker, A. Felfernig, and G. Friedrich, Recommender Systems. An Introduction: Cambridge University Press, 2011.

Page 98: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

98

[Koren 2009] Koren, Y.; Bell, R.; Volinsky, C. “Matrix factorization techniques for recommender systems”. Computer 2009, 42, 30–37.

[Koren 2010] Koren, Y.: Factor in the Neighbors: Scalable and Accurate Collaborative Filtering. ACM Transactions on Knowledge Discovery from Data 4, 1-24 (2010).

[Lanza 2015] J. M. Lanza-Gutierrez, and J. A. Gomez-Pulido, “Assuming multiobjective metaheuristics to solve a three-objective optimisation problem for Relay Node deployment in Wireless Sensor Networks,” Applied Soft Computing, vol. 30, no. 2015, pp. 675-687, 2015.

[Lee 1997] Lee, D.D.; Seung, H.S. “Unsupervised learning by convex and conic coding”. In Advances in Neural Information Processing Systems; IEEE: Piscatawy, NJ, USA, 1997; pp. 515–521.

[Mnih 2008] Mnih, A.; Salakhutdinov, R.R. “Probabilistic matrix factorization”. In Advances in Neural Information Processing Systems; IEEE: Piscatawy, NJ, USA, 2008; pp. 1257–1264.

[Murphy 2012] Kevin P. Murphy, “Machine Learning. A Probabilistic Perspective” The Massachusetts Institute of Technology Press Cambridge, Massachusetts, 2012.

[O’Loughlin 2014] O’Loughlin, D.; Coffey, A.; Callaly, F.; Lyons, D.; Morgan, F. Xilinx Vivado High Level Synthesis: Case studies. In Proceedings of the 25th IET Irish Signals Systems Conference 2014 and 2014 China-Ireland International Conference on Information and Communications Technologies (ISSC 2014/CIICT 2014), Limerick, Ireland, 26–27 June 2014; pp. 352–356, doi:10.1049/cp.2014.0713.

[Qin 2018] Qin, Tian & Bleiker, Simon & Rana, Sunil & Niklaus, Frank & Pamunuwa, Dinesh. (2018). Performance Analysis of Nanoelectromechanical Relay-Based Field-Programmable Gate Arrays. IEEE Access. PP. 1-1. 10.1109/ACCESS.2018.2816781.

[Rendle 2008] S. Rendle, and L. Schmidt-Thieme, “Online-updating regularized kernel matrix factorization models for large-scale recommender systems,” in 2008 ACM conference on Recommender systems, Lausanne, Switzerland, 2008, pp. 251-258.

[Smola 2008] A. Smola, and S. V. N. Vishwanathan, Introduction to Machine Learning: Cambridge University Press, 2008.

[Storkey 2009] When training and test sets are different: characterising learning transfer. In: Dataset Shift in Machine Learning, pp. 3–28. MIT Press (2009)

[Suchojad 2013] Suchojad, D., 2013. Zato—Agile ESB, SOA, REST and cloud integrations in Python. Linux J. 2013.

[Takacs 2009] G. Takács et al., “Scalable Collaborative Filtering Approaches for Large Recommender Systems,” The Journal of Machine Learning Research, vol. 10, pp. 23–656, 2009.

Page 99: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

99

[Xilinx 2020] Xilinx Inc. Vivado Design Suite User Guide: High-Level Synthesis; Technical Report UG902 (v2019.2); Xilinx Inc.: San Jose, CA, USA, 2020.

Page 100: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

100

Page 101: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

101

8 Apéndices.

Page 102: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

102

Page 103: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

103

8.1 Datasets y resultados: aplicación predictiva de los RS en entornos sensoriales.

8.1.1 Aula L1.

L1 Collected datapmf bnmf pmf bnmf pmf bnmf

T C HSessions Sessions Tini Tend TV TP TD Cini Cend CV CP CD Hini Hend HV HP HD29-01-2020 from 09:30 to 11:30 1 10.10 14.30 4.20 0.42 8.0 412.00 415.00 3.00 0.01 5.0 80.30 83.60 3.30 0.04 2.030-01-2020 from 11:00 to 13:30 2 16.30 21.40 5.10 0.31 5.0 440.00 444.00 4.00 0.01 7.0 62.40 64.60 2.20 0.04 1.031-01-2020 from 09:00 to 14:00 3 10.40 15.00 4.60 0.44 9.0 459.00 462.00 3.00 0.01 3.0 77.90 81.50 3.60 0.05 3.003-02-2020 from 09:00 to 14:00 4 12.20 17.50 5.30 0.43 8.0 444.00 447.00 3.00 0.01 4.0 71.20 73.80 2.60 0.04 2.003-02-2020 from 15:30 to 19:00 5 18.50 22.40 3.90 0.21 2.0 450.00 452.00 2.00 0.00 1.0 56.30 59.20 2.90 0.05 4.004-02-2020 from 09:00 to 13:00 6 11.10 15.80 4.70 0.42 8.0 420.00 423.00 3.00 0.01 4.0 72.40 74.60 2.20 0.03 1.005-02-2020 from 09:30 to 11:30 7 11.90 14.30 2.40 0.20 2.0 422.00 424.00 2.00 0.00 1.0 66.40 68.80 2.40 0.04 2.006-02-2020 from 10:30 to 13:30 8 12.00 15.50 3.50 0.29 5.0 487.00 489.00 2.00 0.00 0.0 68.30 71.90 3.60 0.05 4.007-02-2020 from 09:00 to 13:30 9 10.80 13.80 3.00 0.28 4.0 471.00 473.00 2.00 0.00 0.0 70.70 72.60 1.90 0.03 0.010-02-2020 from 09:00 to 14:00 10 12.10 14.90 2.80 0.23 3.0 450.00 454.00 4.00 0.01 7.0 59.50 61.70 2.20 0.04 2.010-02-2020 from 15:30 to 19:00 11 17.60 21.30 3.70 0.21 2.0 473.00 476.00 3.00 0.01 3.0 39.60 41.40 1.80 0.05 3.011-02-2020 from 09:00 to 13:00 12 12.40 17.70 5.30 0.43 8.0 501.00 503.00 2.00 0.00 0.0 64.30 66.20 1.90 0.03 1.012-02-2020 from 09:30 to 11:30 13 12.30 15.00 2.70 0.22 3.0 492.00 497.00 5.00 0.01 8.0 72.40 75.70 3.30 0.05 3.013-02-2020 from 10:30 to 13:30 14 13.00 16.60 3.60 0.28 4.0 423.00 425.00 2.00 0.00 1.0 70.20 73.00 2.80 0.04 2.014-02-2020 from 09:00 to 13:30 15 12.90 18.20 5.30 0.41 8.0 456.00 460.00 4.00 0.01 7.0 70.10 71.90 1.80 0.03 0.017-02-2020 from 09:00 to 14:00 16 14.20 16.70 2.50 0.18 1.0 482.00 485.00 3.00 0.01 3.0 62.00 64.20 2.20 0.04 1.017-02-2020 from 15:30 to 19:00 17 17.00 20.00 3.00 0.18 1.0 511.00 514.00 3.00 0.01 3.0 32.10 34.00 1.90 0.06 5.018-02-2020 from 09:00 to 13:00 18 13.10 18.40 5.30 0.40 8.0 439.00 441.00 2.00 0.00 1.0 66.30 68.50 2.20 0.03 1.019-02-2020 from 09:30 to 11:30 19 12.80 14.80 2.00 0.16 1.0 448.00 451.00 3.00 0.01 4.0 62.90 65.30 2.40 0.04 2.020-02-2020 from 10:30 to 13:30 20 13.50 17.60 4.10 0.30 5.0 425.00 429.00 4.00 0.01 7.0 59.80 63.40 3.60 0.06 5.021-02-2020 from 09:00 to 13:30 21 16.30 18.30 2.00 0.12 0.0 480.00 482.00 2.00 0.00 0.0 45.70 48.10 2.40 0.05 4.024-02-2020 from 15:30 to 19:00 22 22.20 26.30 4.10 0.18 2.0 477.00 479.00 2.00 0.00 0.0 30.20 33.00 2.80 0.09 10.025-02-2020 from 09:00 to 13:00 23 17.40 20.60 3.20 0.18 2.0 466.00 469.00 3.00 0.01 3.0 39.45 41.35 1.90 0.05 3.026-02-2020 from 09:30 to 11:30 24 11.40 13.80 2.40 0.21 2.0 489.00 491.00 2.00 0.00 0.0 72.40 74.60 2.20 0.03 1.027-02-2020 from 10:30 to 13:30 25 11.70 15.20 3.50 0.30 5.0 502.00 506.00 4.00 0.01 5.0 66.40 70.20 3.80 0.06 5.028-02-2020 from 09:00 to 13:30 26 10.40 13.40 3.00 0.29 5.0 488.00 491.00 3.00 0.01 3.0 88.30 91.90 3.60 0.04 2.002-03-2020 from 15:30 to 19:00 27 15.60 18.40 2.80 0.18 2.0 466.00 468.00 2.00 0.00 0.0 60.70 63.90 3.20 0.05 4.003-03-2020 from 09:00 to 13:00 28 11.00 15.20 4.20 0.38 7.0 443.00 448.00 5.00 0.01 10.0 79.50 82.30 2.80 0.04 1.004-03-2020 from 09:30 to 11:30 29 11.40 16.50 5.10 0.45 9.0 455.00 457.00 2.00 0.00 1.0 79.60 82.50 2.90 0.04 2.005-03-2020 from 10:30 to 13:30 30 12.30 16.90 4.60 0.37 7.0 444.00 446.00 2.00 0.00 1.0 73.20 75.40 2.20 0.03 1.006-03-2020 from 09:00 to 13:30 31 10.80 16.10 5.30 0.49 10.0 450.00 453.00 3.00 0.01 4.0 84.50 87.30 2.80 0.03 1.009-03-2020 from 15:30 to 19:00 32 17.30 21.40 4.10 0.24 3.0 502.00 506.00 4.00 0.01 5.0 59.40 62.10 2.70 0.05 3.010-03-2020 from 09:00 to 13:00 33 14.50 19.20 4.70 0.32 5.0 501.00 504.00 3.00 0.01 3.0 68.50 70.70 2.20 0.03 1.011-03-2020 from 09:30 to 11:30 34 13.60 16.90 3.30 0.24 3.0 482.00 484.00 2.00 0.00 0.0 71.20 73.60 2.40 0.03 1.012-03-2020 from 10:30 to 13:30 35 14.40 18.60 4.20 0.29 5.0 455.00 458.00 3.00 0.01 4.0 69.30 71.40 2.10 0.03 1.013-03-2020 from 09:00 to 13:30 36 13.80 17.50 3.70 0.27 4.0 420.00 424.00 4.00 0.01 8.0 77.30 81.10 3.80 0.05 4.0

max. 5.30 0.49 max. 5.00 0.01 max. 3.80 0.09min. 2.00 0.12 min. 2.00 0.00 min. 1.80 0.03

Page 104: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

104

Matrix PMF Predicted matrix with PMF Prediction errors by PMF

TVP CVP HVPSessions TV CV HV min max mean median desv. min max mean median desv. min max mean median desv. TVPe TVPep CVPe CVPep HVPe HVep

1 4.2 3.0 3.3 3.28 4.35 3.79 3.77 0.23 3.01 3.02 3.02 3.02 0.00 3.24 3.24 3.24 3.24 0.00 0.41 11% 0.02 1% 0.06 2%2 5.1 4.0 2.2 4.95 4.99 4.98 4.99 0.01 1.83 3.79 2.82 2.86 0.39 2.20 2.25 2.24 2.23 0.01 0.12 2% 1.18 42% 0.04 2%3 4.6 3.0 3.6 4.42 4.53 4.52 4.53 0.02 2.91 3.03 3.00 3.00 0.02 2.00 3.04 2.59 2.59 0.18 0.08 2% 0.00 0% 1.01 39%4 5.3 3.0 2.6 3.41 4.26 3.86 3.85 0.21 3.00 3.01 3.00 3.00 0.00 2.60 2.61 2.61 2.61 0.00 1.44 37% 0.00 0% 0.01 0%5 3.9 2.0 2.9 3.88 3.90 3.89 3.89 0.00 2.50 3.63 3.07 3.08 0.25 2.87 2.88 2.88 2.88 0.00 0.01 0% 1.07 35% 0.02 1%6 4.7 3.0 2.2 4.50 4.62 4.62 4.62 0.02 2.91 3.04 3.00 3.01 0.02 1.99 3.07 2.61 2.61 0.19 0.08 2% 0.00 0% 0.41 16%7 2.4 2.0 2.4 3.02 4.40 3.78 3.78 0.29 2.04 2.05 2.05 2.05 0.00 2.41 2.42 2.41 2.41 0.00 1.38 37% 0.05 2% 0.01 1%8 3.5 2.0 3.6 3.51 3.53 3.52 3.52 0.00 2.54 4.23 3.36 3.38 0.35 3.52 3.52 3.52 3.52 0.00 0.02 1% 1.36 40% 0.08 2%9 3.0 2.0 1.9 3.06 3.35 3.08 3.07 0.04 2.04 2.24 2.06 2.05 0.03 1.96 3.76 2.59 2.54 0.26 0.08 2% 0.06 3% 0.69 27%

10 2.8 4.0 2.2 2.86 4.56 3.89 3.97 0.37 3.93 3.95 3.94 3.94 0.00 2.25 2.26 2.25 2.25 0.00 1.09 28% 0.06 2% 0.05 2%11 3.7 3.0 1.8 3.69 3.72 3.71 3.71 0.00 2.00 3.42 2.54 2.51 0.31 1.87 1.88 1.87 1.87 0.00 0.01 0% 0.46 18% 0.07 4%12 5.3 2.0 1.9 5.08 5.17 5.16 5.16 0.02 1.96 2.13 2.07 2.07 0.02 1.95 3.51 2.49 2.42 0.30 0.14 3% 0.07 3% 0.59 24%13 2.7 5.0 3.3 2.30 4.96 3.86 3.92 0.51 4.90 4.91 4.91 4.91 0.00 3.26 3.27 3.27 3.27 0.00 1.16 30% 0.09 2% 0.03 1%14 3.6 2.0 2.8 3.61 3.64 3.62 3.62 0.00 2.58 3.38 3.01 3.02 0.21 2.78 2.80 2.79 2.79 0.00 0.02 0% 1.01 33% 0.01 0%15 5.3 4.0 1.8 4.89 5.18 5.16 5.17 0.04 3.74 3.98 3.94 3.95 0.03 1.18 3.40 2.70 2.71 0.34 0.14 3% 0.06 1% 0.90 33%16 2.5 3.0 2.2 3.42 4.20 3.83 3.81 0.20 2.98 2.99 2.99 2.99 0.00 2.24 2.24 2.24 2.24 0.00 1.33 35% 0.01 0% 0.04 2%17 3.0 3.0 1.9 3.04 3.09 3.07 3.07 0.01 1.83 3.75 2.54 2.54 0.42 1.95 1.98 1.96 1.96 0.00 0.07 2% 0.46 18% 0.06 3%18 5.3 2.0 2.2 5.09 5.17 5.16 5.16 0.01 1.97 2.12 2.07 2.07 0.02 1.92 3.18 2.51 2.44 0.26 0.14 3% 0.07 3% 0.31 12%19 2.0 3.0 2.4 3.35 4.30 3.84 3.84 0.20 2.99 3.00 2.99 2.99 0.00 2.42 2.43 2.42 2.42 0.00 1.84 48% 0.01 0% 0.02 1%20 4.1 4.0 3.6 4.05 4.08 4.07 4.07 0.00 2.01 4.26 3.36 3.35 0.41 3.51 3.53 3.52 3.52 0.00 0.03 1% 0.64 19% 0.08 2%21 2.0 2.0 2.4 2.15 2.41 2.17 2.16 0.04 2.01 2.24 2.05 2.04 0.04 1.53 4.10 2.58 2.58 0.36 0.17 8% 0.05 2% 0.18 7%22 4.1 2.0 2.8 3.20 4.45 3.73 3.70 0.26 2.04 2.06 2.06 2.06 0.00 2.77 2.78 2.78 2.78 0.00 0.37 10% 0.06 3% 0.02 1%23 3.2 3.0 1.9 3.25 3.27 3.26 3.26 0.00 1.96 4.13 2.52 2.51 0.39 1.96 1.99 1.96 1.96 0.00 0.06 2% 0.48 19% 0.06 3%24 2.4 2.0 2.2 2.51 2.76 2.53 2.52 0.04 2.00 2.22 2.05 2.05 0.03 1.77 3.89 2.58 2.61 0.31 0.13 5% 0.05 3% 0.38 15%25 3.5 4.0 3.8 2.93 4.40 3.81 3.82 0.29 3.97 3.98 3.97 3.97 0.00 3.71 3.71 3.71 3.71 0.00 0.31 8% 0.03 1% 0.09 2%26 3.0 3.0 3.6 3.06 3.08 3.07 3.07 0.00 2.39 4.46 3.25 3.16 0.39 3.51 3.53 3.52 3.52 0.00 0.07 2% 0.25 8% 0.08 2%27 2.8 2.0 3.2 2.88 3.19 2.90 2.89 0.05 2.03 2.26 2.06 2.05 0.03 2.21 3.89 2.57 2.51 0.27 0.10 3% 0.06 3% 0.63 25%28 4.2 5.0 2.8 2.52 4.73 3.92 4.00 0.50 4.90 4.90 4.90 4.90 0.00 2.81 2.81 2.81 2.81 0.00 0.28 7% 0.10 2% 0.01 0%29 5.1 2.0 2.9 4.97 4.99 4.98 4.98 0.00 1.69 4.00 3.16 3.25 0.49 2.85 2.89 2.88 2.88 0.01 0.12 2% 1.16 37% 0.02 1%30 4.6 2.0 2.2 4.46 4.56 4.52 4.52 0.01 2.04 2.11 2.06 2.06 0.01 2.14 3.29 2.49 2.45 0.23 0.08 2% 0.06 3% 0.29 12%31 5.3 3.0 2.8 3.43 4.20 3.82 3.87 0.18 3.00 3.01 3.00 3.00 0.00 2.79 2.79 2.79 2.79 0.00 1.48 39% 0.00 0% 0.01 0%32 4.1 4.0 2.7 4.05 4.08 4.07 4.07 0.00 2.40 3.36 2.97 3.08 0.25 2.68 2.70 2.70 2.70 0.00 0.03 1% 1.03 35% 0.00 0%33 4.7 3.0 2.2 4.48 4.62 4.61 4.62 0.02 2.89 3.04 3.00 3.01 0.02 1.94 3.28 2.63 2.66 0.23 0.09 2% 0.00 0% 0.43 16%34 3.3 2.0 2.4 3.30 4.70 3.76 3.70 0.28 2.04 2.06 2.05 2.05 0.00 2.41 2.41 2.41 2.41 0.00 0.46 12% 0.05 2% 0.01 1%35 4.2 3.0 2.1 4.13 4.17 4.16 4.17 0.01 2.18 3.23 2.73 2.67 0.26 2.14 2.15 2.15 2.15 0.00 0.04 1% 0.27 10% 0.05 2%36 3.7 4.0 3.8 3.60 3.74 3.71 3.71 0.02 3.89 3.94 3.94 3.94 0.01 2.24 3.07 2.71 2.72 0.15 0.01 0% 0.06 2% 1.09 40%

0.37 10% 0.29 10% 0.22 8%

Page 105: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

105

Matrix BNMF Predicted matrix with BNMF Prediction errors by BNMF

TDP CDP HDPSessions TD CD HD min max mean median desv. min max mean median desv. min max mean median desv. TDPe TDPep CDPe CDPep HDPe HDep

1 8.0 5.0 2.0 8.36 9.33 9.30 9.08 0.45 5.79 7.70 7.30 7.62 0.89 2.73 5.07 4.40 4.07 0.98 1.30 14% 2.30 32% 2.40 55%2 5.0 7.0 1.0 5.55 7.02 6.10 6.67 0.65 7.96 8.91 8.80 8.51 0.42 1.57 2.76 1.90 2.18 0.50 1.10 18% 1.80 20% 0.90 47%3 9.0 3.0 3.0 9.57 10.14 9.80 10.00 0.25 3.79 4.34 4.20 4.01 0.21 3.87 5.44 5.30 3.92 0.83 0.80 8% 1.20 29% 2.30 43%4 8.0 4.0 2.0 8.26 8.95 8.90 8.59 0.32 4.21 5.25 4.70 4.71 0.42 2.69 2.99 2.80 2.90 0.05 0.90 10% 0.70 15% 0.80 29%5 2.0 1.0 4.0 2.82 3.50 3.40 2.99 0.33 1.23 2.95 2.20 1.70 0.73 4.16 5.86 4.90 5.71 0.79 1.40 41% 1.20 55% 0.90 18%6 8.0 4.0 1.0 8.30 9.07 8.80 9.04 0.36 4.99 7.17 6.40 5.39 0.99 1.26 3.99 3.20 1.32 1.37 0.80 9% 2.40 38% 2.20 69%7 2.0 1.0 2.0 2.35 3.55 3.00 3.20 0.51 1.19 3.05 2.30 1.48 0.84 3.00 5.18 4.50 3.24 1.04 1.00 33% 1.30 57% 2.50 56%8 5.0 0.0 4.0 5.36 5.86 5.70 5.36 0.25 0.03 1.44 1.40 0.25 0.74 4.04 6.72 6.40 6.05 1.21 0.70 12% 1.40 100% 2.40 38%9 4.0 0.0 0.0 4.81 5.79 5.20 4.87 0.45 0.70 1.20 0.80 1.04 0.23 0.94 1.49 1.30 1.33 0.23 1.20 23% 0.80 100% 1.30 100%

10 3.0 7.0 2.0 3.40 3.91 3.80 3.70 0.19 7.08 8.53 7.90 7.71 0.60 2.17 4.16 3.80 3.32 0.87 0.80 21% 0.90 11% 1.80 47%11 2.0 3.0 3.0 2.49 2.93 2.60 2.84 0.13 3.22 5.37 5.00 3.31 1.12 3.53 6.49 5.90 6.18 1.35 0.60 23% 2.00 40% 2.90 49%12 8.0 0.0 1.0 8.13 9.51 9.30 9.25 0.58 0.56 1.14 1.00 0.88 0.25 1.44 4.04 3.20 2.71 1.09 1.30 14% 1.00 100% 2.20 69%13 3.0 8.0 3.0 3.78 5.12 4.60 3.92 0.65 8.21 9.88 9.40 9.14 0.70 3.59 5.60 5.50 3.83 1.04 1.60 35% 1.40 15% 2.50 45%14 4.0 1.0 2.0 4.04 6.73 6.20 4.85 1.23 1.99 4.50 3.70 4.39 1.13 2.07 4.81 4.70 4.53 1.29 2.20 35% 2.70 73% 2.70 57%15 8.0 7.0 0.0 8.21 9.16 8.30 9.15 0.47 7.02 10.01 9.10 9.62 1.33 0.24 2.07 2.00 1.51 0.85 0.30 4% 2.10 23% 2.00 100%16 1.0 3.0 1.0 1.80 4.56 3.70 3.52 1.16 3.14 6.00 5.50 5.87 1.32 1.65 3.49 3.30 3.07 0.84 2.70 73% 2.50 45% 2.30 70%17 1.0 3.0 5.0 1.14 2.72 2.50 2.38 0.71 3.26 6.20 5.40 5.74 1.30 5.66 5.92 5.80 5.84 0.07 1.50 60% 2.40 44% 0.80 14%18 8.0 1.0 1.0 8.50 10.53 10.10 9.61 0.88 1.92 3.90 3.30 2.10 0.95 1.71 1.87 1.70 1.75 0.03 2.10 21% 2.30 70% 0.70 41%19 1.0 4.0 2.0 1.62 2.07 1.80 2.03 0.21 4.74 6.43 6.20 5.83 0.75 2.34 3.60 3.40 3.14 0.55 0.80 44% 2.20 35% 1.40 41%20 5.0 7.0 5.0 5.54 6.32 6.30 5.83 0.38 7.78 10.74 9.90 8.03 1.44 5.82 8.23 7.70 7.73 1.06 1.30 21% 2.90 29% 2.70 35%21 0.0 0.0 4.0 0.44 1.35 0.60 0.46 0.43 0.99 2.72 2.20 1.35 0.79 4.78 6.87 6.60 5.36 1.00 0.60 100% 2.20 100% 2.60 39%22 2.0 0.0 10.0 2.98 4.24 3.80 3.63 0.53 0.49 2.00 1.30 1.65 0.64 10.87 11.00 10.90 10.98 0.04 1.80 47% 1.30 100% 0.90 8%23 2.0 3.0 3.0 2.85 3.72 2.90 3.10 0.40 3.57 4.48 4.40 4.23 0.41 3.99 5.84 5.40 5.36 0.80 0.90 31% 1.40 32% 2.40 44%24 2.0 0.0 1.0 2.18 3.66 2.80 3.50 0.68 0.83 1.17 0.90 0.95 0.12 1.86 2.65 2.20 2.36 0.33 0.80 29% 0.90 100% 1.20 55%25 5.0 5.0 5.0 5.43 6.97 6.40 6.36 0.63 5.62 6.53 6.00 5.68 0.42 5.08 7.30 6.80 6.15 0.96 1.40 22% 1.00 17% 1.80 26%26 5.0 3.0 2.0 5.50 6.41 5.60 6.14 0.38 3.06 5.11 4.30 4.22 0.85 2.57 3.99 3.70 2.86 0.67 0.60 11% 1.30 30% 1.70 46%27 2.0 0.0 4.0 2.64 4.15 3.30 3.37 0.62 0.68 3.18 2.20 2.14 1.03 4.39 6.82 6.20 6.18 1.05 1.30 39% 2.20 100% 2.20 35%28 7.0 10.0 1.0 7.84 10.13 9.40 8.34 1.03 10.43 11.94 11.10 11.17 0.62 1.09 3.88 3.50 1.83 1.33 2.40 26% 1.10 10% 2.50 71%29 9.0 1.0 2.0 9.35 10.89 10.60 10.20 0.67 1.29 3.50 3.40 3.18 1.02 2.14 5.38 4.60 2.88 1.50 1.60 15% 2.40 71% 2.60 57%30 7.0 1.0 1.0 7.40 9.75 8.80 7.50 1.12 1.42 3.19 2.70 1.59 0.86 1.60 3.69 3.60 2.79 0.97 1.80 20% 1.70 63% 2.60 72%31 10.0 4.0 1.0 10.47 12.34 11.90 12.18 0.85 4.31 5.95 5.40 5.00 0.69 1.52 3.37 3.30 2.26 0.89 1.90 16% 1.40 26% 2.30 70%32 3.0 5.0 3.0 3.84 4.52 4.40 3.97 0.33 5.23 6.80 6.40 5.44 0.75 3.21 5.95 5.40 4.32 1.21 1.40 32% 1.40 22% 2.40 44%33 5.0 3.0 1.0 5.12 7.58 7.20 5.92 1.14 3.02 5.55 4.60 3.51 1.13 1.09 3.45 2.90 3.00 1.04 2.20 31% 1.60 35% 1.90 66%34 3.0 0.0 1.0 3.49 5.72 5.00 3.71 1.06 0.93 1.83 1.70 1.28 0.38 1.10 3.27 2.60 1.31 1.04 2.00 40% 1.70 100% 1.60 62%35 5.0 4.0 1.0 5.97 7.61 7.20 6.90 0.70 4.49 6.22 5.30 4.60 0.77 1.59 4.38 3.40 3.52 1.17 2.20 31% 1.30 25% 2.40 71%36 4.0 8.0 4.0 4.41 5.41 4.50 4.90 0.43 8.38 10.74 9.90 9.18 1.01 4.12 7.28 6.50 7.25 1.49 0.50 11% 1.90 19% 2.50 38%

1.33 28% 1.68 49% 1.98 51%

Page 106: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

106

8.1.2 Aula L2.

L2 Collected datapmf bnmf pmf bnmf pmf bnmf

T C HSessions Sessions Tini Tend TV TP TD Cini Cend CV CP CD Hini Hend HV HP HD29-01-2020 from 15:30 to 19:00 1 15.20 18.70 3.50 0.23 3.0 443.00 445.00 2.00 0.00 1.0 68.20 70.80 2.60 0.04 2.030-01-2020 from 10:30 to 13:30 2 16.10 18.20 2.10 0.13 0.0 456.00 458.00 2.00 0.00 1.0 72.10 75.40 3.30 0.05 3.031-01-2020 from 09:00 to 13:30 3 10.70 14.10 3.40 0.32 6.0 489.00 492.00 3.00 0.01 3.0 92.20 94.40 2.20 0.02 0.003-02-2020 from 08:00 to 10:30 4 9.80 12.80 3.00 0.31 5.0 460.00 464.00 4.00 0.01 7.0 88.50 92.10 3.60 0.04 3.003-02-2020 from 12:00 to 14:30 5 15.20 19.50 4.30 0.28 5.0 472.00 477.00 5.00 0.01 10.0 71.40 73.30 1.90 0.03 1.003-02-2020 from 15:30 to 19:30 6 20.70 23.90 3.20 0.15 1.0 463.00 466.00 3.00 0.01 4.0 54.20 56.40 2.20 0.04 3.004-02-2020 from 10:30 to 13:30 7 12.30 16.50 4.20 0.34 6.0 483.00 485.00 2.00 0.00 0.0 74.20 76.00 1.80 0.02 0.005-02-2020 from 15:30 to 19:00 8 18.50 23.60 5.10 0.28 4.0 420.00 422.00 2.00 0.00 1.0 60.50 62.90 2.40 0.04 2.006-02-2020 from 10:30 to 13:30 9 12.20 16.80 4.60 0.38 7.0 481.00 484.00 3.00 0.01 3.0 80.70 83.50 2.80 0.03 2.007-02-2020 from 09:00 to 13:30 10 11.80 17.10 5.30 0.45 10.0 472.00 476.00 4.00 0.01 7.0 81.50 83.40 1.90 0.02 0.010-02-2020 from 08:00 to 10:30 11 10.20 14.30 4.10 0.40 8.0 433.00 436.00 3.00 0.01 4.0 85.40 88.70 3.30 0.04 2.010-02-2020 from 12:00 to 14:30 12 15.40 20.10 4.70 0.31 5.0 442.00 445.00 3.00 0.01 4.0 62.40 64.60 2.20 0.04 2.010-02-2020 from 15:30 to 19:30 13 22.30 26.10 3.80 0.17 1.0 460.00 462.00 2.00 0.00 1.0 38.20 41.80 3.60 0.09 10.011-02-2020 from 10:30 to 13:30 14 13.40 16.90 3.50 0.26 4.0 502.00 507.00 5.00 0.01 9.0 68.30 70.90 2.60 0.04 2.012-02-2020 from 15:30 to 19:30 15 18.10 22.30 4.20 0.23 3.0 501.00 503.00 2.00 0.00 0.0 50.90 53.80 2.90 0.06 5.013-02-2020 from 10:30 to 13:30 16 12.90 17.60 4.70 0.36 7.0 482.00 485.00 3.00 0.01 3.0 58.60 61.00 2.40 0.04 3.014-02-2020 from 09:00 to 13:30 17 11.10 13.50 2.40 0.22 3.0 455.00 457.00 2.00 0.00 1.0 77.60 79.80 2.20 0.03 1.017-02-2020 from 08:00 to 10:30 18 10.20 14.20 4.00 0.39 8.0 420.00 423.00 3.00 0.01 5.0 84.30 87.20 2.90 0.03 2.017-02-2020 from 12:00 to 14:30 19 16.30 20.20 3.90 0.24 3.0 439.00 442.00 3.00 0.01 4.0 60.70 63.60 2.90 0.05 4.017-02-2020 from 15:30 to 19:30 20 22.90 26.50 3.60 0.16 1.0 438.00 440.00 2.00 0.00 1.0 51.10 53.80 2.70 0.05 4.018-02-2020 from 10:30 to 13:30 21 12.50 15.40 2.90 0.23 3.0 448.00 451.00 3.00 0.01 4.0 72.40 74.40 2.00 0.03 1.019-02-2020 from 15:30 to 19:30 22 19.80 23.50 3.70 0.19 2.0 435.00 438.00 3.00 0.01 4.0 50.80 54.20 3.40 0.07 6.020-02-2020 from 10:30 to 13:30 23 13.60 19.00 5.40 0.40 8.0 486.00 488.00 2.00 0.00 0.0 74.90 77.30 2.40 0.03 1.021-02-2020 from 09:00 to 13:30 24 10.80 13.90 3.10 0.29 5.0 467.00 469.00 2.00 0.00 0.0 87.80 90.90 3.10 0.04 2.024-02-2020 from 08:00 to 10:30 25 9.90 13.10 3.20 0.32 6.0 464.00 468.00 4.00 0.01 7.0 90.00 92.60 2.60 0.03 1.024-02-2020 from 12:00 to 14:30 26 15.40 18.70 3.30 0.21 3.0 470.00 472.00 2.00 0.00 0.0 66.40 67.90 1.50 0.02 0.024-02-2020 from 15:30 to 19:30 27 19.20 23.50 4.30 0.22 3.0 472.00 474.00 2.00 0.00 0.0 58.00 60.20 2.20 0.04 2.025-02-2020 from 10:30 to 13:30 28 13.70 19.00 5.30 0.39 8.0 425.00 429.00 4.00 0.01 8.0 72.20 74.00 1.80 0.02 0.026-02-2020 from 15:30 to 19:30 29 15.40 21.20 5.80 0.38 7.0 444.00 447.00 3.00 0.01 4.0 67.80 70.00 2.20 0.03 1.027-02-2020 from 10:30 to 13:30 30 12.40 15.50 3.10 0.25 4.0 451.00 453.00 2.00 0.00 1.0 75.50 79.30 3.80 0.05 4.028-02-2020 from 09:00 to 13:30 31 12.90 15.30 2.40 0.19 2.0 502.00 504.00 2.00 0.00 0.0 63.10 66.70 3.60 0.06 5.002-02-2020 from 08:00 to 10:30 32 11.80 15.30 3.50 0.30 5.0 467.00 470.00 3.00 0.01 4.0 80.20 83.40 3.20 0.04 2.002-02-2020 from 12:00 to 14:30 33 15.60 18.60 3.00 0.19 2.0 481.00 485.00 4.00 0.01 7.0 64.30 67.10 2.80 0.04 3.002-02-2020 from 15:30 to 19:30 34 19.60 22.40 2.80 0.14 0.0 503.00 506.00 3.00 0.01 3.0 48.80 51.70 2.90 0.06 5.003-02-2020 from 10:30 to 13:30 35 14.40 18.10 3.70 0.26 4.0 499.00 502.00 3.00 0.01 3.0 72.70 74.90 2.20 0.03 1.004-02-2020 from 15:30 to 19:30 36 16.50 21.80 5.30 0.32 6.0 452.00 455.00 3.00 0.01 4.0 65.40 68.20 2.80 0.04 3.005-02-2020 from 10:30 to 13:30 37 12.40 16.10 3.70 0.30 5.0 459.00 462.00 3.00 0.01 4.0 78.30 81.00 2.70 0.03 2.006-02-2020 from 09:00 to 13:30 38 11.80 14.70 2.90 0.25 3.0 472.00 474.00 2.00 0.00 0.0 80.70 82.90 2.20 0.03 1.009-02-2020 from 08:00 to 10:30 39 10.80 15.80 5.00 0.46 10.0 472.00 476.00 4.00 0.01 7.0 89.50 91.90 2.40 0.03 1.009-02-2020 from 12:00 to 14:30 40 16.00 19.10 3.10 0.19 2.0 433.00 437.00 4.00 0.01 8.0 59.60 61.70 2.10 0.04 2.009-02-2020 from 15:30 to 19:30 41 19.60 22.50 2.90 0.15 1.0 432.00 434.00 2.00 0.00 1.0 54.60 58.40 3.80 0.07 7.010-02-2020 from 10:30 to 13:30 42 12.20 16.90 4.70 0.39 8.0 456.00 459.00 3.00 0.01 4.0 73.50 77.10 3.60 0.05 4.011-02-2020 from 15:30 to 19:30 43 16.70 20.60 3.90 0.23 3.0 459.00 463.00 4.00 0.01 7.0 61.20 63.80 2.60 0.04 3.012-02-2020 from 10:30 to 13:30 44 13.30 17.90 4.60 0.35 6.0 462.00 465.00 3.00 0.01 4.0 69.90 72.80 2.90 0.04 3.013-02-2020 from 09:00 to 13:30 45 13.00 17.40 4.40 0.34 6.0 466.00 469.00 3.00 0.01 4.0 79.40 82.70 3.30 0.04 3.0

max. 0.46 max. 0.01 max. 0.09min. 0.13 min. 0.00 min. 0.02

Page 107: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

107

Matrix PMF Predicted matrix with PMF Prediction errors by PMF

TVP CVP HVPSessions TV CV HV min max mean median desv. min max mean median desv. min max mean median desv. TVPe TVPep CVPe CVPep HVPe HVep

1 3.5 2.0 2.6 2.70 4.69 3.83 3.85 0.36 2.07 2.19 2.10 2.09 0.02 2.53 2.69 2.62 2.62 0.02 0.33 9% 0.10 5% 0.02 1%2 2.1 2.0 3.3 2.20 2.25 2.22 2.22 0.01 1.94 3.94 2.58 2.52 0.33 3.26 3.29 3.27 3.27 0.01 0.12 5% 0.58 22% 0.03 1%3 3.4 3.0 2.2 3.43 3.44 3.44 3.44 0.00 2.98 2.99 2.99 2.99 0.00 2.45 2.98 2.69 2.70 0.12 0.04 1% 0.01 0% 0.49 18%4 3.0 4.0 3.6 2.50 6.07 3.79 3.79 0.66 3.69 3.95 3.86 3.86 0.04 3.41 3.57 3.53 3.53 0.02 0.79 21% 0.14 4% 0.07 2%5 4.3 5.0 1.9 4.24 4.31 4.28 4.28 0.01 1.95 3.98 3.19 3.22 0.36 1.94 1.95 1.95 1.95 0.00 0.02 0% 1.81 56% 0.05 2%6 3.2 3.0 2.2 3.25 3.25 3.25 3.25 0.00 2.97 3.00 2.99 2.99 0.00 2.39 3.07 2.72 2.69 0.16 0.05 2% 0.01 1% 0.52 19%7 4.2 2.0 1.8 1.71 4.94 3.94 4.04 0.56 2.07 2.28 2.12 2.12 0.04 1.83 1.98 1.87 1.87 0.02 0.26 7% 0.12 6% 0.07 4%8 5.1 2.0 2.4 5.00 5.02 5.02 5.02 0.00 2.38 3.47 3.06 3.05 0.22 2.40 2.42 2.41 2.41 0.00 0.08 2% 1.06 35% 0.01 0%9 4.6 3.0 2.8 4.55 4.55 4.55 4.55 0.00 2.99 3.01 3.00 3.00 0.00 2.41 2.84 2.59 2.59 0.12 0.05 1% 0.00 0% 0.21 8%

10 5.3 4.0 1.9 1.70 5.76 4.00 4.02 0.58 3.69 3.93 3.91 3.92 0.04 1.91 2.09 1.94 1.94 0.03 1.30 33% 0.09 2% 0.04 2%11 4.1 3.0 3.3 4.05 4.11 4.08 4.08 0.01 2.22 3.68 2.77 2.68 0.33 3.26 3.27 3.26 3.26 0.00 0.02 1% 0.23 8% 0.04 1%12 4.7 3.0 2.2 4.64 4.64 4.64 4.64 0.00 2.98 3.01 3.00 3.00 0.00 2.34 2.94 2.61 2.59 0.15 0.06 1% 0.00 0% 0.41 16%13 3.8 2.0 3.6 2.13 6.35 3.67 3.60 0.64 2.01 2.36 2.07 2.06 0.05 3.37 3.56 3.55 3.56 0.03 0.13 4% 0.07 3% 0.05 1%14 3.5 5.0 2.6 3.52 3.53 3.53 3.53 0.00 2.49 3.27 2.94 2.93 0.19 2.60 2.61 2.61 2.61 0.00 0.03 1% 2.06 70% 0.01 0%15 4.2 2.0 2.9 4.17 4.18 4.17 4.17 0.00 2.07 2.09 2.08 2.08 0.00 2.15 3.32 2.84 2.90 0.31 0.03 1% 0.08 4% 0.06 2%16 4.7 3.0 2.4 3.19 4.44 3.90 3.90 0.22 2.90 3.02 3.00 3.00 0.02 2.42 2.47 2.42 2.42 0.01 0.80 20% 0.00 0% 0.02 1%17 2.4 2.0 2.2 2.49 2.54 2.51 2.51 0.01 1.79 3.60 2.96 3.03 0.36 2.23 2.26 2.24 2.24 0.01 0.11 4% 0.96 32% 0.04 2%18 4.0 3.0 2.9 3.99 3.99 3.99 3.99 0.00 2.99 3.00 2.99 2.99 0.00 2.39 2.96 2.66 2.70 0.13 0.01 0% 0.01 0% 0.24 9%19 3.9 3.0 2.9 3.45 4.48 3.82 3.82 0.21 2.93 3.01 2.98 2.98 0.01 2.86 2.89 2.89 2.89 0.01 0.08 2% 0.02 1% 0.01 0%20 3.6 2.0 2.7 3.62 3.62 3.62 3.62 0.00 2.66 3.26 2.91 2.89 0.15 2.70 2.71 2.70 2.70 0.00 0.02 1% 0.91 31% 0.00 0%21 2.9 3.0 2.0 2.97 2.97 2.97 2.97 0.00 2.97 3.00 2.98 2.98 0.00 2.47 3.13 2.76 2.76 0.15 0.07 2% 0.02 1% 0.76 28%22 3.7 3.0 3.4 2.96 4.93 3.81 3.71 0.42 2.90 3.10 2.97 2.97 0.03 3.30 3.36 3.35 3.35 0.01 0.11 3% 0.03 1% 0.05 1%23 5.4 2.0 2.4 5.28 5.30 5.30 5.30 0.00 2.42 3.58 3.08 3.11 0.24 2.39 2.42 2.41 2.41 0.01 0.10 2% 1.08 35% 0.01 0%24 3.1 2.0 3.1 3.14 3.16 3.15 3.15 0.00 2.06 2.07 2.07 2.07 0.00 2.07 3.43 2.91 2.97 0.27 0.05 2% 0.07 3% 0.19 7%25 3.2 4.0 2.6 2.68 5.11 3.97 3.98 0.44 3.78 3.91 3.89 3.89 0.02 2.53 2.70 2.60 2.59 0.02 0.77 19% 0.11 3% 0.00 0%26 3.3 2.0 1.5 3.30 3.40 3.36 3.36 0.02 1.57 4.21 3.18 3.26 0.57 1.57 1.59 1.58 1.58 0.00 0.06 2% 1.18 37% 0.08 5%27 4.3 2.0 2.2 4.26 4.27 4.26 4.26 0.00 2.07 2.09 2.08 2.08 0.00 2.02 3.42 2.84 2.85 0.31 0.04 1% 0.08 4% 0.64 23%28 5.3 4.0 1.8 1.15 6.30 4.03 4.04 0.71 3.58 3.93 3.91 3.92 0.06 1.81 2.05 1.85 1.84 0.04 1.27 31% 0.09 2% 0.05 3%29 5.8 3.0 2.2 5.65 5.68 5.67 5.67 0.01 2.21 3.89 3.19 3.22 0.31 2.20 2.23 2.22 2.22 0.01 0.13 2% 0.19 6% 0.02 1%30 3.1 2.0 3.8 3.14 3.15 3.15 3.15 0.00 2.05 2.10 2.07 2.07 0.01 1.82 3.38 2.91 2.94 0.31 0.05 2% 0.07 3% 0.89 31%31 2.4 2.0 3.6 1.80 6.14 3.72 3.67 0.60 2.03 2.30 2.07 2.06 0.04 3.40 3.56 3.55 3.56 0.03 1.32 35% 0.07 3% 0.05 1%32 3.5 3.0 3.2 3.51 3.54 3.52 3.52 0.01 2.25 3.31 2.73 2.75 0.22 3.17 3.18 3.17 3.17 0.00 0.02 1% 0.27 10% 0.03 1%33 3.0 4.0 2.8 3.07 3.08 3.07 3.07 0.00 3.89 3.91 3.90 3.90 0.00 1.83 3.63 2.54 2.48 0.40 0.07 2% 0.10 3% 0.26 10%34 2.8 3.0 2.9 3.42 4.27 3.83 3.80 0.19 2.97 3.00 2.98 2.98 0.01 2.88 2.90 2.89 2.89 0.00 1.03 27% 0.02 1% 0.01 0%35 3.7 3.0 2.2 3.70 3.73 3.72 3.72 0.01 2.52 3.50 3.06 3.11 0.26 2.23 2.23 2.23 2.23 0.00 0.02 1% 0.06 2% 0.03 1%36 5.3 3.0 2.8 5.20 5.20 5.20 5.20 0.00 2.98 3.03 3.00 3.00 0.01 2.09 2.95 2.59 2.55 0.17 0.10 2% 0.00 0% 0.21 8%37 3.7 3.0 2.7 3.49 4.23 3.88 3.89 0.18 2.98 3.02 2.99 2.99 0.01 2.69 2.71 2.70 2.70 0.00 0.18 5% 0.01 0% 0.00 0%38 2.9 2.0 2.2 2.96 3.00 2.98 2.98 0.01 2.03 3.49 3.00 3.07 0.32 2.23 2.24 2.24 2.24 0.00 0.08 3% 1.00 33% 0.04 2%39 5.0 4.0 2.4 4.92 4.94 4.93 4.93 0.00 3.91 3.94 3.92 3.92 0.00 1.87 3.40 2.39 2.33 0.35 0.07 1% 0.08 2% 0.01 0%40 3.1 4.0 2.1 1.95 5.49 3.95 3.99 0.50 3.70 3.92 3.90 3.91 0.03 2.09 2.27 2.13 2.12 0.03 0.85 21% 0.10 2% 0.03 1%41 2.9 2.0 3.8 2.92 3.01 2.96 2.96 0.02 1.76 4.13 2.57 2.45 0.48 3.73 3.75 3.74 3.74 0.00 0.06 2% 0.57 22% 0.06 2%42 4.7 3.0 3.6 4.64 4.64 4.64 4.64 0.00 2.99 3.01 3.00 3.00 0.00 2.26 2.86 2.58 2.58 0.14 0.06 1% 0.00 0% 1.02 40%43 3.9 4.0 2.6 2.67 4.86 3.91 3.93 0.41 3.76 3.91 3.89 3.89 0.03 2.53 2.71 2.59 2.59 0.02 0.01 0% 0.11 3% 0.01 0%44 4.6 3.0 2.9 4.54 4.56 4.55 4.55 0.00 2.42 3.61 2.91 2.93 0.23 2.88 2.89 2.88 2.89 0.00 0.05 1% 0.09 3% 0.02 1%45 4.4 3.0 3.3 4.36 4.37 4.36 4.36 0.00 2.99 3.00 3.00 3.00 0.00 2.45 2.90 2.68 2.67 0.11 0.04 1% 0.00 0% 0.62 23%

0.24 6% 0.30 10% 0.17 6%

Page 108: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

108

Matrix BNMF Predicted matrix with BNMF Prediction errors by BNMF

TDP CDP HDPSessions TD CD HD min max mean median desv. min max mean median desv. min max mean median desv. TDPe TDPep CDPe CDPep HDPe HDep

1 3.0 1.0 2.0 3.44 5.37 4.40 4.61 0.79 1.88 2.49 2.27 1.98 0.28 2.24 4.28 3.94 3.93 0.92 1.40 32% 1.27 56% 1.94 49%2 0.0 1.0 3.0 0.17 1.80 1.31 0.60 0.73 1.12 1.97 1.20 1.58 0.23 3.41 5.04 4.26 4.28 0.67 1.31 100% 0.20 17% 1.26 30%3 6.0 3.0 0.0 6.98 7.85 7.81 7.02 0.48 3.06 5.97 5.00 5.50 1.28 0.85 3.11 2.18 0.98 1.07 1.81 23% 2.00 40% 2.18 100%4 5.0 7.0 3.0 5.81 7.51 7.51 6.72 0.81 7.28 7.82 7.45 7.74 0.15 3.69 5.33 4.49 4.99 0.71 2.51 33% 0.45 6% 1.49 33%5 5.0 10.0 1.0 5.09 5.67 5.24 5.42 0.19 10.92 13.42 12.68 10.99 1.25 1.10 1.92 1.34 1.75 0.22 0.24 5% 2.68 21% 0.34 25%6 1.0 4.0 3.0 1.86 2.91 2.78 2.85 0.50 4.72 6.53 6.04 5.34 0.79 3.00 4.90 4.15 3.31 0.86 1.78 64% 2.04 34% 1.15 28%7 6.0 0.0 0.0 6.09 9.00 8.68 8.54 1.34 0.29 0.81 0.61 0.71 0.22 0.48 1.75 1.67 1.23 0.58 2.68 31% 0.61 100% 1.67 100%8 4.0 1.0 2.0 4.16 5.42 5.27 4.53 0.60 1.72 2.24 2.13 1.78 0.25 2.45 5.31 4.57 3.33 1.27 1.27 24% 1.13 53% 2.57 56%9 7.0 3.0 2.0 7.01 8.77 8.53 8.47 0.80 3.48 5.51 4.73 4.44 0.84 2.60 4.78 3.93 3.36 0.92 1.53 18% 1.73 37% 1.93 49%

10 10.0 7.0 0.0 10.54 11.11 10.70 10.80 0.19 7.96 10.04 9.49 9.42 0.89 0.02 2.48 1.52 2.07 1.08 0.70 7% 2.49 26% 1.52 100%11 8.0 4.0 2.0 8.13 9.09 8.71 9.07 0.45 4.67 5.84 5.40 5.45 0.49 2.14 3.26 2.86 2.95 0.47 0.71 8% 1.40 26% 0.86 30%12 5.0 4.0 2.0 5.05 7.22 6.83 6.08 0.95 4.07 6.18 5.33 5.69 0.90 2.47 4.11 3.57 2.80 0.75 1.83 27% 1.33 25% 1.57 44%13 1.0 1.0 10.0 1.03 2.16 1.85 1.21 0.53 1.94 2.18 2.07 1.96 0.07 10.31 13.04 12.67 11.32 1.26 0.85 46% 1.07 52% 2.67 21%14 4.0 9.0 2.0 4.92 5.97 5.32 5.56 0.44 9.27 12.65 11.82 12.25 1.52 2.23 3.53 3.36 2.53 0.60 1.32 25% 2.82 24% 1.36 40%15 3.0 0.0 5.0 3.28 5.90 5.05 3.97 1.16 0.26 1.80 0.98 1.37 0.65 5.96 8.06 7.15 6.97 0.86 2.05 41% 0.98 100% 2.15 30%16 7.0 3.0 3.0 7.58 7.97 7.81 7.95 0.07 3.40 5.39 4.87 4.74 0.85 3.16 4.19 4.06 3.89 0.46 0.81 10% 1.87 38% 1.06 26%17 3.0 1.0 1.0 3.65 6.01 5.83 5.73 1.11 1.39 3.81 3.11 3.18 1.04 1.85 4.27 3.56 2.16 1.15 2.83 49% 2.11 68% 2.56 72%18 8.0 5.0 2.0 8.96 9.69 9.18 9.10 0.32 5.26 6.37 6.23 6.35 0.53 2.48 3.88 2.88 2.83 0.60 1.18 13% 1.23 20% 0.88 31%19 3.0 4.0 4.0 3.32 3.93 3.38 3.77 0.20 4.91 6.65 6.15 6.43 0.78 4.02 6.74 5.78 4.68 1.20 0.38 11% 2.15 35% 1.78 31%20 1.0 1.0 4.0 1.57 3.43 3.03 3.29 0.85 1.93 4.03 3.88 3.29 0.96 4.85 5.41 5.32 4.95 0.27 2.03 67% 2.88 74% 1.32 25%21 3.0 4.0 1.0 3.01 3.60 3.09 3.29 0.22 4.59 5.09 4.78 4.92 0.13 1.65 3.06 2.61 2.01 0.62 0.09 3% 0.78 16% 1.61 62%22 2.0 4.0 6.0 2.26 4.41 3.69 2.92 0.93 4.39 7.26 6.39 4.57 1.41 6.90 8.61 8.00 8.18 0.73 1.69 46% 2.39 37% 2.00 25%23 8.0 0.0 1.0 8.40 10.09 9.53 9.03 0.72 0.10 3.00 2.59 0.92 1.37 1.83 2.90 2.00 2.06 0.48 1.53 16% 2.59 100% 1.00 50%24 5.0 0.0 2.0 5.44 6.56 5.73 5.48 0.52 0.21 1.70 0.80 1.01 0.61 2.44 3.55 2.67 2.57 0.51 0.73 13% 0.80 100% 0.67 25%25 6.0 7.0 1.0 6.39 7.65 7.23 7.09 0.52 7.26 8.99 8.39 8.06 0.72 1.82 4.04 3.61 3.57 0.98 1.23 17% 1.39 17% 2.61 72%26 3.0 0.0 0.0 3.24 3.51 3.29 3.39 0.12 0.55 1.06 0.92 0.71 0.22 0.42 2.58 1.89 2.44 0.99 0.29 9% 0.92 100% 1.89 100%27 3.0 0.0 2.0 3.14 3.88 3.23 3.23 0.34 0.36 1.88 1.35 0.66 0.68 2.06 2.93 2.23 2.76 0.27 0.23 7% 1.35 100% 0.23 10%28 8.0 8.0 0.0 8.05 9.80 9.54 8.12 0.92 8.70 10.01 9.92 9.63 0.60 0.58 2.77 2.23 2.63 1.01 1.54 16% 1.92 19% 2.23 100%29 7.0 4.0 1.0 7.54 9.71 9.25 8.84 0.93 4.75 6.33 5.65 5.69 0.65 1.85 2.61 1.98 1.95 0.35 2.25 24% 1.65 29% 0.98 50%30 4.0 1.0 4.0 4.80 7.74 6.76 7.09 1.26 1.40 2.12 1.55 1.74 0.24 4.43 5.23 4.57 5.05 0.28 2.76 41% 0.55 35% 0.57 13%31 2.0 0.0 5.0 2.76 3.94 3.38 2.86 0.54 0.25 2.06 1.33 1.22 0.74 5.75 7.17 6.99 6.98 0.66 1.38 41% 1.33 100% 1.99 28%32 5.0 4.0 2.0 5.90 5.65 5.38 5.67 0.21 4.10 7.55 6.61 5.85 1.46 2.58 3.46 3.20 3.09 0.37 0.38 7% 2.61 40% 1.20 37%33 2.0 7.0 3.0 2.51 4.24 3.34 3.40 0.71 7.29 10.21 9.32 8.67 1.23 2.95 3.93 3.01 3.83 0.42 1.34 40% 2.32 25% 0.01 0%34 0.0 3.0 5.0 0.11 1.29 1.21 1.06 0.55 3.14 5.40 4.96 4.38 0.98 5.63 6.57 5.76 6.30 0.45 1.21 100% 1.96 39% 0.76 13%35 4.0 3.0 1.0 4.29 6.60 5.94 5.60 0.97 3.04 4.37 3.63 3.39 0.56 1.76 2.37 1.99 2.19 0.26 1.94 33% 0.63 17% 0.99 50%36 6.0 4.0 3.0 6.91 8.62 8.29 7.96 0.74 4.73 4.96 4.94 4.78 0.12 3.25 4.23 3.76 4.20 0.46 2.29 28% 0.94 19% 0.76 20%37 5.0 4.0 2.0 5.44 7.04 6.75 5.67 0.79 4.96 5.30 4.50 5.02 0.33 2.56 5.30 4.45 5.03 1.23 1.75 26% 0.50 11% 2.45 55%38 3.0 0.0 1.0 3.81 4.23 3.85 3.86 0.19 0.12 1.47 0.94 0.38 0.60 1.14 3.11 2.27 1.60 0.86 0.85 22% 0.94 100% 1.27 56%39 10.0 7.0 1.0 10.13 12.30 11.95 11.55 0.95 7.18 9.74 9.64 9.17 1.19 1.48 2.50 1.54 2.17 0.41 1.95 16% 2.64 27% 0.54 35%40 2.0 8.0 2.0 2.86 4.85 4.30 4.30 0.86 8.90 9.11 9.03 8.94 0.09 2.39 4.17 3.30 2.91 0.75 2.30 53% 1.03 11% 1.30 39%41 1.0 1.0 7.0 1.41 2.52 1.53 2.06 0.51 1.08 3.99 3.04 2.77 1.21 7.31 9.58 8.60 9.16 0.99 0.53 35% 2.04 67% 1.60 19%42 8.0 4.0 4.0 8.38 9.10 8.99 8.64 0.33 4.39 6.53 6.23 4.73 1.06 4.46 5.79 4.91 5.71 0.64 0.99 11% 2.23 36% 0.91 19%43 3.0 7.0 3.0 3.80 5.84 5.79 4.43 1.02 7.52 9.00 8.45 7.66 0.69 3.35 5.51 5.38 3.86 1.05 2.79 48% 1.45 17% 2.38 44%44 6.0 4.0 3.0 6.57 7.41 6.82 6.70 0.37 4.28 5.70 5.33 5.44 0.62 3.26 3.95 3.51 3.85 0.32 0.82 12% 1.33 25% 0.51 15%45 6.0 4.0 3.0 6.81 8.37 8.07 8.15 0.71 4.15 6.80 5.84 4.17 1.30 3.84 5.63 5.08 5.36 0.79 2.07 26% 1.84 31% 2.08 41%

1.43 29% 1.57 44% 1.44 42%

Page 109: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

109

8.1.3 Aula LD.

LD Collected datapmf bnmf pmf bnmf pmf bnmf

T C HSessions Sessions Tini Tend TV TP TD Cini Cend CV CP CD Hini Hend HV HP HD29-01-2020 from 08:00 to 14:00 1 8.40 10.40 2.00 0.24 1.0 489.00 492.00 3.00 0.01 5.0 90.20 93.80 3.60 0.04 6.029-01-2020 from 15:30 to 20:30 2 17.20 21.30 4.10 0.24 1.0 483.00 485.00 2.00 0.00 3.0 65.40 67.30 1.90 0.03 3.030-01-2020 from 08:00 to 14:00 3 10.20 13.40 3.20 0.31 4.0 433.00 435.00 2.00 0.00 3.0 78.90 81.10 2.20 0.03 2.031-01-2020 from 09:00 to 14:00 4 12.20 15.30 3.10 0.25 1.0 468.00 470.00 2.00 0.00 3.0 72.30 74.10 1.80 0.02 1.003-02-2020 from 09:00 to 14:00 5 11.90 14.80 2.90 0.24 1.0 469.00 473.00 4.00 0.01 9.0 71.20 74.50 3.30 0.05 7.003-02-2020 from 15:30 to 19:00 6 16.00 21.80 5.80 0.36 6.0 472.00 475.00 3.00 0.01 6.0 58.40 60.60 2.20 0.04 5.004-02-2020 from 08:00 to 14:30 7 10.20 13.30 3.10 0.30 4.0 451.00 454.00 3.00 0.01 6.0 69.60 73.20 3.60 0.05 9.005-02-2020 from 08:00 to 14:00 8 10.10 12.50 2.40 0.24 1.0 489.00 492.00 3.00 0.01 5.0 80.20 82.80 2.60 0.03 4.005-02-2020 from 15:30 to 20:30 9 14.40 17.90 3.50 0.24 1.0 492.00 494.00 2.00 0.00 3.0 64.30 67.20 2.90 0.05 7.006-02-2020 from 08:00 to 14:00 10 10.50 13.50 3.00 0.29 3.0 470.00 472.00 2.00 0.00 3.0 75.20 78.50 3.30 0.04 7.007-02-2020 from 09:00 to 14:00 11 11.20 14.00 2.80 0.25 1.0 498.00 501.00 3.00 0.01 5.0 70.10 74.00 3.90 0.06 10.010-02-2020 from 09:00 to 14:00 12 11.50 15.20 3.70 0.32 4.0 444.00 448.00 4.00 0.01 9.0 72.30 74.00 1.70 0.02 1.010-02-2020 from 15:30 to 19:00 13 17.20 22.50 5.30 0.31 4.0 451.00 455.00 4.00 0.01 9.0 60.90 62.90 2.00 0.03 4.011-02-2020 from 08:00 to 14:30 14 12.00 15.70 3.70 0.31 4.0 502.00 505.00 3.00 0.01 5.0 80.80 83.40 2.60 0.03 4.012-02-2020 from 08:00 to 14:00 15 11.80 14.70 2.90 0.25 1.0 467.00 470.00 3.00 0.01 6.0 82.10 85.10 3.00 0.04 5.012-02-2020 from 15:30 to 20:30 16 16.30 21.30 5.00 0.31 4.0 481.00 483.00 2.00 0.00 3.0 69.20 71.90 2.70 0.04 5.013-02-2020 from 08:00 to 14:00 17 11.20 14.30 3.10 0.28 2.0 503.00 507.00 4.00 0.01 8.0 82.30 84.50 2.20 0.03 2.014-02-2020 from 09:00 to 14:00 18 10.90 13.80 2.90 0.27 2.0 499.00 502.00 3.00 0.01 5.0 88.70 91.60 2.90 0.03 4.017-02-2020 from 09:00 to 14:00 19 10.50 15.20 4.70 0.45 10.0 452.00 455.00 3.00 0.01 6.0 87.60 89.50 1.90 0.02 1.017-02-2020 from 15:30 to 19:00 20 16.90 22.00 5.10 0.30 4.0 459.00 463.00 4.00 0.01 9.0 59.20 61.20 2.00 0.03 4.018-02-2020 from 08:00 to 14:30 21 10.20 13.20 3.00 0.29 3.0 472.00 475.00 3.00 0.01 6.0 82.90 86.50 3.60 0.04 7.019-02-2020 from 08:00 to 14:00 22 10.00 12.40 2.40 0.24 1.0 444.00 447.00 3.00 0.01 6.0 84.20 86.80 2.60 0.03 3.019-02-2020 from 15:30 to 20:30 23 14.50 18.00 3.50 0.24 1.0 444.00 446.00 2.00 0.00 3.0 66.10 69.00 2.90 0.04 7.020-02-2020 from 08:00 to 14:00 24 9.90 12.90 3.00 0.30 4.0 465.00 467.00 2.00 0.00 3.0 90.90 94.20 3.30 0.04 5.021-02-2020 from 09:00 to 14:00 25 10.40 13.20 2.80 0.27 2.0 482.00 485.00 3.00 0.01 6.0 88.10 92.00 3.90 0.04 7.024-02-2020 from 09:00 to 14:00 26 10.20 13.90 3.70 0.36 6.0 456.00 460.00 4.00 0.01 9.0 87.20 88.90 1.70 0.02 0.024-02-2020 from 15:30 to 19:00 27 15.20 20.50 5.30 0.35 6.0 470.00 474.00 4.00 0.01 9.0 64.30 66.20 1.90 0.03 3.025-02-2020 from 08:00 to 14:30 28 11.40 15.10 3.70 0.32 5.0 424.00 427.00 3.00 0.01 7.0 77.40 80.00 2.60 0.03 4.026-02-2020 from 08:00 to 14:00 29 10.40 14.20 3.80 0.37 6.0 492.00 494.00 2.00 0.00 3.0 84.20 86.00 1.80 0.02 1.026-02-2020 from 15:30 to 20:30 30 15.60 19.10 3.50 0.22 0.0 442.00 445.00 3.00 0.01 6.0 60.40 62.80 2.40 0.04 6.027-02-2020 from 08:00 to 14:00 31 11.30 14.60 3.30 0.29 3.0 460.00 461.00 1.00 0.00 0.0 85.30 88.10 2.80 0.03 4.028-02-2020 from 09:00 to 14:00 32 12.00 15.40 3.40 0.28 3.0 502.00 504.00 2.00 0.00 2.0 82.40 84.30 1.90 0.02 1.002-03-2020 from 09:00 to 14:00 33 11.80 14.70 2.90 0.25 1.0 501.00 503.00 2.00 0.00 2.0 83.50 86.80 3.30 0.04 6.002-03-2020 from 15:30 to 19:00 34 15.10 20.90 5.80 0.38 7.0 482.00 484.00 2.00 0.00 3.0 69.60 71.80 2.20 0.03 3.003-03-2020 from 08:00 to 14:30 35 10.60 13.70 3.10 0.29 3.0 455.00 458.00 3.00 0.01 6.0 59.80 62.40 2.60 0.04 7.004-03-2020 from 08:00 to 14:00 36 9.90 12.30 2.40 0.24 1.0 420.00 424.00 4.00 0.01 10.0 85.20 88.50 3.30 0.04 5.004-03-2020 from 15:30 to 20:30 37 15.50 19.00 3.50 0.23 0.0 439.00 442.00 3.00 0.01 6.0 62.90 65.10 2.20 0.03 4.005-03-2020 from 08:00 to 14:00 38 11.40 14.40 3.00 0.26 2.0 438.00 440.00 2.00 0.00 3.0 70.40 74.00 3.60 0.05 9.006-03-2020 from 09:00 to 14:00 39 11.60 14.40 2.80 0.24 1.0 448.00 451.00 3.00 0.01 6.0 68.30 70.20 1.90 0.03 2.009-03-2020 from 09:00 to 14:00 40 11.20 13.90 2.70 0.24 1.0 435.00 439.00 4.00 0.01 10.0 68.10 70.30 2.20 0.03 4.009-03-2020 from 15:30 to 19:00 41 15.60 21.00 5.40 0.35 6.0 486.00 490.00 4.00 0.01 8.0 57.30 59.10 1.80 0.03 3.010-03-2020 from 08:00 to 14:30 42 10.20 13.30 3.10 0.30 4.0 498.00 501.00 3.00 0.01 5.0 88.40 91.70 3.30 0.04 5.011-03-2020 from 08:00 to 14:00 43 10.00 12.20 2.20 0.22 0.0 444.00 447.00 3.00 0.01 6.0 92.00 94.20 2.20 0.02 1.011-03-2020 from 15:30 to 20:30 44 14.20 17.50 3.30 0.23 1.0 451.00 453.00 2.00 0.00 3.0 85.30 88.90 3.60 0.04 6.012-03-2020 from 08:00 to 14:00 45 8.80 12.30 3.50 0.40 8.0 502.00 506.00 4.00 0.01 8.0 91.40 94.00 2.60 0.03 2.013-03-2020 from 09:00 to 14:00 46 9.40 12.00 2.60 0.28 2.0 467.00 470.00 3.00 0.01 6.0 90.80 93.70 2.90 0.03 3.0

max. 0.45 max. 0.01 max. 0.06min. 0.22 min. 0.00 min. 0.02

Page 110: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

110

Matrix PMF Predicted matrix with PMF Prediction errors by PMF

TVP CVP HVPSessions TV CV HV min max mean median desv. min max mean median desv. min max mean median desv. TVPe TVPep CVPe CVPep HVPe HVep

1 2.0 3.0 3.6 2.49 4.24 3.01 2.97 0.35 2.92 3.02 2.98 2.98 0.02 3.50 3.55 3.54 3.55 0.01 1.01 33% 0.02 1% 0.06 2%2 4.1 2.0 1.9 4.06 4.09 4.08 4.08 0.01 2.40 3.58 2.98 2.96 0.31 1.93 1.94 1.94 1.94 0.00 0.02 1% 0.98 33% 0.04 2%3 3.2 2.0 2.2 3.22 3.22 3.22 3.22 0.00 2.05 2.06 2.06 2.06 0.00 2.20 3.32 2.73 2.72 0.29 0.02 1% 0.06 3% 0.53 19%4 3.1 2.0 1.8 2.52 4.58 3.84 3.85 0.38 2.05 2.14 2.07 2.07 0.02 1.84 1.93 1.86 1.85 0.01 0.74 19% 0.07 4% 0.06 3%5 2.9 4.0 3.3 2.92 2.94 2.93 2.93 0.01 2.44 3.29 2.81 2.84 0.20 3.27 3.27 3.27 3.27 0.00 0.03 1% 1.19 42% 0.03 1%6 5.8 3.0 2.2 5.61 5.62 5.62 5.62 0.00 3.00 3.01 3.00 3.00 0.00 1.56 2.75 1.98 1.97 0.23 0.18 3% 0.00 0% 0.22 11%7 3.1 3.0 3.6 2.42 4.05 3.03 3.07 0.35 2.93 3.01 2.98 2.98 0.01 3.51 3.55 3.54 3.55 0.01 0.07 2% 0.02 1% 0.06 2%8 2.4 3.0 2.6 2.49 2.51 2.50 2.50 0.00 2.36 3.35 2.80 2.78 0.24 2.62 2.63 2.62 2.62 0.00 0.10 4% 0.20 7% 0.02 1%9 3.5 2.0 2.9 3.49 3.50 3.50 3.50 0.00 2.05 2.06 2.06 2.06 0.00 2.09 3.10 2.65 2.67 0.29 0.00 0% 0.06 3% 0.25 9%

10 3.0 2.0 3.3 2.16 3.67 3.07 3.07 0.32 2.03 2.10 2.06 2.06 0.01 3.24 3.28 3.27 3.27 0.01 0.07 2% 0.06 3% 0.03 1%11 2.8 3.0 3.9 2.79 2.85 2.81 2.81 0.01 1.93 3.36 2.74 2.79 0.40 3.83 3.84 3.83 3.83 0.00 0.01 0% 0.26 10% 0.07 2%12 3.7 4.0 1.7 3.69 3.69 3.69 3.69 0.00 3.92 3.93 3.93 3.93 0.00 1.75 3.10 2.54 2.55 0.31 0.01 0% 0.07 2% 0.84 33%13 5.3 4.0 2.0 3.28 4.80 3.88 3.88 0.30 3.89 3.93 3.92 3.92 0.01 2.01 2.06 2.03 2.03 0.01 1.42 37% 0.08 2% 0.03 2%14 3.7 3.0 2.6 3.67 3.69 3.68 3.68 0.00 2.49 3.24 2.86 2.88 0.18 2.60 2.60 2.60 2.60 0.00 0.02 0% 0.14 5% 0.00 0%15 2.9 3.0 3.0 2.95 2.95 2.95 2.95 0.00 2.99 2.99 2.99 2.99 0.00 2.51 3.15 2.77 2.77 0.15 0.05 2% 0.01 0% 0.23 8%16 5.0 2.0 2.7 2.79 3.89 3.35 3.38 0.26 2.06 2.09 2.07 2.07 0.00 2.68 2.74 2.70 2.70 0.01 1.65 49% 0.07 3% 0.00 0%17 3.1 4.0 2.2 3.14 3.17 3.16 3.16 0.01 2.33 3.32 2.89 2.92 0.27 2.23 2.24 2.24 2.24 0.00 0.06 2% 1.11 38% 0.04 2%18 2.9 3.0 2.9 2.95 2.95 2.95 2.95 0.00 2.98 2.99 2.99 2.99 0.00 2.42 3.21 2.78 2.75 0.20 0.05 2% 0.01 0% 0.12 4%19 4.7 3.0 1.9 2.69 4.48 3.90 3.89 0.34 2.97 3.06 3.00 3.00 0.01 1.94 1.99 1.94 1.94 0.01 0.80 21% 0.00 0% 0.04 2%20 5.1 4.0 2.0 4.97 4.99 4.98 4.98 0.00 2.68 3.56 3.14 3.15 0.23 2.00 2.02 2.02 2.02 0.00 0.12 2% 0.86 28% 0.02 1%21 3.0 3.0 3.6 3.04 3.04 3.04 3.04 0.00 2.99 3.00 2.99 2.99 0.00 2.54 3.06 2.78 2.77 0.14 0.04 1% 0.01 0% 0.82 29%22 2.4 3.0 2.6 3.10 3.92 3.51 3.53 0.21 2.99 3.00 2.99 2.99 0.00 2.60 2.61 2.60 2.60 0.00 1.11 32% 0.01 0% 0.00 0%23 3.5 2.0 2.9 3.47 3.50 3.49 3.49 0.00 2.50 3.38 2.93 2.94 0.22 2.88 2.89 2.88 2.88 0.00 0.01 0% 0.93 32% 0.02 1%24 3.0 2.0 3.3 3.03 3.04 3.04 3.04 0.00 2.05 2.06 2.05 2.05 0.00 2.36 3.52 2.80 2.78 0.24 0.04 1% 0.05 3% 0.50 18%25 2.8 3.0 3.9 2.11 4.58 2.86 2.78 0.45 2.89 3.03 2.98 2.98 0.02 3.76 3.83 3.83 3.83 0.01 0.06 2% 0.02 1% 0.07 2%26 3.7 4.0 1.7 3.69 3.75 3.72 3.72 0.01 2.13 3.76 2.95 2.92 0.34 1.75 1.76 1.76 1.76 0.00 0.02 1% 1.05 36% 0.06 3%27 5.3 4.0 1.9 5.16 5.16 5.16 5.16 0.00 3.93 3.94 3.94 3.94 0.00 1.42 2.71 2.06 2.12 0.30 0.14 3% 0.06 2% 0.16 8%28 3.7 3.0 2.6 3.05 3.89 3.47 3.43 0.22 2.98 2.99 2.99 2.99 0.00 2.59 2.61 2.60 2.60 0.00 0.23 7% 0.01 0% 0.00 0%29 3.8 2.0 1.8 3.78 3.83 3.81 3.81 0.01 2.28 3.68 2.97 2.92 0.32 1.85 1.85 1.85 1.85 0.00 0.01 0% 0.97 33% 0.05 3%30 3.5 3.0 2.4 3.50 3.50 3.50 3.50 0.00 2.99 3.00 2.99 2.99 0.00 2.30 2.97 2.62 2.65 0.16 0.00 0% 0.01 0% 0.22 9%31 3.3 1.0 2.8 2.21 4.24 3.29 3.31 0.43 1.14 1.21 1.14 1.14 0.01 2.76 2.90 2.80 2.80 0.02 0.01 0% 0.14 13% 0.00 0%32 3.4 2.0 1.9 3.41 3.46 3.44 3.44 0.01 2.37 3.50 2.91 2.89 0.25 1.95 1.95 1.95 1.95 0.00 0.04 1% 0.91 31% 0.05 3%33 2.9 2.0 3.3 2.94 2.95 2.94 2.94 0.00 2.05 2.06 2.05 2.05 0.00 2.46 3.27 2.86 2.84 0.21 0.04 2% 0.05 3% 0.44 15%34 5.8 2.0 2.2 2.83 4.44 3.62 3.56 0.31 2.06 2.11 2.07 2.07 0.01 2.21 2.28 2.23 2.23 0.01 2.18 60% 0.07 3% 0.03 1%35 3.1 3.0 2.6 3.13 3.15 3.14 3.14 0.00 2.42 3.22 2.86 2.84 0.20 2.61 2.61 2.61 2.61 0.00 0.04 1% 0.14 5% 0.01 0%36 2.4 4.0 3.3 2.49 2.50 2.49 2.49 0.00 3.92 3.93 3.92 3.92 0.00 1.91 3.49 2.88 2.93 0.34 0.09 4% 0.08 2% 0.42 15%37 3.5 3.0 2.2 3.38 4.10 3.71 3.68 0.19 2.98 3.01 2.99 2.99 0.01 2.22 2.23 2.23 2.23 0.00 0.21 6% 0.01 0% 0.03 1%38 3.0 2.0 3.6 2.98 3.03 3.00 3.00 0.01 2.17 3.45 2.85 2.87 0.30 3.54 3.55 3.55 3.55 0.00 0.00 0% 0.85 30% 0.05 2%39 2.8 3.0 1.9 2.85 2.86 2.86 2.86 0.00 2.99 3.00 2.99 2.99 0.00 2.54 3.15 2.86 2.83 0.16 0.06 2% 0.01 0% 0.96 33%40 2.7 4.0 2.2 3.07 4.36 3.80 3.80 0.26 3.90 3.92 3.92 3.92 0.00 2.20 2.25 2.22 2.22 0.01 1.10 29% 0.08 2% 0.02 1%41 5.4 4.0 1.8 5.25 5.27 5.26 5.26 0.00 2.64 3.79 3.09 3.05 0.27 1.81 1.83 1.82 1.82 0.00 0.14 3% 0.91 29% 0.02 1%42 3.1 3.0 3.3 3.13 3.14 3.13 3.13 0.00 2.99 3.00 2.99 2.99 0.00 2.39 3.11 2.75 2.76 0.19 0.03 1% 0.01 0% 0.55 20%43 2.2 3.0 2.2 2.93 4.10 3.69 3.70 0.23 2.97 3.04 2.99 2.99 0.01 2.22 2.26 2.23 2.23 0.00 1.49 40% 0.01 0% 0.03 1%44 3.3 2.0 3.6 3.26 3.31 3.27 3.27 0.01 1.99 3.49 2.87 2.91 0.36 3.54 3.54 3.54 3.54 0.00 0.03 1% 0.87 30% 0.06 2%45 3.5 4.0 2.6 3.50 3.51 3.50 3.50 0.00 3.92 3.93 3.93 3.93 0.00 1.79 3.37 2.58 2.56 0.37 0.00 0% 0.07 2% 0.02 1%46 2.6 3.0 2.9 2.90 4.06 3.36 3.34 0.25 2.95 3.00 2.99 2.99 0.01 2.85 2.89 2.88 2.89 0.01 0.76 23% 0.01 0% 0.02 1%

0.31 9% 0.27 10% 0.16 6%

Page 111: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

111

Matrix BNMF Predicted matrix with BNMF Prediction errors by BNMF

TDP CDP HDPSessions TD CD HD min max mean median desv. min max mean median desv. min max mean median desv. TDPe TDPep CDPe CDPep HDPe HDep

1 1.0 5.0 6.0 1.90 4.10 3.78 2.05 1.14 5.53 7.88 5.82 6.13 0.25 6.13 6.87 6.73 6.53 0.32 2.78 74% 0.82 14% 0.73 11%2 1.0 3.0 3.0 1.77 4.39 3.81 3.32 1.13 3.23 6.52 3.33 4.46 0.29 3.84 4.38 4.18 4.26 0.23 2.81 74% 0.33 10% 1.18 28%3 4.0 3.0 2.0 4.27 6.55 6.18 5.05 1.04 3.64 4.20 3.80 3.90 1.59 2.04 3.53 3.23 3.37 0.68 2.18 35% 0.80 21% 1.23 38%4 1.0 3.0 1.0 1.44 1.91 1.48 1.81 0.16 3.11 4.98 4.66 3.17 0.85 1.10 2.35 2.23 2.15 0.58 0.48 33% 1.66 36% 1.23 55%5 1.0 9.0 7.0 1.37 1.69 1.41 1.37 0.15 9.09 10.82 9.14 9.22 0.96 7.94 10.41 9.66 8.89 1.06 0.41 29% 0.14 2% 2.66 28%6 6.0 6.0 5.0 5.90 6.35 6.02 6.14 0.14 6.46 8.36 8.16 6.50 0.94 5.24 5.67 5.38 5.27 0.20 0.02 0% 2.16 26% 0.38 7%7 4.0 6.0 9.0 4.09 6.20 5.76 5.93 0.95 6.87 8.86 8.18 7.45 1.19 9.80 11.68 10.68 10.14 0.82 1.76 31% 2.18 27% 1.68 16%8 1.0 5.0 4.0 1.60 4.54 3.80 3.91 1.28 5.78 7.53 6.17 6.54 0.43 4.28 6.77 6.58 5.50 1.15 2.80 74% 1.17 19% 2.58 39%9 1.0 3.0 7.0 1.72 4.35 3.40 2.31 1.17 3.88 6.35 4.94 4.42 1.78 7.19 8.21 7.51 7.63 0.43 2.40 71% 1.94 39% 0.51 7%

10 3.0 3.0 7.0 3.46 4.87 4.31 4.78 0.65 3.99 6.63 4.32 3.75 2.09 7.68 8.15 7.72 7.94 0.19 1.31 30% 1.32 31% 0.72 9%11 1.0 5.0 10.0 1.10 3.49 3.40 1.27 1.31 5.88 6.09 5.94 5.86 2.45 10.17 11.36 11.04 10.48 0.54 2.40 71% 0.94 16% 1.04 9%12 4.0 9.0 1.0 4.66 6.82 6.75 5.73 1.02 9.68 11.90 11.42 10.24 4.71 1.75 2.66 2.61 2.33 0.42 2.75 41% 2.42 21% 1.61 62%13 4.0 9.0 4.0 4.37 6.59 6.48 4.70 1.16 9.88 12.28 11.36 10.37 3.03 4.96 5.65 4.04 4.88 0.42 2.48 38% 2.36 21% 0.04 1%14 4.0 5.0 4.0 4.47 5.71 5.55 4.83 0.59 5.24 5.67 5.40 5.66 0.18 4.46 6.31 6.02 5.84 0.82 1.55 28% 0.40 7% 2.02 34%15 1.0 6.0 5.0 1.10 3.10 2.83 2.20 0.89 6.52 7.90 7.70 6.45 1.38 5.56 7.97 7.25 6.57 1.03 1.83 65% 1.70 22% 2.25 31%16 4.0 3.0 5.0 4.23 5.58 4.73 4.91 0.56 3.27 5.21 3.38 4.09 1.07 5.31 6.84 6.63 6.70 0.71 0.73 15% 0.38 11% 1.63 25%17 2.0 8.0 2.0 2.18 4.43 3.65 3.28 0.94 8.29 9.79 9.39 8.44 3.19 2.54 3.78 3.27 2.89 0.53 1.65 45% 1.39 15% 1.27 39%18 2.0 5.0 4.0 2.52 4.94 4.55 3.23 1.13 5.28 7.18 7.15 6.06 1.36 4.56 5.56 5.56 4.88 0.50 2.55 56% 2.15 30% 1.56 28%19 10.0 6.0 1.0 10.08 11.67 10.87 11.56 0.73 6.03 9.16 7.97 6.40 2.81 1.59 1.89 1.48 1.49 0.05 0.87 8% 1.97 25% 0.48 32%20 4.0 9.0 4.0 4.04 7.42 6.73 4.15 1.74 9.12 10.69 10.30 9.59 2.01 4.14 6.85 5.99 5.19 1.16 2.73 41% 1.30 13% 1.99 33%21 3.0 6.0 7.0 3.52 4.24 3.85 3.53 0.34 6.39 9.20 8.09 7.39 0.85 7.92 9.65 8.84 9.21 0.74 0.85 22% 2.09 26% 1.84 21%22 1.0 6.0 3.0 1.45 1.95 1.50 1.77 0.15 6.70 7.43 6.80 7.28 1.29 3.60 4.93 4.16 4.52 0.56 0.50 33% 0.80 12% 1.16 28%23 1.0 3.0 7.0 1.66 3.17 2.64 2.76 0.64 3.34 5.28 4.95 3.94 2.04 7.73 9.06 8.50 8.45 0.55 1.64 62% 1.95 39% 1.50 18%24 4.0 3.0 5.0 4.27 6.14 6.03 5.12 0.88 3.43 5.72 3.49 4.05 1.16 5.05 6.16 5.59 5.32 0.47 2.03 34% 0.49 14% 0.59 11%25 2.0 6.0 7.0 2.09 4.74 4.49 2.92 1.27 6.81 8.90 7.89 7.46 0.58 7.28 10.32 9.54 7.86 1.42 2.49 55% 1.89 24% 2.54 27%26 6.0 9.0 0.0 6.91 8.27 7.79 8.22 0.63 9.48 11.83 11.74 9.99 4.99 0.60 3.18 2.89 0.67 1.39 1.79 23% 2.74 23% 2.89 100%27 6.0 9.0 3.0 6.33 9.22 8.55 6.40 1.48 9.87 11.48 11.22 10.27 2.65 3.12 6.23 5.37 4.73 1.31 2.55 30% 2.22 20% 2.37 44%28 5.0 7.0 4.0 5.56 7.73 7.58 6.97 0.96 7.32 8.91 8.81 8.29 1.95 4.57 6.55 5.83 6.12 0.85 2.58 34% 1.81 21% 1.83 31%29 6.0 3.0 1.0 6.33 7.59 6.71 7.00 0.53 3.54 5.76 4.21 3.65 1.45 1.11 2.08 1.62 1.28 0.43 0.71 11% 1.21 29% 0.62 38%30 0.0 6.0 6.0 0.45 1.29 0.46 1.13 0.37 6.38 7.71 6.56 6.47 0.23 6.30 9.68 8.87 9.00 1.48 0.46 100% 0.56 9% 2.87 32%31 3.0 0.0 4.0 3.74 5.47 5.18 5.42 0.82 0.55 1.83 1.48 1.47 2.81 4.04 4.85 4.11 4.60 0.36 2.18 42% 1.48 100% 0.11 3%32 3.0 2.0 1.0 3.69 5.57 5.02 3.87 0.90 2.97 3.49 3.32 3.25 1.04 1.72 2.56 2.21 2.20 0.35 2.02 40% 1.32 40% 1.21 55%33 1.0 2.0 6.0 1.55 3.74 3.56 2.66 0.97 2.20 2.96 2.33 2.62 2.21 6.29 6.52 6.34 6.45 0.10 2.56 72% 0.33 14% 0.34 5%34 7.0 3.0 3.0 7.43 8.49 7.86 7.60 0.47 3.38 6.55 5.13 3.61 0.97 3.23 4.30 3.82 4.14 0.47 0.86 11% 2.13 42% 0.82 21%35 3.0 6.0 7.0 3.24 4.99 4.59 3.54 0.83 6.01 7.96 6.08 7.31 0.81 7.65 8.50 8.40 8.17 0.38 1.59 35% 0.08 1% 1.40 17%36 1.0 10.0 5.0 1.62 3.30 2.88 3.13 0.76 10.81 13.05 12.69 11.91 2.76 5.22 6.92 6.34 5.41 0.80 1.88 65% 2.69 21% 1.34 21%37 0.0 6.0 4.0 0.30 0.88 0.44 0.54 0.07 6.54 7.46 7.27 7.41 1.14 4.07 5.71 5.23 4.29 0.78 0.44 100% 1.27 17% 1.23 23%38 2.0 3.0 9.0 2.16 4.82 3.91 2.88 1.17 3.43 5.76 3.11 5.39 3.48 9.26 10.68 9.71 9.31 0.66 1.91 49% 0.11 4% 0.71 7%39 1.0 6.0 2.0 1.98 3.68 3.28 2.47 0.77 6.09 7.09 6.13 7.05 1.92 2.89 4.69 4.40 3.77 0.80 2.28 70% 0.13 2% 2.40 55%40 1.0 10.0 4.0 1.31 2.25 1.36 1.94 0.37 10.08 12.00 11.11 11.85 2.95 4.61 5.70 5.23 4.73 0.50 0.36 26% 1.11 10% 1.23 24%41 6.0 8.0 3.0 6.43 9.21 8.58 9.06 1.28 8.01 9.43 9.11 9.33 3.02 3.36 6.20 5.40 5.59 1.23 2.58 30% 1.11 12% 2.40 44%42 4.0 5.0 5.0 4.69 6.17 6.01 5.02 0.73 5.48 7.08 5.55 6.90 0.33 5.98 6.80 6.67 6.74 0.38 2.01 33% 0.55 10% 1.67 25%43 0.0 6.0 1.0 0.18 0.71 0.34 0.31 0.16 6.45 7.92 7.84 7.29 2.93 1.33 3.54 2.68 3.36 1.00 0.34 100% 1.84 23% 1.68 63%44 1.0 3.0 6.0 1.06 2.97 2.72 1.68 0.90 3.14 6.06 5.36 4.63 1.57 6.95 7.78 7.23 6.96 0.39 1.72 63% 2.36 44% 1.23 17%45 8.0 8.0 2.0 8.06 10.62 9.81 9.79 1.08 8.90 10.27 9.30 9.15 2.11 2.70 3.75 3.41 3.09 0.45 1.81 18% 1.30 14% 1.41 41%46 2.0 6.0 3.0 2.05 2.96 2.91 2.48 0.43 6.35 9.14 6.46 7.51 0.83 3.68 4.59 3.85 4.01 0.34 0.91 31% 0.46 7% 0.85 22%

1.69 45% 1.34 21% 1.41 29%

Page 112: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

112

8.1.4 Aula C3.

C3 Collected datapmf bnmf pmf bnmf pmf bnmf

T C HSessions Sessions Tini Tend TV TP TD Cini Cend CV CP CD Hini Hend HV HP HD29-01-2020 from 16:00 to 19:30 1 17.10 21.50 4.40 0.26 3.0 492.00 495.00 3.00 0.01 6.0 62.30 65.40 3.10 0.05 6.030-01-2020 from 15:00 to 20:30 2 16.30 18.70 2.40 0.15 1.0 470.00 474.00 4.00 0.01 9.0 64.20 66.10 1.90 0.03 2.003-02-2020 from 10:00 to 13:30 3 10.40 13.90 3.50 0.34 5.0 498.00 502.00 4.00 0.01 8.0 70.40 73.60 3.20 0.05 5.003-02-2020 from 15:00 to 20:30 4 18.20 21.20 3.00 0.16 1.0 444.00 446.00 2.00 0.00 4.0 55.30 58.30 3.00 0.05 7.004-02-2020 from 08:00 to 13:30 5 10.50 13.30 2.80 0.27 4.0 451.00 454.00 3.00 0.01 7.0 82.40 86.50 4.10 0.05 6.004-02-2020 from 15:00 to 19:30 6 15.10 18.80 3.70 0.25 3.0 502.00 503.00 1.00 0.00 0.0 63.50 65.70 2.20 0.03 3.005-02-2020 from 08:00 to 13:30 7 11.90 17.20 5.30 0.45 8.0 445.00 447.00 2.00 0.00 4.0 79.60 81.40 1.80 0.02 1.005-02-2020 from 16:00 to 19:30 8 18.00 20.00 2.00 0.11 0.0 487.00 489.00 2.00 0.00 3.0 59.80 62.20 2.40 0.04 4.006-02-2020 from 08:00 to 13:30 9 10.80 14.90 4.10 0.38 6.0 473.00 475.00 2.00 0.00 3.0 75.20 78.00 2.80 0.04 3.006-02-2020 from 15:00 to 20:30 10 16.10 19.30 3.20 0.20 2.0 472.00 475.00 3.00 0.01 6.0 62.90 64.80 1.90 0.03 2.010-02-2020 from 10:00 to 13:30 11 12.60 15.70 3.10 0.25 3.0 444.00 448.00 4.00 0.01 10.0 70.40 72.40 2.00 0.03 2.010-02-2020 from 15:00 to 20:30 12 17.40 20.30 2.90 0.17 1.0 444.00 447.00 3.00 0.01 7.0 58.30 61.20 2.90 0.05 6.011-02-2020 from 08:00 to 13:30 13 9.30 14.40 5.10 0.55 10.0 465.00 467.00 2.00 0.00 3.0 90.40 92.20 1.80 0.02 0.011-02-2020 from 15:00 to 19:30 14 16.00 20.60 4.60 0.29 4.0 482.00 485.00 3.00 0.01 6.0 66.30 68.80 2.50 0.04 3.012-02-2020 from 08:00 to 13:30 15 10.90 16.20 5.30 0.49 9.0 456.00 460.00 4.00 0.01 9.0 87.40 89.60 2.20 0.03 1.012-02-2020 from 16:00 to 19:30 16 17.20 21.30 4.10 0.24 3.0 477.00 480.00 3.00 0.01 6.0 52.30 54.70 2.40 0.05 5.013-02-2020 from 08:00 to 13:30 17 11.00 14.70 3.70 0.34 5.0 492.00 494.00 2.00 0.00 3.0 72.40 76.00 3.60 0.05 6.013-02-2020 from 15:00 to 20:30 18 16.10 20.10 4.00 0.25 3.0 423.00 425.00 2.00 0.00 4.0 65.40 68.40 3.00 0.05 5.017-02-2020 from 10:00 to 13:30 19 11.80 17.10 5.30 0.45 8.0 456.00 460.00 4.00 0.01 9.0 82.10 83.90 1.80 0.02 0.017-02-2020 from 15:00 to 20:30 20 19.50 22.40 2.90 0.15 1.0 482.00 486.00 4.00 0.01 9.0 54.90 58.20 3.30 0.06 8.018-02-2020 from 08:00 to 13:30 21 11.30 17.10 5.80 0.51 9.0 511.00 514.00 3.00 0.01 5.0 78.90 81.10 2.20 0.03 2.018-02-2020 from 15:00 to 19:30 22 20.20 23.30 3.10 0.15 1.0 439.00 442.00 3.00 0.01 7.0 49.80 53.40 3.60 0.07 10.019-02-2020 from 08:00 to 13:30 23 10.40 12.80 2.40 0.23 3.0 448.00 450.00 2.00 0.00 3.0 87.40 90.00 2.60 0.03 2.019-02-2020 from 16:00 to 19:30 24 14.10 17.30 3.20 0.23 3.0 425.00 427.00 2.00 0.00 4.0 67.80 70.70 2.90 0.04 4.020-02-2020 from 08:00 to 13:30 25 10.30 13.30 3.00 0.29 4.0 472.00 474.00 2.00 0.00 3.0 72.30 75.60 3.30 0.05 5.020-02-2020 from 15:00 to 20:30 26 15.00 17.80 2.80 0.19 2.0 433.00 436.00 3.00 0.01 7.0 64.20 68.10 3.90 0.06 8.024-02-2020 from 10:00 to 13:30 27 12.40 16.10 3.70 0.30 4.0 442.00 446.00 4.00 0.01 10.0 78.40 80.10 1.70 0.02 0.024-02-2020 from 15:00 to 20:30 28 17.40 20.90 3.50 0.20 2.0 460.00 462.00 2.00 0.00 3.0 59.50 62.40 2.90 0.05 6.025-02-2020 from 08:00 to 13:30 29 10.80 13.80 3.00 0.28 4.0 502.00 504.00 2.00 0.00 3.0 86.80 90.10 3.30 0.04 3.025-02-2020 from 15:00 to 19:30 30 15.20 18.00 2.80 0.18 2.0 501.00 504.00 3.00 0.01 6.0 62.30 66.20 3.90 0.06 8.026-02-2020 from 08:00 to 13:30 31 10.40 13.40 3.00 0.29 4.0 420.00 422.00 2.00 0.00 4.0 90.10 92.50 2.40 0.03 1.026-02-2020 from 16:00 to 19:30 32 14.20 17.00 2.80 0.20 2.0 422.00 424.00 2.00 0.00 4.0 72.30 75.10 2.80 0.04 4.027-02-2020 from 08:00 to 13:30 33 10.30 14.00 3.70 0.36 6.0 487.00 491.00 4.00 0.01 9.0 90.90 92.80 1.90 0.02 0.027-02-2020 from 15:00 to 20:30 34 15.20 20.50 5.30 0.35 5.0 471.00 473.00 2.00 0.00 3.0 70.80 74.10 3.30 0.05 5.002-03-2020 from 10:00 to 13:30 35 9.80 13.30 3.50 0.36 6.0 450.00 452.00 2.00 0.00 3.0 92.10 94.30 2.20 0.02 1.002-03-2020 from 15:00 to 20:30 36 13.70 15.80 2.10 0.15 1.0 473.00 477.00 4.00 0.01 9.0 69.20 71.80 2.60 0.04 3.003-03-2020 from 08:00 to 13:30 37 10.20 13.60 3.40 0.33 5.0 501.00 504.00 3.00 0.01 6.0 82.30 85.60 3.30 0.04 4.003-03-2020 from 15:00 to 19:30 38 14.90 17.90 3.00 0.20 2.0 492.00 494.00 2.00 0.00 3.0 68.70 70.90 2.20 0.03 2.004-03-2020 from 08:00 to 13:30 39 11.40 15.70 4.30 0.38 6.0 423.00 425.00 2.00 0.00 4.0 77.60 81.20 3.60 0.05 5.004-03-2020 from 16:00 to 19:30 40 15.50 19.00 3.50 0.23 3.0 456.00 459.00 3.00 0.01 6.0 59.20 61.10 1.90 0.03 2.005-03-2020 from 08:00 to 13:30 41 11.20 14.20 3.00 0.27 4.0 482.00 486.00 4.00 0.01 9.0 79.60 81.80 2.20 0.03 1.005-03-2020 from 15:00 to 20:30 42 15.00 17.80 2.80 0.19 2.0 511.00 514.00 3.00 0.01 5.0 59.80 61.60 1.80 0.03 2.009-03-2020 from 10:00 to 13:30 43 10.80 14.50 3.70 0.34 5.0 439.00 441.00 2.00 0.00 4.0 85.20 87.00 1.80 0.02 0.009-03-2020 from 15:00 to 20:30 44 15.30 20.60 5.30 0.35 5.0 448.00 452.00 4.00 0.01 10.0 62.90 65.50 2.60 0.04 4.010-03-2020 from 08:00 to 13:30 45 10.20 12.90 2.70 0.26 4.0 438.00 442.00 4.00 0.01 10.0 90.40 92.20 1.80 0.02 0.010-03-2020 from 15:00 to 19:30 46 13.80 17.40 3.60 0.26 3.0 448.00 450.00 2.00 0.00 3.0 67.80 70.20 2.40 0.04 3.011-03-2020 from 08:00 to 13:30 47 10.20 15.50 5.30 0.52 9.0 435.00 438.00 3.00 0.01 7.0 85.50 88.30 2.80 0.03 2.011-03-2020 from 16:00 to 19:30 48 15.40 17.90 2.50 0.16 1.0 486.00 490.00 4.00 0.01 9.0 60.20 62.10 1.90 0.03 2.012-03-2020 from 08:00 to 13:30 49 10.40 13.40 3.00 0.29 4.0 477.00 479.00 2.00 0.00 3.0 84.30 87.60 3.30 0.04 4.012-03-2020 from 15:00 to 20:30 50 15.60 19.00 3.40 0.22 2.0 475.00 479.00 4.00 0.01 9.0 68.80 71.00 2.20 0.03 2.0

max. 0.55 max. 0.01 max. 0.07min. 0.11 min. 0.00 min. 0.02

Page 113: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

113

Matrix PMF Predicted matrix with PMF Prediction errors by PMF

TVP CVP HVPSessions TV CV HV min max mean median desv. min max mean median desv. min max mean median desv. TVPe TVPep CVPe CVPep HVPe HVep

1 4.4 3.0 3.1 2.70 4.00 3.55 3.56 0.29 2.96 3.02 2.99 2.99 0.01 3.05 3.07 3.06 3.07 0.00 0.85 24% 0.01 0% 0.04 1%2 2.4 4.0 1.9 2.46 2.49 2.48 2.48 0.01 2.39 4.03 3.15 3.15 0.34 1.96 1.97 1.96 1.96 0.00 0.08 3% 0.85 27% 0.06 3%3 3.5 4.0 3.2 3.48 3.48 3.48 3.48 0.00 3.92 3.93 3.93 3.93 0.00 2.06 3.26 2.61 2.57 0.30 0.02 1% 0.07 2% 0.59 22%4 3.0 2.0 3.0 3.33 4.52 3.78 3.78 0.28 2.04 2.09 2.06 2.06 0.01 2.95 2.99 2.98 2.98 0.01 0.78 21% 0.06 3% 0.02 1%5 2.8 3.0 4.1 2.82 2.90 2.85 2.85 0.02 1.34 4.69 3.04 3.00 0.85 3.98 3.99 3.98 3.98 0.00 0.05 2% 0.04 1% 0.12 3%6 3.7 1.0 2.2 3.72 3.73 3.73 3.73 0.00 1.11 1.11 1.11 1.11 0.00 1.78 3.40 2.63 2.59 0.42 0.03 1% 0.11 10% 0.43 16%7 5.3 2.0 1.8 2.83 4.97 3.72 3.70 0.44 2.02 2.11 2.06 2.06 0.02 1.86 1.92 1.88 1.88 0.01 1.58 42% 0.06 3% 0.08 4%8 2.0 2.0 2.4 2.10 2.11 2.10 2.10 0.00 2.53 3.78 3.22 3.18 0.27 2.42 2.43 2.42 2.42 0.00 0.10 5% 1.22 38% 0.02 1%9 4.1 2.0 2.8 4.07 4.08 4.08 4.08 0.00 2.04 2.05 2.04 2.04 0.00 2.33 3.31 2.65 2.64 0.19 0.02 1% 0.04 2% 0.15 6%

10 3.2 3.0 1.9 2.57 4.58 3.44 3.45 0.43 2.94 3.03 2.99 2.99 0.02 1.96 1.99 1.97 1.97 0.01 0.24 7% 0.01 0% 0.07 3%11 3.1 4.0 2.0 3.11 3.14 3.13 3.13 0.01 2.32 3.61 2.91 2.87 0.30 2.05 2.06 2.06 2.06 0.00 0.03 1% 1.09 38% 0.06 3%12 2.9 3.0 2.9 2.94 2.95 2.94 2.94 0.00 3.00 3.01 3.00 3.00 0.00 2.32 2.91 2.62 2.62 0.14 0.04 1% 0.00 0% 0.28 11%13 5.1 2.0 1.8 3.04 5.04 3.76 3.74 0.43 2.01 2.11 2.06 2.06 0.02 1.87 1.92 1.88 1.88 0.01 1.34 36% 0.06 3% 0.08 4%14 4.6 3.0 2.5 4.52 4.53 4.53 4.53 0.00 2.08 2.97 2.52 2.53 0.23 2.51 2.52 2.52 2.52 0.00 0.07 2% 0.48 19% 0.02 1%15 5.3 4.0 2.2 5.14 5.15 5.15 5.15 0.00 3.89 3.90 3.90 3.90 0.00 1.70 3.83 2.71 2.63 0.45 0.15 3% 0.10 3% 0.51 19%16 4.1 3.0 2.4 3.04 3.94 3.50 3.50 0.25 2.97 3.00 2.99 2.99 0.01 2.42 2.43 2.43 2.42 0.00 0.60 17% 0.01 0% 0.03 1%17 3.7 2.0 3.6 3.67 3.72 3.69 3.69 0.01 1.74 3.88 2.79 2.90 0.57 3.52 3.53 3.52 3.52 0.00 0.01 0% 0.79 28% 0.08 2%18 4.0 2.0 3.0 3.98 3.99 3.98 3.98 0.00 2.04 2.05 2.05 2.05 0.00 2.22 3.13 2.60 2.59 0.22 0.02 0% 0.05 2% 0.40 15%19 5.3 4.0 1.8 1.62 4.04 3.20 3.26 0.53 3.84 3.95 3.92 3.92 0.02 1.86 1.93 1.88 1.87 0.01 2.10 66% 0.08 2% 0.08 4%20 2.9 4.0 3.3 2.93 2.97 2.95 2.95 0.01 1.82 4.11 2.97 2.94 0.46 3.24 3.25 3.25 3.25 0.00 0.05 2% 1.03 35% 0.05 2%21 5.8 3.0 2.2 5.63 5.63 5.63 5.63 0.00 2.95 2.96 2.95 2.95 0.00 2.15 3.31 2.70 2.72 0.29 0.17 3% 0.05 2% 0.50 19%22 3.1 3.0 3.6 2.30 4.69 3.58 3.51 0.50 2.93 3.05 2.98 2.99 0.02 3.50 3.53 3.52 3.52 0.01 0.48 13% 0.02 1% 0.08 2%23 2.4 2.0 2.6 2.48 2.48 2.48 2.48 0.00 2.69 3.68 3.14 3.15 0.20 2.60 2.61 2.61 2.61 0.00 0.08 3% 1.14 36% 0.01 0%24 3.2 2.0 2.9 3.24 3.24 3.24 3.24 0.00 2.05 2.06 2.06 2.06 0.00 2.20 3.11 2.64 2.67 0.25 0.04 1% 0.06 3% 0.26 10%25 3.0 2.0 3.3 3.28 5.17 3.84 3.79 0.41 2.03 2.12 2.06 2.05 0.02 3.21 3.26 3.25 3.25 0.01 0.84 22% 0.06 3% 0.05 2%26 2.8 3.0 3.9 2.83 2.89 2.85 2.85 0.01 1.52 4.39 3.07 3.15 0.70 3.80 3.80 3.80 3.80 0.00 0.05 2% 0.07 2% 0.10 3%27 3.7 4.0 1.7 3.66 3.67 3.66 3.66 0.00 3.92 3.93 3.92 3.92 0.00 1.96 3.34 2.64 2.68 0.35 0.04 1% 0.08 2% 0.94 35%28 3.5 2.0 2.9 3.17 4.53 3.81 3.79 0.31 2.05 2.08 2.06 2.06 0.01 2.86 2.90 2.88 2.88 0.01 0.31 8% 0.06 3% 0.02 1%29 3.0 2.0 3.3 3.02 3.06 3.04 3.04 0.01 2.15 3.98 2.99 3.04 0.42 3.25 3.25 3.25 3.25 0.00 0.04 1% 0.99 33% 0.05 2%30 2.8 3.0 3.9 2.85 2.85 2.85 2.85 0.00 3.00 3.00 3.00 3.00 0.00 2.38 2.94 2.59 2.58 0.13 0.05 2% 0.00 0% 1.31 50%31 3.0 2.0 2.4 3.21 4.60 3.80 3.83 0.25 2.05 2.07 2.06 2.06 0.01 2.41 2.45 2.43 2.43 0.01 0.80 21% 0.06 3% 0.03 1%32 2.8 2.0 2.8 2.85 2.86 2.85 2.85 0.00 2.62 3.42 2.98 2.97 0.20 2.79 2.79 2.79 2.79 0.00 0.05 2% 0.98 33% 0.01 0%33 3.7 4.0 1.9 3.66 3.67 3.66 3.66 0.00 3.92 3.93 3.92 3.92 0.00 1.99 3.16 2.63 2.63 0.28 0.04 1% 0.08 2% 0.73 28%34 5.3 2.0 3.3 3.17 5.00 3.85 3.85 0.38 2.03 2.11 2.06 2.06 0.02 3.21 3.26 3.25 3.25 0.01 1.45 38% 0.06 3% 0.05 2%35 3.5 2.0 2.2 3.49 3.51 3.50 3.50 0.00 2.25 3.39 2.85 2.86 0.30 2.24 2.24 2.24 2.24 0.00 0.00 0% 0.85 30% 0.04 2%36 2.1 4.0 2.6 2.18 2.18 2.18 2.18 0.00 3.94 3.95 3.95 3.95 0.00 2.00 3.02 2.56 2.55 0.26 0.08 4% 0.05 1% 0.04 1%37 3.4 3.0 3.3 2.67 4.41 3.64 3.64 0.35 2.96 3.02 2.99 2.99 0.02 3.23 3.25 3.25 3.25 0.00 0.24 7% 0.01 0% 0.05 2%38 3.0 2.0 2.2 3.02 3.04 3.04 3.04 0.00 2.50 3.70 2.94 2.90 0.28 2.24 2.25 2.24 2.24 0.00 0.04 1% 0.94 32% 0.04 2%39 4.3 2.0 3.6 4.26 4.26 4.26 4.26 0.00 2.03 2.04 2.04 2.04 0.00 2.24 3.00 2.61 2.60 0.19 0.04 1% 0.04 2% 0.99 38%40 3.5 3.0 1.9 2.47 4.25 3.46 3.48 0.39 2.94 3.03 2.99 2.99 0.02 1.96 1.99 1.97 1.97 0.00 0.04 1% 0.01 0% 0.07 3%41 3.0 4.0 2.2 3.03 3.04 3.04 3.04 0.00 2.48 3.50 2.99 3.06 0.26 2.24 2.24 2.24 2.24 0.00 0.04 1% 1.01 34% 0.04 2%42 2.8 3.0 1.8 2.85 2.85 2.85 2.85 0.00 3.00 3.00 3.00 3.00 0.00 2.35 2.97 2.63 2.64 0.14 0.05 2% 0.00 0% 0.83 32%43 3.7 2.0 1.8 2.63 4.50 3.69 3.70 0.40 2.02 2.11 2.06 2.06 0.02 1.87 1.91 1.88 1.88 0.01 0.01 0% 0.06 3% 0.08 4%44 5.3 4.0 2.6 5.18 5.18 5.18 5.18 0.00 1.96 3.02 2.42 2.40 0.25 2.61 2.62 2.61 2.61 0.00 0.12 2% 1.58 65% 0.01 0%45 2.7 4.0 1.8 2.74 2.74 2.74 2.74 0.00 3.93 3.94 3.94 3.94 0.00 2.00 3.17 2.64 2.66 0.28 0.04 1% 0.06 2% 0.84 32%46 3.6 2.0 2.4 3.19 4.70 3.76 3.74 0.30 2.05 2.07 2.06 2.06 0.01 2.40 2.45 2.43 2.43 0.01 0.16 4% 0.06 3% 0.03 1%47 5.3 3.0 2.8 5.18 5.19 5.18 5.18 0.00 1.68 2.97 2.38 2.36 0.29 2.79 2.80 2.79 2.79 0.00 0.12 2% 0.62 26% 0.01 0%48 2.5 4.0 1.9 2.55 2.55 2.55 2.55 0.00 3.94 3.95 3.94 3.94 0.00 2.21 3.10 2.61 2.60 0.24 0.05 2% 0.06 1% 0.71 27%49 3.0 2.0 3.3 3.16 4.82 3.84 3.79 0.36 2.03 2.11 2.06 2.06 0.02 3.22 3.27 3.25 3.25 0.01 0.84 22% 0.06 3% 0.05 2%50 3.4 4.0 2.2 3.39 3.42 3.41 3.41 0.00 2.28 3.35 2.90 2.97 0.29 2.24 2.24 2.24 2.24 0.00 0.01 0% 1.10 38% 0.04 2%

0.29 8% 0.33 12% 0.22 9%

Page 114: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

114

Matrix BNMF Predicted matrix with BNMF Prediction errors by BNMF

TDP CDP HDPSessions TD CD HD min max mean median desv. min max mean median desv. min max mean median desv. TDPe TDPep CDPe CDPep HDPe HDep

1 3.0 6.0 6.0 3.30 4.97 4.73 3.42 0.87 6.88 9.36 8.60 8.93 1.09 6.61 7.41 6.73 7.03 0.31 1.73 37% 2.60 30% 0.73 11%2 1.0 9.0 2.0 1.61 1.53 1.36 1.71 0.20 9.46 12.35 11.71 12.27 1.36 2.95 3.96 3.71 3.16 0.47 0.36 26% 2.71 23% 1.71 46%3 5.0 8.0 5.0 5.38 5.90 5.41 5.49 0.04 8.69 9.30 8.82 8.77 0.28 5.68 7.72 7.10 6.21 0.91 0.41 8% 0.82 9% 2.10 30%4 1.0 4.0 7.0 1.23 4.27 3.68 2.50 1.34 4.61 6.94 6.81 6.44 1.08 7.10 7.60 7.16 7.44 0.19 2.68 73% 2.81 41% 0.16 2%5 4.0 7.0 6.0 4.91 7.11 6.14 6.21 0.90 7.28 10.10 9.85 9.52 1.29 6.30 7.08 6.62 6.49 0.33 2.14 35% 2.85 29% 0.62 9%6 3.0 0.0 3.0 3.65 4.36 3.77 3.84 0.31 0.90 2.52 1.76 1.22 0.71 3.21 6.01 5.88 4.88 1.29 0.77 20% 1.76 100% 2.88 49%7 8.0 4.0 1.0 8.51 11.41 10.68 9.14 1.34 4.16 7.04 6.08 6.17 1.21 1.37 4.41 3.73 1.44 1.57 2.68 25% 2.08 34% 2.73 73%8 0.0 3.0 4.0 0.15 2.24 1.26 1.71 0.89 3.01 5.63 5.25 5.30 1.21 4.00 4.64 4.21 4.61 0.29 1.26 100% 2.25 43% 0.21 5%9 6.0 3.0 3.0 6.24 8.84 8.59 6.45 1.38 3.59 3.99 3.73 3.88 0.09 3.87 4.46 4.28 4.39 0.27 2.59 30% 0.73 20% 1.28 30%

10 2.0 6.0 2.0 2.22 2.91 2.26 2.81 0.26 6.26 6.72 6.51 6.41 0.16 2.67 4.36 4.22 3.00 0.85 0.26 12% 0.51 8% 2.22 53%11 3.0 10.0 2.0 3.13 3.53 3.16 3.30 0.18 10.56 11.29 10.70 10.97 0.14 2.70 3.19 2.78 3.13 0.19 0.16 5% 0.70 7% 0.78 28%12 1.0 7.0 6.0 1.56 2.27 2.05 1.96 0.29 7.67 9.94 9.34 7.86 1.11 6.09 7.53 6.54 7.24 0.65 1.05 51% 2.34 25% 0.54 8%13 10.0 3.0 0.0 10.34 11.61 10.86 11.42 0.57 3.16 5.27 4.42 4.78 0.90 0.16 1.58 1.13 0.72 0.61 0.86 8% 1.42 32% 1.13 100%14 4.0 6.0 3.0 4.94 6.74 6.04 5.66 0.75 6.84 7.60 7.03 7.48 0.36 3.76 4.43 4.04 3.89 0.29 2.04 34% 1.03 15% 1.04 26%15 9.0 9.0 1.0 9.98 10.97 10.61 10.79 0.43 9.73 11.22 10.82 10.76 0.64 1.93 2.35 2.01 2.01 0.19 1.61 15% 1.82 17% 1.01 50%16 3.0 6.0 5.0 3.05 4.69 3.44 3.94 0.24 6.37 9.18 8.51 8.25 1.21 5.64 6.38 6.07 6.20 0.31 0.44 13% 2.51 30% 1.07 18%17 5.0 3.0 6.0 5.08 8.07 7.65 7.01 1.32 3.94 5.21 4.58 5.09 0.58 6.03 6.87 6.40 6.84 0.22 2.65 35% 1.58 35% 0.40 6%18 3.0 4.0 5.0 3.86 5.22 4.46 3.99 0.62 4.36 4.68 4.52 4.62 0.07 6.00 7.20 6.94 6.87 0.52 1.46 33% 0.52 12% 1.94 28%19 8.0 9.0 0.0 8.30 9.58 8.79 8.32 0.60 9.39 11.13 10.85 10.50 0.76 0.58 1.90 1.42 1.18 0.55 0.79 9% 1.85 17% 1.42 100%20 1.0 9.0 8.0 1.08 1.72 1.50 1.34 0.27 9.08 12.05 11.46 11.05 1.29 8.26 9.10 8.78 8.41 0.38 0.50 33% 2.46 21% 0.78 9%21 9.0 5.0 2.0 9.66 10.10 9.81 10.08 0.21 5.01 5.89 5.05 5.46 0.28 2.97 4.28 3.97 4.23 0.61 0.81 8% 0.05 1% 1.97 50%22 1.0 7.0 10.0 1.11 2.60 2.37 1.27 0.75 7.50 9.86 9.54 8.91 1.05 10.27 12.00 11.31 11.81 0.78 1.37 58% 2.54 27% 1.31 12%23 3.0 3.0 2.0 3.54 4.05 3.65 3.84 0.16 3.35 6.06 5.25 6.04 1.27 2.17 3.74 3.33 2.64 0.70 0.65 18% 2.25 43% 1.33 40%24 3.0 4.0 4.0 3.19 5.02 4.09 4.71 0.81 4.20 6.94 6.48 4.88 1.30 3.95 5.00 4.05 4.90 0.49 1.09 27% 2.48 38% 0.05 1%25 4.0 3.0 5.0 4.43 7.16 6.66 6.47 1.20 3.00 3.91 3.15 3.48 0.28 4.95 5.44 5.01 5.30 0.19 2.66 40% 0.15 5% 0.01 0%26 2.0 7.0 8.0 2.06 2.83 2.55 2.89 0.18 7.69 10.18 9.36 10.07 1.15 8.14 10.68 10.15 9.25 1.12 0.55 21% 2.36 25% 2.15 21%27 4.0 10.0 0.0 4.69 7.58 6.62 6.15 1.20 10.73 11.72 11.00 11.35 0.43 0.15 0.41 0.23 0.41 0.10 2.62 40% 1.00 9% 0.23 100%28 2.0 3.0 6.0 2.24 2.59 2.37 2.55 0.10 3.53 5.51 5.38 3.77 1.04 6.01 6.52 6.14 6.02 0.24 0.37 15% 2.38 44% 0.14 2%29 4.0 3.0 3.0 4.07 7.12 6.71 4.18 1.59 3.92 5.21 4.89 4.57 0.55 3.50 4.83 4.37 3.86 0.58 2.71 40% 1.89 39% 1.37 31%30 2.0 6.0 8.0 2.86 4.34 4.16 3.82 0.66 6.91 8.86 8.21 6.96 0.96 8.41 9.54 8.55 9.21 0.42 2.16 52% 2.21 27% 0.55 6%31 4.0 4.0 1.0 4.32 4.99 4.53 4.67 0.20 4.56 7.27 6.36 5.10 1.22 1.19 2.42 2.21 1.53 0.57 0.53 12% 2.36 37% 1.21 55%32 2.0 4.0 4.0 2.64 3.73 2.80 3.59 0.55 4.39 5.71 5.58 4.77 0.63 4.02 4.62 4.25 4.14 0.26 0.80 29% 1.58 28% 0.25 6%33 6.0 9.0 0.0 6.63 8.96 8.23 7.01 1.08 9.61 11.14 11.04 9.89 0.78 0.97 2.71 2.01 2.61 0.80 2.23 27% 2.04 19% 2.01 100%34 5.0 3.0 5.0 5.19 5.94 5.92 5.19 0.43 3.44 4.48 3.53 3.70 0.43 5.08 5.59 5.22 5.56 0.21 0.92 16% 0.53 15% 0.22 4%35 6.0 3.0 1.0 6.65 8.63 8.57 6.87 1.07 3.48 5.34 4.41 4.21 0.77 1.93 3.15 2.86 2.61 0.52 2.57 30% 1.41 32% 1.86 65%36 1.0 9.0 3.0 1.23 2.89 2.18 2.16 0.68 9.41 10.73 10.57 9.94 0.61 3.27 4.24 3.97 3.95 0.41 1.18 54% 1.57 15% 0.97 24%37 5.0 6.0 4.0 5.79 6.83 6.81 6.04 0.53 6.03 9.48 8.72 7.53 1.50 4.63 7.40 6.50 6.79 1.19 1.81 27% 2.72 31% 2.50 39%38 2.0 3.0 2.0 2.30 3.66 3.61 2.86 0.65 3.92 5.45 4.66 4.00 0.71 2.44 3.79 3.40 2.46 0.68 1.61 45% 1.66 36% 1.40 41%39 6.0 4.0 5.0 6.50 7.87 7.75 6.90 0.66 4.81 5.49 5.38 5.34 0.28 5.58 6.64 6.53 6.02 0.49 1.75 23% 1.38 26% 1.53 23%40 3.0 6.0 2.0 3.37 3.87 3.50 3.77 0.18 6.04 7.01 6.24 6.54 0.32 2.56 3.95 3.81 2.70 0.72 0.50 14% 0.24 4% 1.81 47%41 4.0 9.0 1.0 4.35 6.52 6.29 5.93 0.98 9.11 11.63 10.99 11.59 1.18 1.68 3.31 2.71 2.01 0.73 2.29 36% 1.99 18% 1.71 63%42 2.0 5.0 2.0 2.98 4.31 3.37 4.12 0.63 5.52 7.77 7.05 6.60 0.94 2.16 2.88 2.27 2.78 0.27 1.37 41% 2.05 29% 0.27 12%43 5.0 4.0 0.0 5.29 6.45 6.31 5.42 0.60 4.92 6.01 5.02 5.69 0.53 0.40 2.29 1.61 1.40 0.78 1.31 21% 1.02 20% 1.61 100%44 5.0 10.0 4.0 5.99 6.92 6.57 6.33 0.19 10.85 13.38 12.65 11.72 1.10 4.28 5.36 4.71 5.05 0.26 1.57 24% 2.65 21% 0.71 15%45 4.0 10.0 0.0 4.03 5.68 4.96 5.14 0.69 10.85 11.04 10.97 11.03 0.08 0.55 1.54 0.88 1.52 0.49 0.96 19% 0.97 9% 0.88 100%46 3.0 3.0 3.0 3.36 6.24 5.24 5.45 1.22 3.01 3.60 3.13 3.36 0.17 3.06 6.24 5.29 3.65 1.46 2.24 43% 0.13 4% 2.29 43%47 9.0 7.0 2.0 9.72 11.53 11.40 10.04 0.93 7.13 7.81 7.13 7.74 0.37 2.56 3.94 3.52 2.70 0.66 2.40 21% 0.13 2% 1.52 43%48 1.0 9.0 2.0 1.28 4.28 3.86 4.00 1.40 9.19 11.80 11.40 9.48 1.32 2.18 4.23 3.83 3.35 0.89 2.86 74% 2.40 21% 1.83 48%49 4.0 3.0 4.0 4.58 5.95 5.73 5.19 0.61 3.81 5.76 5.33 5.50 0.88 4.08 5.54 4.59 5.35 0.42 1.73 30% 2.33 44% 0.59 13%50 2.0 9.0 2.0 2.92 5.08 4.60 5.04 1.02 9.67 11.12 10.34 10.73 0.62 2.11 3.06 2.21 2.95 0.39 2.60 57% 1.34 13% 0.21 9%

1.49 31% 1.66 25% 1.18 36%

Page 115: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

115

8.1.5 Aula T3.

T3 Collected datapmf bnmf pmf bnmf pmf bnmf

T C HSessions Sessions Tini Tend TV TP TD Cini Cend CV CP CD Hini Hend HV HP HD29-01-2020 from 08:00 to 12:30 1 8.70 11.50 2.80 0.32 4.0 473.00 477.00 4.00 0.01 6.0 92.30 94.90 2.60 0.03 2.029-01-2020 from 15:00 to 19:30 2 13.40 17.10 3.70 0.28 2.0 501.00 504.00 3.00 0.01 3.0 73.40 76.30 2.90 0.04 5.030-01-2020 from 08:00 to 12:30 3 9.40 14.70 5.30 0.56 9.0 492.00 494.00 2.00 0.00 0.0 86.10 88.30 2.20 0.03 1.031-01-2020 from 09:00 to 12:30 4 9.80 11.80 2.00 0.20 1.0 423.00 426.00 3.00 0.01 4.0 88.60 91.00 2.40 0.03 2.003-02-2020 from 09:00 to 13:30 5 9.50 13.60 4.10 0.43 6.0 456.00 460.00 4.00 0.01 6.0 87.30 90.90 3.60 0.04 5.003-02-2020 from 16:00 to 19:30 6 15.30 18.50 3.20 0.21 1.0 482.00 485.00 3.00 0.01 3.0 68.40 70.30 1.90 0.03 2.004-02-2020 from 08:00 to 13:30 7 10.10 12.50 2.40 0.24 2.0 511.00 514.00 3.00 0.01 2.0 85.30 87.10 1.80 0.02 0.004-02-2020 from 15:00 to 19:30 8 14.90 18.40 3.50 0.23 2.0 439.00 441.00 2.00 0.00 1.0 69.90 72.30 2.40 0.03 3.005-02-2020 from 08:00 to 12:30 9 10.20 13.20 3.00 0.29 3.0 448.00 453.00 5.00 0.01 9.0 81.30 84.10 2.80 0.03 3.005-02-2020 from 15:00 to 19:30 10 14.60 17.40 2.80 0.19 1.0 425.00 429.00 4.00 0.01 7.0 67.40 69.30 1.90 0.03 2.006-02-2020 from 08:00 to 12:30 11 9.90 13.60 3.70 0.37 5.0 477.00 480.00 3.00 0.01 3.0 88.50 91.80 3.30 0.04 4.007-02-2020 from 09:00 to 12:30 12 10.30 15.60 5.30 0.51 8.0 433.00 435.00 2.00 0.00 1.0 82.40 84.60 2.20 0.03 2.010-02-2020 from 09:00 to 13:30 13 10.20 13.20 3.00 0.29 3.0 420.00 422.00 2.00 0.00 1.0 81.90 84.80 2.90 0.04 4.010-02-2020 from 16:00 to 19:30 14 15.20 19.50 4.30 0.28 3.0 481.00 485.00 4.00 0.01 6.0 74.30 76.40 2.10 0.03 2.011-02-2020 from 08:00 to 13:30 15 10.50 13.70 3.20 0.30 3.0 472.00 475.00 3.00 0.01 3.0 83.80 86.80 3.00 0.04 4.011-02-2020 from 15:00 to 19:30 16 14.40 18.60 4.20 0.29 3.0 433.00 438.00 5.00 0.01 10.0 66.20 69.40 3.20 0.05 7.012-02-2020 from 08:00 to 12:30 17 11.00 16.10 5.10 0.46 7.0 442.00 445.00 3.00 0.01 4.0 74.60 78.70 4.10 0.05 8.012-02-2020 from 15:00 to 19:30 18 16.30 20.90 4.60 0.28 3.0 460.00 465.00 5.00 0.01 9.0 63.50 65.70 2.20 0.03 4.013-02-2020 from 08:00 to 12:30 19 10.20 15.50 5.30 0.52 8.0 502.00 506.00 4.00 0.01 5.0 81.20 83.00 1.80 0.02 1.014-02-2020 from 09:00 to 12:30 20 9.80 12.70 2.90 0.30 3.0 501.00 505.00 4.00 0.01 5.0 89.90 93.20 3.30 0.04 4.017-02-2020 from 09:00 to 13:30 21 10.70 16.50 5.80 0.54 8.0 482.00 485.00 3.00 0.01 3.0 79.40 81.60 2.20 0.03 2.017-02-2020 from 16:00 to 19:30 22 18.20 21.20 3.00 0.16 0.0 455.00 458.00 3.00 0.01 3.0 59.30 62.90 3.60 0.06 10.018-02-2020 from 08:00 to 13:30 23 8.90 11.30 2.40 0.27 2.0 420.00 423.00 3.00 0.01 4.0 90.20 92.80 2.60 0.03 2.018-02-2020 from 15:00 to 19:30 24 13.40 16.90 3.50 0.26 2.0 439.00 441.00 2.00 0.00 1.0 77.10 80.00 2.90 0.04 4.019-02-2020 from 08:00 to 12:30 25 10.10 13.20 3.10 0.31 3.0 438.00 440.00 2.00 0.00 1.0 86.20 89.50 3.30 0.04 4.019-02-2020 from 15:00 to 19:30 26 14.10 16.90 2.80 0.20 1.0 448.00 451.00 3.00 0.01 4.0 70.60 74.50 3.90 0.06 8.020-02-2020 from 08:00 to 12:30 27 10.00 13.70 3.70 0.37 5.0 435.00 439.00 4.00 0.01 7.0 85.00 86.70 1.70 0.02 0.021-02-2020 from 09:00 to 12:30 28 11.20 16.50 5.30 0.47 7.0 486.00 490.00 4.00 0.01 6.0 75.30 77.30 2.00 0.03 2.024-02-2020 from 09:00 to 13:30 29 11.40 15.10 3.70 0.32 4.0 477.00 480.00 3.00 0.01 3.0 76.80 79.40 2.60 0.03 3.024-02-2020 from 16:00 to 19:30 30 15.90 19.50 3.60 0.23 1.0 469.00 471.00 2.00 0.00 0.0 64.90 67.50 2.60 0.04 5.025-02-2020 from 08:00 to 13:30 31 10.20 15.30 5.10 0.50 8.0 456.00 459.00 3.00 0.01 3.0 84.10 86.60 2.50 0.03 2.025-02-2020 from 15:00 to 19:30 32 16.40 21.50 5.10 0.31 3.0 432.00 437.00 5.00 0.01 10.0 58.70 60.90 2.20 0.04 4.026-02-2020 from 08:00 to 12:30 33 10.20 13.10 2.90 0.28 3.0 460.00 462.00 2.00 0.00 0.0 92.30 95.60 3.30 0.04 4.026-02-2020 from 15:00 to 19:30 34 14.20 17.90 3.70 0.26 2.0 502.00 504.00 2.00 0.00 0.0 71.20 73.40 2.20 0.03 3.027-02-2020 from 08:00 to 12:30 35 10.00 15.40 5.40 0.54 8.0 501.00 505.00 4.00 0.01 5.0 88.40 92.00 3.60 0.04 5.028-02-2020 from 09:00 to 12:30 36 10.60 13.70 3.10 0.29 3.0 482.00 485.00 3.00 0.01 3.0 89.60 92.20 2.60 0.03 2.002-03-2020 from 09:00 to 13:30 37 10.40 13.60 3.20 0.31 3.0 455.00 458.00 3.00 0.01 3.0 90.20 93.10 2.90 0.03 3.002-03-2020 from 16:00 to 19:30 38 15.60 18.90 3.30 0.21 1.0 420.00 423.00 3.00 0.01 4.0 74.30 77.60 3.30 0.04 6.003-03-2020 from 08:00 to 13:30 39 9.80 14.10 4.30 0.44 6.0 439.00 441.00 2.00 0.00 1.0 85.20 89.10 3.90 0.05 6.003-03-2020 from 15:00 to 19:30 40 15.60 20.90 5.30 0.34 4.0 438.00 440.00 2.00 0.00 1.0 60.10 61.80 1.70 0.03 2.004-03-2020 from 08:00 to 12:30 41 9.50 15.30 5.80 0.61 10.0 448.00 451.00 3.00 0.01 4.0 92.30 94.30 2.00 0.02 0.004-03-2020 from 15:00 to 19:30 42 16.20 19.30 3.10 0.19 1.0 435.00 439.00 4.00 0.01 7.0 60.90 63.50 2.60 0.04 5.005-03-2020 from 08:00 to 12:30 43 10.10 12.50 2.40 0.24 2.0 486.00 490.00 4.00 0.01 6.0 80.80 83.80 3.00 0.04 4.006-03-2020 from 09:00 to 12:30 44 10.20 13.70 3.50 0.34 4.0 498.00 501.00 3.00 0.01 3.0 82.10 84.80 2.70 0.03 3.009-03-2020 from 09:00 to 13:30 45 11.20 14.20 3.00 0.27 2.0 444.00 447.00 3.00 0.01 4.0 91.30 93.50 2.20 0.02 1.009-03-2020 from 16:00 to 19:30 46 14.50 17.30 2.80 0.19 1.0 459.00 463.00 4.00 0.01 6.0 72.30 74.40 2.10 0.03 2.010-03-2020 from 08:00 to 13:30 47 10.30 14.00 3.70 0.36 4.0 472.00 475.00 3.00 0.01 3.0 81.20 85.00 3.80 0.05 6.010-03-2020 from 15:00 to 19:30 48 15.40 20.70 5.30 0.34 4.0 444.00 446.00 2.00 0.00 1.0 58.40 62.00 3.60 0.06 10.011-03-2020 from 08:00 to 12:30 49 10.60 14.30 3.70 0.35 4.0 444.00 449.00 5.00 0.01 10.0 89.60 92.80 3.20 0.04 4.011-03-2020 from 15:00 to 19:30 50 14.80 18.70 3.90 0.26 2.0 465.00 467.00 2.00 0.00 0.0 60.20 63.10 2.90 0.05 7.012-03-2020 from 08:00 to 12:30 51 9.60 14.30 4.70 0.49 7.0 482.00 484.00 2.00 0.00 0.0 84.30 87.10 2.80 0.03 3.013-03-2020 from 09:00 to 12:30 52 10.40 14.80 4.40 0.42 6.0 456.00 459.00 3.00 0.01 3.0 85.20 87.90 2.70 0.03 3.0

max. 0.61 max. 0.01 max. 0.06min. 0.16 min. 0.00 min. 0.02

Page 116: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

116

Matrix PMF Predicted matrix with PMF Prediction errors by PMF

TVP CVP HVPSessions TV CV HV min max mean median desv. min max mean median desv. min max mean median desv. TVPe TVPep CVPe CVPep HVPe HVep

1 2.8 4.0 2.6 2.71 4.32 3.36 3.32 0.29 3.53 3.61 3.60 3.60 0.02 2.45 2.55 2.51 2.51 0.01 0.56 17% 0.40 11% 0.09 4%2 3.7 3.0 2.9 3.44 3.45 3.45 3.45 0.00 2.39 3.33 2.87 2.89 0.19 2.78 2.78 2.78 2.78 0.00 0.25 7% 0.13 4% 0.12 4%3 5.3 2.0 2.2 4.94 4.95 4.95 4.95 0.00 1.71 1.73 1.72 1.72 0.00 1.76 2.90 2.44 2.46 0.24 0.35 7% 0.28 16% 0.24 10%4 2.0 3.0 2.4 3.10 4.40 3.63 3.65 0.28 2.66 2.76 2.67 2.67 0.01 2.31 2.35 2.31 2.31 0.01 1.63 45% 0.33 12% 0.09 4%5 4.1 4.0 3.6 3.79 3.83 3.81 3.81 0.01 1.63 3.60 2.89 2.93 0.38 3.44 3.44 3.44 3.44 0.00 0.29 8% 1.11 38% 0.16 5%6 3.2 3.0 1.9 2.99 3.00 2.99 2.99 0.00 2.67 2.69 2.68 2.68 0.00 2.20 2.99 2.66 2.65 0.19 0.21 7% 0.32 12% 0.76 29%7 2.4 3.0 1.8 2.95 5.47 3.86 3.83 0.44 2.60 2.87 2.67 2.66 0.03 1.74 1.83 1.75 1.75 0.01 1.46 38% 0.33 12% 0.05 3%8 3.5 2.0 2.4 3.26 3.28 3.27 3.27 0.00 2.38 3.35 2.88 2.86 0.21 2.31 2.32 2.31 2.31 0.00 0.23 7% 0.88 31% 0.09 4%9 3.0 5.0 2.8 2.77 2.78 2.77 2.77 0.00 4.55 4.57 4.56 4.56 0.00 1.68 3.76 2.83 2.82 0.39 0.23 8% 0.44 10% 0.03 1%

10 2.8 4.0 1.9 2.62 4.74 3.48 3.52 0.48 3.50 3.66 3.59 3.59 0.02 1.84 1.90 1.85 1.85 0.01 0.68 19% 0.41 11% 0.05 3%11 3.7 3.0 3.3 3.43 3.46 3.45 3.45 0.01 2.08 3.60 2.91 2.93 0.31 3.16 3.16 3.16 3.16 0.00 0.25 7% 0.09 3% 0.14 4%12 5.3 2.0 2.2 4.94 4.95 4.95 4.95 0.00 1.71 1.72 1.72 1.72 0.00 1.87 2.86 2.43 2.43 0.24 0.35 7% 0.28 16% 0.23 9%13 3.0 2.0 2.9 2.82 4.69 3.79 3.78 0.35 1.74 1.84 1.76 1.75 0.02 2.73 2.85 2.78 2.78 0.02 0.79 21% 0.24 14% 0.12 4%14 4.3 4.0 2.1 4.00 4.03 4.01 4.02 0.01 2.06 3.44 2.59 2.55 0.30 2.02 2.03 2.03 2.03 0.00 0.29 7% 1.41 54% 0.07 4%15 3.2 3.0 3.0 2.99 3.00 2.99 2.99 0.00 2.68 2.69 2.68 2.68 0.00 2.34 2.93 2.68 2.67 0.16 0.21 7% 0.32 12% 0.32 12%16 4.2 5.0 3.2 0.48 4.07 3.06 3.15 0.52 4.25 4.54 4.53 4.54 0.05 2.90 3.14 3.07 3.08 0.03 1.14 37% 0.47 10% 0.13 4%17 5.1 3.0 4.1 4.69 4.76 4.73 4.73 0.01 0.38 4.67 2.73 2.73 0.69 3.90 3.91 3.91 3.91 0.00 0.37 8% 0.27 10% 0.19 5%18 4.6 5.0 2.2 4.25 4.25 4.25 4.25 0.00 4.53 4.55 4.54 4.54 0.00 1.15 3.51 2.70 2.78 0.45 0.35 8% 0.46 10% 0.50 19%19 5.3 4.0 1.8 2.55 5.29 3.63 3.68 0.50 3.46 3.68 3.59 3.59 0.03 1.74 1.83 1.76 1.75 0.01 1.67 46% 0.41 11% 0.04 3%20 2.9 4.0 3.3 2.69 2.72 2.71 2.71 0.01 2.56 3.67 3.11 3.13 0.28 3.16 3.17 3.16 3.16 0.00 0.19 7% 0.89 29% 0.14 4%21 5.8 3.0 2.2 5.39 5.39 5.39 5.39 0.00 2.63 2.66 2.65 2.65 0.00 2.00 3.02 2.50 2.49 0.22 0.41 8% 0.35 13% 0.30 12%22 3.0 3.0 3.6 2.17 4.49 3.49 3.53 0.47 2.53 2.76 2.69 2.69 0.03 3.39 3.45 3.44 3.44 0.01 0.49 14% 0.31 12% 0.16 5%23 2.4 3.0 2.6 2.25 2.26 2.25 2.25 0.00 2.60 3.69 3.19 3.16 0.29 2.50 2.51 2.51 2.51 0.00 0.15 7% 0.19 6% 0.09 4%24 3.5 2.0 2.9 3.29 3.29 3.29 3.29 0.00 1.73 1.75 1.74 1.74 0.00 1.97 3.49 2.56 2.58 0.30 0.21 6% 0.26 15% 0.34 13%25 3.1 2.0 3.3 2.47 4.84 3.70 3.71 0.40 1.74 1.85 1.76 1.76 0.02 3.10 3.21 3.15 3.15 0.02 0.60 16% 0.24 14% 0.15 5%26 2.8 3.0 3.9 2.57 2.63 2.61 2.61 0.01 1.82 4.03 3.21 3.20 0.39 3.73 3.74 3.73 3.73 0.00 0.19 7% 0.21 7% 0.17 5%27 3.7 4.0 1.7 3.44 3.44 3.44 3.44 0.00 3.61 3.62 3.61 3.61 0.00 2.13 3.12 2.67 2.67 0.21 0.26 8% 0.39 11% 0.97 36%28 5.3 4.0 2.0 2.65 4.59 3.53 3.60 0.37 3.51 3.65 3.59 3.60 0.02 1.93 1.99 1.94 1.94 0.01 1.77 50% 0.41 11% 0.06 3%29 3.7 3.0 2.6 3.45 3.46 3.45 3.45 0.00 2.35 3.22 2.83 2.85 0.20 2.50 2.50 2.50 2.50 0.00 0.25 7% 0.17 6% 0.10 4%30 3.6 2.0 2.6 3.38 3.39 3.38 3.38 0.00 1.74 1.75 1.74 1.74 0.00 1.85 3.46 2.51 2.55 0.32 0.22 6% 0.26 15% 0.09 3%31 5.1 3.0 2.5 3.12 4.19 3.62 3.63 0.26 2.67 2.73 2.68 2.67 0.01 2.40 2.43 2.41 2.41 0.00 1.48 41% 0.32 12% 0.09 4%32 5.1 5.0 2.2 4.74 4.77 4.75 4.75 0.00 1.92 2.91 2.42 2.45 0.27 2.11 2.12 2.12 2.12 0.00 0.35 7% 2.58 107% 0.08 4%33 2.9 2.0 3.3 2.74 2.74 2.74 2.74 0.00 1.75 1.76 1.75 1.75 0.00 1.91 3.68 2.57 2.50 0.34 0.16 6% 0.25 14% 0.73 28%34 3.7 2.0 2.2 3.34 5.85 3.94 3.86 0.40 1.74 1.96 1.75 1.74 0.03 2.09 2.24 2.12 2.12 0.02 0.24 6% 0.25 14% 0.08 4%35 5.4 4.0 3.6 4.99 5.04 5.02 5.02 0.01 0.96 3.95 2.61 2.66 0.54 3.43 3.44 3.44 3.44 0.00 0.38 8% 1.39 53% 0.16 5%36 3.1 3.0 2.6 2.90 2.91 2.90 2.90 0.00 2.68 2.69 2.69 2.69 0.00 2.28 3.03 2.64 2.65 0.18 0.20 7% 0.31 12% 0.04 1%37 3.2 3.0 2.9 3.13 4.02 3.57 3.59 0.23 2.67 2.69 2.68 2.68 0.00 2.78 2.79 2.78 2.78 0.00 0.37 10% 0.32 12% 0.12 4%38 3.3 3.0 3.3 3.06 3.09 3.08 3.08 0.01 2.34 3.50 2.97 2.99 0.30 3.16 3.16 3.16 3.16 0.00 0.22 7% 0.03 1% 0.14 4%39 4.3 2.0 3.9 4.02 4.03 4.03 4.03 0.00 1.73 1.74 1.73 1.73 0.00 1.96 3.22 2.51 2.51 0.27 0.27 7% 0.27 15% 1.39 55%40 5.3 2.0 1.7 3.14 6.83 3.96 3.87 0.59 1.70 2.06 1.74 1.73 0.05 1.64 1.81 1.65 1.65 0.03 1.34 34% 0.26 15% 0.05 3%41 5.8 3.0 2.0 5.39 5.42 5.40 5.40 0.01 1.48 2.84 2.26 2.29 0.33 1.92 1.94 1.93 1.93 0.00 0.40 7% 0.74 33% 0.07 4%42 3.1 4.0 2.6 2.88 2.89 2.88 2.88 0.00 3.62 3.63 3.62 3.62 0.00 2.30 3.09 2.71 2.70 0.21 0.22 7% 0.38 10% 0.11 4%43 2.4 4.0 3.0 2.03 4.02 3.35 3.35 0.35 3.46 3.61 3.61 3.61 0.02 2.80 2.90 2.88 2.88 0.01 0.95 28% 0.39 11% 0.12 4%44 3.5 3.0 2.7 3.27 3.27 3.27 3.27 0.00 2.43 3.43 2.92 2.93 0.22 2.59 2.60 2.60 2.60 0.00 0.23 7% 0.08 3% 0.10 4%45 3.0 3.0 2.2 2.81 2.81 2.81 2.81 0.00 2.68 2.69 2.69 2.69 0.00 2.22 3.04 2.65 2.66 0.20 0.19 7% 0.31 12% 0.45 17%46 2.8 4.0 2.1 2.70 4.64 3.42 3.44 0.38 3.51 3.63 3.60 3.60 0.02 2.01 2.09 2.04 2.03 0.01 0.62 18% 0.40 11% 0.06 3%47 3.7 3.0 3.8 3.41 3.46 3.44 3.44 0.01 1.46 3.91 2.94 2.94 0.47 3.63 3.63 3.63 3.63 0.00 0.26 8% 0.06 2% 0.17 5%48 5.3 2.0 3.6 4.95 4.95 4.95 4.95 0.00 1.71 1.73 1.72 1.72 0.00 1.86 3.02 2.40 2.41 0.25 0.35 7% 0.28 16% 1.20 50%49 3.7 5.0 3.2 0.55 4.11 3.17 3.20 0.55 4.26 4.54 4.53 4.54 0.04 2.90 3.14 3.07 3.08 0.03 0.53 17% 0.47 10% 0.13 4%50 3.9 2.0 2.9 3.63 3.64 3.64 3.64 0.00 2.39 3.26 2.81 2.84 0.22 2.78 2.78 2.78 2.78 0.00 0.26 7% 0.81 29% 0.12 4%51 4.7 2.0 2.8 4.39 4.40 4.40 4.40 0.00 1.72 1.73 1.73 1.73 0.00 1.96 3.07 2.48 2.44 0.28 0.30 7% 0.27 16% 0.32 13%52 4.4 3.0 2.7 3.12 4.03 3.64 3.66 0.21 2.67 2.69 2.68 2.68 0.00 2.59 2.60 2.59 2.59 0.00 0.76 21% 0.32 12% 0.11 4%

0.50 14% 0.44 16% 0.23 9%

Page 117: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

117

Matrix BNMF Predicted matrix with BNMF Prediction errors by BNMF

TDP CDP HDPSessions TD CD HD min max mean median desv. min max mean median desv. min max mean median desv. TDPe TDPep CDPe CDPep HDPe HDep

1 4.0 6.0 2.0 4.67 7.48 6.65 7.22 1.27 6.15 7.56 7.34 6.99 0.62 2.32 2.38 2.36 2.36 0.03 2.65 40% 1.34 18% 0.36 15%2 2.0 3.0 5.0 2.96 3.94 3.20 3.09 0.44 3.09 5.34 4.63 3.70 1.00 5.31 6.96 6.19 5.99 0.68 1.20 37% 1.63 35% 1.19 19%3 9.0 0.0 1.0 9.40 11.60 10.80 10.66 0.91 0.43 1.24 0.75 0.88 0.34 1.84 3.07 2.47 2.42 0.50 1.80 17% 0.75 100% 1.47 60%4 1.0 4.0 2.0 1.29 1.84 1.42 1.69 0.25 4.13 7.05 6.82 5.27 1.38 2.68 4.17 3.87 4.13 0.70 0.42 30% 2.82 41% 1.87 48%5 6.0 6.0 5.0 6.16 7.39 7.22 6.27 0.64 6.55 7.39 6.60 6.59 0.41 5.26 7.46 6.54 5.51 1.01 1.22 17% 0.60 9% 1.54 24%6 1.0 3.0 2.0 1.58 2.86 2.76 1.60 0.71 3.51 4.62 4.58 4.09 0.52 2.26 4.18 3.90 3.16 0.86 1.76 64% 1.58 34% 1.90 49%7 2.0 2.0 0.0 2.90 5.59 4.79 3.67 1.19 2.06 4.74 4.55 4.61 1.29 0.18 2.48 2.21 2.01 1.04 2.79 58% 2.55 56% 2.21 100%8 2.0 1.0 3.0 2.87 4.95 4.35 2.93 1.04 1.19 1.93 1.64 1.86 0.33 3.46 4.52 3.84 3.89 0.44 2.35 54% 0.64 39% 0.84 22%9 3.0 9.0 3.0 3.06 6.06 5.18 5.74 1.35 9.02 9.43 9.19 9.32 0.06 3.27 5.30 4.85 4.32 0.88 2.18 42% 0.19 2% 1.85 38%

10 1.0 7.0 2.0 1.13 1.59 1.33 1.48 0.20 7.37 7.99 7.76 7.44 0.29 2.48 4.70 4.11 3.22 0.98 0.33 25% 0.76 10% 2.11 51%11 5.0 3.0 4.0 5.13 7.96 7.54 5.81 1.35 3.35 4.86 4.61 4.83 0.72 4.92 5.79 5.25 5.23 0.36 2.54 34% 1.61 35% 1.25 24%12 8.0 1.0 2.0 8.96 11.44 10.73 9.05 1.24 1.98 3.96 3.85 2.01 1.10 2.65 3.27 2.79 3.18 0.24 2.73 25% 2.85 74% 0.79 28%13 3.0 1.0 4.0 3.60 4.66 4.12 4.09 0.43 2.00 4.23 3.59 3.65 0.96 4.10 5.47 4.88 4.75 0.56 1.12 27% 2.59 72% 0.88 18%14 3.0 6.0 2.0 2.95 3.97 3.08 3.33 0.40 6.20 7.12 6.21 6.93 0.39 2.22 4.32 3.71 2.52 0.99 0.08 3% 0.21 3% 1.71 46%15 3.0 3.0 4.0 3.50 4.48 4.29 3.68 0.47 3.82 4.88 4.24 4.68 0.48 4.24 5.29 4.51 4.85 0.45 1.29 30% 1.24 29% 0.51 11%16 3.0 10.0 7.0 3.24 4.55 4.10 3.74 0.55 10.93 11.71 11.09 11.51 0.36 7.44 8.20 7.59 7.67 0.29 1.10 27% 1.09 10% 0.59 8%17 7.0 4.0 8.0 7.06 8.56 8.20 7.47 0.68 4.99 5.57 5.38 5.16 0.25 8.23 10.17 9.98 8.60 0.97 1.20 15% 1.38 26% 1.98 20%18 3.0 9.0 4.0 3.12 5.96 5.16 4.34 1.21 9.86 11.56 10.61 10.46 0.71 4.24 7.35 6.57 6.81 1.38 2.16 42% 1.61 15% 2.57 39%19 8.0 5.0 1.0 8.74 10.39 10.16 9.97 0.74 5.84 7.81 7.67 6.37 0.97 1.36 3.86 3.16 3.42 1.10 2.16 21% 2.67 35% 2.16 68%20 3.0 5.0 4.0 3.30 4.39 4.15 4.12 0.48 5.92 6.95 6.41 6.23 0.43 4.50 7.32 6.39 5.97 1.18 1.15 28% 1.41 22% 2.39 37%21 8.0 3.0 2.0 8.31 8.94 8.36 8.70 0.25 3.84 5.37 4.69 5.23 0.70 2.44 3.73 2.84 2.88 0.54 0.36 4% 1.69 36% 0.84 30%22 0.0 3.0 10.0 0.20 1.44 0.99 1.19 0.54 3.71 5.60 4.92 3.77 0.92 10.01 12.81 12.78 12.63 1.37 0.99 100% 1.92 39% 2.78 22%23 2.0 4.0 2.0 2.97 4.71 4.22 3.72 0.74 4.01 4.43 4.12 4.23 0.13 2.41 3.14 2.80 2.73 0.30 2.22 53% 0.12 3% 0.80 29%24 2.0 1.0 4.0 2.75 4.45 4.30 3.48 0.79 1.23 2.95 2.50 1.91 0.75 4.38 6.65 6.55 5.93 1.05 2.30 54% 1.50 60% 2.55 39%25 3.0 1.0 4.0 3.99 5.92 5.27 4.57 0.84 1.75 2.98 2.93 2.93 0.60 4.12 5.93 5.71 4.28 0.94 2.27 43% 1.93 66% 1.71 30%26 1.0 4.0 8.0 1.31 3.85 2.94 1.84 1.13 4.81 6.34 5.78 5.17 0.68 8.01 8.64 8.15 8.47 0.17 1.94 66% 1.78 31% 0.15 2%27 5.0 7.0 0.0 5.32 6.32 6.28 5.42 0.54 7.81 9.26 8.36 9.18 0.69 0.82 2.52 2.26 0.88 0.89 1.28 20% 1.36 16% 2.26 100%28 7.0 6.0 2.0 7.75 9.02 8.09 8.15 0.54 6.19 7.13 6.49 6.62 0.28 2.07 2.87 2.22 2.42 0.14 1.09 14% 0.49 8% 0.22 10%29 4.0 3.0 3.0 4.36 6.01 5.33 5.86 0.75 3.39 3.97 3.54 3.94 0.20 3.13 5.02 4.55 3.35 0.92 1.33 25% 0.54 15% 1.55 34%30 1.0 0.0 5.0 1.34 1.97 1.37 1.66 0.16 0.85 3.34 2.64 1.15 1.19 5.71 7.36 6.76 5.75 0.81 0.37 27% 2.64 100% 1.76 26%31 8.0 3.0 2.0 8.70 11.18 10.42 11.15 1.16 3.97 4.76 4.76 4.01 0.45 2.13 3.42 3.03 3.27 0.58 2.42 23% 1.76 37% 1.03 34%32 3.0 10.0 4.0 3.20 4.75 4.26 3.72 0.67 10.69 12.85 12.15 12.46 0.94 4.35 6.26 5.88 6.20 0.89 1.26 30% 2.15 18% 1.88 32%33 3.0 0.0 4.0 3.03 3.87 3.39 3.40 0.35 0.67 2.26 1.68 1.23 0.67 4.28 7.02 6.57 5.74 1.20 0.39 11% 1.68 100% 2.57 39%34 2.0 0.0 3.0 2.67 2.98 2.79 2.95 0.14 0.98 3.28 2.37 1.23 1.07 3.02 5.84 5.37 5.71 1.33 0.79 28% 2.37 100% 2.37 44%35 8.0 5.0 5.0 8.22 9.02 8.98 8.43 0.04 5.45 5.71 5.64 5.66 0.12 5.18 6.00 5.39 5.91 0.27 0.98 11% 0.64 11% 0.39 7%36 3.0 3.0 2.0 3.21 5.41 5.02 3.58 1.07 3.64 5.78 5.31 5.14 0.92 2.86 3.32 3.26 3.21 0.21 2.02 40% 2.31 43% 1.26 39%37 3.0 3.0 3.0 3.10 3.83 3.59 3.69 0.32 3.84 5.40 5.01 5.29 0.72 3.07 5.12 4.79 4.87 0.94 0.59 16% 2.01 40% 1.79 37%38 1.0 4.0 6.0 1.83 3.89 3.19 2.66 0.87 4.06 4.49 4.29 4.31 0.28 6.05 6.74 6.39 6.67 0.31 2.19 69% 0.29 7% 0.39 6%39 6.0 1.0 6.0 6.41 9.29 8.48 7.55 1.24 1.27 3.30 2.97 2.04 0.92 6.08 7.39 6.44 6.18 0.60 2.48 29% 1.97 66% 0.44 7%40 4.0 1.0 2.0 4.71 7.18 6.36 4.75 1.23 1.41 3.05 2.10 2.52 0.69 2.61 3.24 2.66 3.04 0.26 2.36 37% 1.10 52% 0.66 25%41 10.0 4.0 0.0 10.19 13.12 12.57 11.49 1.29 4.33 5.14 4.84 5.11 0.37 0.88 2.84 2.24 1.94 0.82 2.57 20% 0.84 17% 2.24 100%42 1.0 7.0 5.0 1.13 1.95 1.17 1.39 0.34 7.02 8.25 7.70 8.12 0.55 5.29 8.30 7.38 6.36 1.30 0.17 15% 0.70 9% 2.38 32%43 2.0 6.0 4.0 2.49 4.66 4.36 3.73 0.96 6.32 8.21 7.79 6.33 0.98 4.78 7.11 6.63 6.89 1.07 2.36 54% 1.79 23% 2.63 40%44 4.0 3.0 3.0 4.06 4.72 4.30 4.35 0.03 3.99 4.55 4.48 4.21 0.26 3.15 5.53 5.22 5.46 1.13 0.30 7% 1.48 33% 2.22 43%45 2.0 4.0 1.0 2.41 3.09 2.41 2.87 0.33 4.24 6.64 5.83 5.78 1.00 1.99 3.06 2.08 2.39 0.49 0.41 17% 1.83 31% 1.08 52%46 1.0 6.0 2.0 1.96 3.76 3.12 2.84 0.75 6.85 7.49 6.85 7.10 0.30 2.80 3.99 3.33 3.21 0.49 2.12 68% 0.85 12% 1.33 40%47 4.0 3.0 6.0 4.08 5.90 4.96 4.20 0.84 3.41 5.25 4.71 4.29 0.78 6.09 8.90 8.24 8.53 1.26 0.96 19% 1.71 36% 2.24 27%48 4.0 1.0 10.0 4.03 5.58 5.16 5.49 0.71 1.11 3.91 3.46 1.16 1.48 10.42 12.44 11.48 10.60 0.92 1.16 22% 2.46 71% 1.48 13%49 4.0 10.0 4.0 4.56 5.93 5.06 5.66 0.62 10.06 10.58 10.46 10.51 0.23 4.24 5.85 5.23 5.52 0.69 1.06 21% 0.46 4% 1.23 24%50 2.0 0.0 7.0 2.14 2.83 2.21 2.81 0.29 0.14 0.56 0.24 0.37 0.18 7.62 9.78 9.73 9.32 1.01 0.21 10% 0.24 100% 2.73 28%51 7.0 0.0 3.0 7.56 9.22 8.30 8.16 0.69 0.56 0.91 0.69 0.56 0.10 3.78 5.50 4.93 3.90 0.83 1.30 16% 0.69 100% 1.93 39%52 6.0 3.0 3.0 6.85 7.91 7.46 6.97 0.48 3.35 6.29 5.58 4.46 1.29 3.55 5.58 5.11 5.33 0.92 1.46 20% 2.58 46% 2.11 41%

1.46 31% 1.45 38% 1.56 35%

Page 118: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

118

8.1.6 Aula C2A.

C2A Collected datapmf bnmf pmf bnmf pmf bnmf

T C HSessions Sessions Tini Tend TV TP TD Cini Cend CV CP CD Hini Hend HV HP HD29-01-2020 from 09:00 to 10:00 1 11.90 15.40 3.50 0.29 8.0 502.00 505.00 3.00 0.01 4.0 78.40 81.20 2.80 0.04 3.029-01-2020 from 11:30 to 13:30 2 16.00 16.60 0.60 0.04 1.0 445.00 448.00 3.00 0.01 5.0 65.30 68.20 2.90 0.04 5.029-01-2020 from 17:00 to 19:00 3 17.20 21.50 4.30 0.25 7.0 487.00 491.00 4.00 0.01 7.0 59.90 63.10 3.20 0.05 6.030-01-2020 from 09:00 to 10:00 4 10.10 13.40 3.30 0.33 9.0 473.00 475.00 2.00 0.00 2.0 91.30 94.40 3.10 0.03 3.030-01-2020 from 11:30 to 13:30 5 14.40 15.20 0.80 0.06 1.0 472.00 475.00 3.00 0.01 5.0 67.40 70.10 2.70 0.04 4.030-01-2020 from 17:00 to 21:30 6 15.50 20.10 4.60 0.30 8.0 444.00 446.00 2.00 0.00 3.0 58.50 61.10 2.60 0.04 5.031-01-2020 from 16:00 to 20:30 7 16.20 21.30 5.10 0.31 9.0 444.00 447.00 3.00 0.01 5.0 52.40 54.90 2.50 0.05 5.003-02-2020 from 17:00 to 19:30 8 15.50 19.40 3.90 0.25 7.0 465.00 470.00 5.00 0.01 10.0 51.90 54.10 2.20 0.04 4.004-02-2020 from 09:00 to 10:00 9 11.20 14.70 3.50 0.31 9.0 482.00 484.00 2.00 0.00 2.0 84.30 88.10 3.80 0.05 5.004-02-2020 from 11:30 to 13:30 10 15.00 15.30 0.30 0.02 0.0 456.00 459.00 3.00 0.01 5.0 62.30 65.90 3.60 0.06 7.004-02-2020 from 17:00 to 21:30 11 15.80 19.80 4.00 0.25 7.0 477.00 481.00 4.00 0.01 7.0 64.60 67.80 3.20 0.05 5.005-02-2020 from 09:00 to 10:00 12 11.30 15.20 3.90 0.35 10.0 492.00 495.00 3.00 0.01 5.0 82.30 85.10 2.80 0.03 3.005-02-2020 from 11:30 to 13:30 13 15.20 15.80 0.60 0.04 1.0 442.00 445.00 3.00 0.01 5.0 64.20 67.10 2.90 0.05 5.005-02-2020 from 17:00 to 19:00 14 16.80 19.70 2.90 0.17 5.0 460.00 462.00 2.00 0.00 3.0 60.40 62.60 2.20 0.04 3.006-02-2020 from 09:00 to 10:00 15 10.20 12.70 2.50 0.25 7.0 502.00 506.00 4.00 0.01 7.0 85.30 88.10 2.80 0.03 3.006-02-2020 from 11:30 to 13:30 16 13.40 13.60 0.20 0.01 0.0 501.00 504.00 3.00 0.01 4.0 72.40 75.10 2.70 0.04 4.006-02-2020 from 17:00 to 21:30 17 16.30 19.10 2.80 0.17 5.0 482.00 484.00 2.00 0.00 2.0 63.50 65.70 2.20 0.03 3.007-02-2020 from 16:00 to 20:30 18 13.40 16.40 3.00 0.22 6.0 455.00 459.00 4.00 0.01 8.0 69.60 72.00 2.40 0.03 3.010-02-2020 from 17:00 to 19:30 19 18.10 21.00 2.90 0.16 4.0 420.00 424.00 4.00 0.01 9.0 59.80 61.90 2.10 0.04 3.011-02-2020 from 09:00 to 10:00 20 12.90 16.70 3.80 0.29 8.0 439.00 441.00 2.00 0.00 3.0 75.20 79.00 3.80 0.05 6.011-02-2020 from 11:30 to 13:30 21 17.10 17.50 0.40 0.02 0.0 438.00 441.00 3.00 0.01 5.0 62.90 66.50 3.60 0.06 7.011-02-2020 from 17:00 to 21:30 22 18.20 21.70 3.50 0.19 5.0 448.00 452.00 4.00 0.01 8.0 60.40 63.60 3.20 0.05 6.012-02-2020 from 09:00 to 10:00 23 10.30 13.20 2.90 0.28 8.0 435.00 438.00 3.00 0.01 6.0 87.80 90.60 2.80 0.03 3.012-02-2020 from 11:30 to 13:30 24 13.90 15.50 1.60 0.12 3.0 486.00 489.00 3.00 0.01 5.0 75.50 78.40 2.90 0.04 4.012-02-2020 from 17:00 to 19:00 25 16.50 19.40 2.90 0.18 5.0 498.00 500.00 2.00 0.00 2.0 63.10 65.30 2.20 0.03 3.013-02-2020 from 09:00 to 10:00 26 12.80 15.30 2.50 0.20 5.0 444.00 447.00 3.00 0.01 5.0 80.20 83.00 2.80 0.03 3.013-02-2020 from 11:30 to 13:30 27 15.60 16.20 0.60 0.04 1.0 451.00 454.00 3.00 0.01 5.0 64.30 67.00 2.70 0.04 4.013-02-2020 from 17:00 to 21:30 28 16.80 19.60 2.80 0.17 4.0 502.00 504.00 2.00 0.00 2.0 58.80 61.00 2.20 0.04 4.014-02-2020 from 16:00 to 20:30 29 15.90 18.90 3.00 0.19 5.0 467.00 471.00 4.00 0.01 7.0 72.70 75.10 2.40 0.03 3.017-02-2020 from 17:00 to 19:30 30 17.20 20.10 2.90 0.17 4.0 481.00 485.00 4.00 0.01 7.0 65.40 67.50 2.10 0.03 3.018-02-2020 from 09:00 to 10:00 31 11.00 14.80 3.80 0.35 10.0 503.00 505.00 2.00 0.00 2.0 78.30 82.10 3.80 0.05 5.018-02-2020 from 11:30 to 13:30 32 16.10 16.50 0.40 0.02 0.0 499.00 502.00 3.00 0.01 4.0 70.70 74.30 3.60 0.05 6.018-02-2020 from 17:00 to 21:30 33 17.80 21.30 3.50 0.20 5.0 452.00 456.00 4.00 0.01 8.0 69.50 72.70 3.20 0.05 5.019-02-2020 from 09:00 to 10:00 34 10.50 13.40 2.90 0.28 8.0 459.00 462.00 3.00 0.01 5.0 89.60 92.40 2.80 0.03 3.019-02-2020 from 11:30 to 13:30 35 14.30 15.90 1.60 0.11 3.0 472.00 475.00 3.00 0.01 5.0 64.30 67.20 2.90 0.05 5.019-02-2020 from 17:00 to 19:00 36 16.20 19.00 2.80 0.17 5.0 472.00 474.00 2.00 0.00 2.0 72.40 74.60 2.20 0.03 2.020-02-2020 from 09:00 to 10:00 37 10.40 12.90 2.50 0.24 7.0 433.00 435.00 2.00 0.00 3.0 90.20 93.00 2.80 0.03 3.020-02-2020 from 11:30 to 13:30 38 14.10 14.70 0.60 0.04 1.0 442.00 445.00 3.00 0.01 5.0 80.10 82.80 2.70 0.03 3.020-02-2020 from 17:00 to 21:30 39 15.00 17.80 2.80 0.19 5.0 460.00 462.00 2.00 0.00 3.0 72.00 74.20 2.20 0.03 2.021-02-2020 from 16:00 to 20:30 40 16.30 19.30 3.00 0.18 5.0 502.00 506.00 4.00 0.01 7.0 69.50 71.90 2.40 0.03 3.024-02-2020 from 17:00 to 19:30 41 15.20 18.10 2.90 0.19 5.0 478.00 481.00 3.00 0.01 5.0 71.20 72.30 1.10 0.02 0.025-02-2020 from 09:00 to 10:00 42 9.80 12.50 2.70 0.28 8.0 482.00 485.00 3.00 0.01 5.0 88.30 91.10 2.80 0.03 3.025-02-2020 from 11:30 to 13:30 43 12.70 13.20 0.50 0.04 1.0 476.00 479.00 3.00 0.01 5.0 76.50 79.10 2.60 0.03 3.025-02-2020 from 17:00 to 21:30 44 15.20 17.70 2.50 0.16 4.0 476.00 480.00 4.00 0.01 7.0 70.00 72.40 2.40 0.03 3.026-02-2020 from 09:00 to 10:00 45 10.50 14.30 3.80 0.36 10.0 433.00 436.00 3.00 0.01 6.0 84.50 87.00 2.50 0.03 2.026-02-2020 from 11:30 to 13:30 46 15.10 15.50 0.40 0.03 0.0 468.00 469.00 1.00 0.00 0.0 65.20 67.40 2.20 0.03 3.026-02-2020 from 17:00 to 19:00 47 15.90 19.40 3.50 0.22 6.0 469.00 471.00 2.00 0.00 2.0 66.40 69.70 3.30 0.05 5.027-02-2020 from 09:00 to 10:00 48 10.00 12.90 2.90 0.29 8.0 472.00 474.00 2.00 0.00 2.0 80.30 82.50 2.20 0.03 2.027-02-2020 from 11:30 to 13:30 49 10.80 12.40 1.60 0.15 4.0 451.00 453.00 2.00 0.00 3.0 82.50 86.10 3.60 0.04 5.027-02-2020 from 17:00 to 21:30 50 14.10 17.00 2.90 0.21 6.0 489.00 492.00 3.00 0.01 5.0 67.80 70.40 2.60 0.04 4.028-02-2020 from 16:00 to 20:30 51 12.60 15.10 2.50 0.20 5.0 492.00 496.00 4.00 0.01 7.0 63.20 66.10 2.90 0.05 5.002-03-2020 from 17:00 to 19:30 52 17.40 18.00 0.60 0.03 1.0 470.00 473.00 3.00 0.01 5.0 54.60 57.90 3.30 0.06 7.003-03-2020 from 09:00 to 10:00 53 9.30 12.10 2.80 0.30 8.0 498.00 500.00 2.00 0.00 2.0 89.90 93.80 3.90 0.04 4.003-03-2020 from 11:30 to 13:30 54 12.40 12.80 0.40 0.03 1.0 444.00 447.00 3.00 0.01 5.0 69.90 71.60 1.70 0.02 1.003-03-2020 from 17:00 to 21:30 55 13.90 17.90 4.00 0.29 8.0 451.00 455.00 4.00 0.01 8.0 64.10 66.10 2.00 0.03 3.004-03-2020 from 09:00 to 10:00 56 10.20 13.10 2.90 0.28 8.0 502.00 505.00 3.00 0.01 4.0 82.30 84.90 2.60 0.03 3.004-03-2020 from 11:30 to 13:30 57 13.00 13.60 0.60 0.05 1.0 467.00 469.00 2.00 0.00 2.0 67.40 70.40 3.00 0.04 5.004-03-2020 from 17:00 to 19:00 58 16.10 19.00 2.90 0.18 5.0 481.00 483.00 2.00 0.00 2.0 63.20 65.90 2.70 0.04 4.005-03-2020 from 09:00 to 10:00 59 11.80 14.30 2.50 0.21 6.0 503.00 507.00 4.00 0.01 7.0 82.30 84.50 2.20 0.03 2.005-03-2020 from 11:30 to 13:30 60 14.50 14.70 0.20 0.01 0.0 499.00 503.00 4.00 0.01 7.0 70.70 72.80 2.10 0.03 2.005-03-2020 from 17:00 to 21:30 61 15.30 18.10 2.80 0.18 5.0 452.00 455.00 3.00 0.01 5.0 64.30 68.10 3.80 0.06 7.006-03-2020 from 16:00 to 20:30 62 20.20 23.20 3.00 0.15 4.0 459.00 462.00 3.00 0.01 5.0 46.30 49.90 3.60 0.08 10.009-03-2020 from 17:00 to 19:30 63 17.40 21.30 3.90 0.22 6.0 472.00 474.00 2.00 0.00 2.0 52.30 54.10 1.80 0.03 3.010-03-2020 from 09:00 to 10:00 64 11.10 14.60 3.50 0.32 9.0 444.00 446.00 2.00 0.00 3.0 88.50 90.70 2.20 0.02 2.010-03-2020 from 11:30 to 13:30 65 14.30 14.60 0.30 0.02 0.0 444.00 446.00 2.00 0.00 3.0 72.30 76.10 3.80 0.05 6.010-03-2020 from 17:00 to 21:30 66 15.00 19.00 4.00 0.27 7.0 465.00 468.00 3.00 0.01 5.0 64.30 67.90 3.60 0.06 7.011-03-2020 from 09:00 to 10:00 67 11.40 15.30 3.90 0.34 9.0 482.00 486.00 4.00 0.01 7.0 88.40 91.60 3.20 0.04 3.011-03-2020 from 11:30 to 13:30 68 17.40 18.00 0.60 0.03 1.0 456.00 458.00 2.00 0.00 3.0 60.00 62.80 2.80 0.05 5.011-03-2020 from 17:00 to 19:00 69 17.80 20.70 2.90 0.16 4.0 467.00 469.00 2.00 0.00 2.0 59.40 62.30 2.90 0.05 5.012-03-2020 from 09:00 to 10:00 70 10.20 12.70 2.50 0.25 7.0 458.00 461.00 3.00 0.01 5.0 87.20 89.40 2.20 0.03 2.012-03-2020 from 11:30 to 13:30 71 12.90 13.10 0.20 0.02 0.0 460.00 463.00 3.00 0.01 5.0 75.50 77.90 2.40 0.03 3.012-03-2020 from 17:00 to 21:30 72 14.20 17.00 2.80 0.20 5.0 458.00 462.00 4.00 0.01 8.0 70.30 73.90 3.60 0.05 6.013-03-2020 from 16:00 to 20:30 73 15.50 18.50 3.00 0.19 5.0 452.00 455.00 3.00 0.01 5.0 64.20 67.20 3.00 0.05 5.0

max. 0.36 max. 0.01 max. 0.08min. 0.01 min. 0.00 min. 0.02

Page 119: Sistemas de recomendación basados en filtrado colaborativo

Sistemas de recomendación basados en filtrado colaborativo: Aceleración mediante computación reconfigurable y aplicaciones predictivas sensoriales.

119

Matrix PMF Predicted matrix with PMF Prediction errors by PMF

TVP CVP HVPSessions TV CV HV min max mean median desv. min max mean median desv. min max mean median desv. TVPe TVPep CVPe CVPep HVPe HVep

1 3.5 3.0 2.8 3.25 4.46 3.83 3.87 0.26 3.21 3.24 3.23 3.23 0.00 2.75 2.76 2.75 2.75 0.00 0.33 9% 0.23 7% 0.05 2%2 0.6 3.0 2.9 2.09 2.09 2.09 2.09 0.00 2.88 3.67 3.28 3.30 0.21 2.84 2.85 2.85 2.85 0.00 1.49 71% 0.28 8% 0.05 2%3 4.3 4.0 3.2 5.53 5.54 5.53 5.53 0.00 4.15 4.16 4.16 4.16 0.00 1.72 3.20 2.62 2.64 0.37 1.23 22% 0.16 4% 0.58 22%4 3.3 2.0 3.1 2.58 4.80 3.84 3.83 0.47 2.29 2.38 2.30 2.30 0.02 2.99 3.07 3.04 3.04 0.01 0.54 14% 0.30 13% 0.06 2%5 0.8 3.0 2.7 2.28 2.28 2.28 2.28 0.00 2.84 3.78 3.28 3.25 0.23 2.65 2.66 2.66 2.66 0.00 1.48 65% 0.28 8% 0.04 2%6 4.6 2.0 2.6 5.82 5.83 5.82 5.82 0.00 2.27 2.28 2.28 2.28 0.00 2.26 3.25 2.72 2.76 0.23 1.22 21% 0.28 12% 0.12 4%7 5.1 3.0 2.5 2.98 4.52 3.79 3.76 0.35 3.20 3.24 3.23 3.23 0.01 2.47 2.48 2.47 2.47 0.00 1.31 35% 0.23 7% 0.03 1%8 3.9 5.0 2.2 5.16 5.19 5.18 5.18 0.01 2.45 3.54 3.05 3.02 0.32 2.18 2.19 2.19 2.19 0.00 1.28 25% 1.95 64% 0.01 1%9 3.5 2.0 3.8 4.79 4.80 4.80 4.80 0.00 2.28 2.29 2.28 2.28 0.00 2.08 3.31 2.73 2.76 0.28 1.30 27% 0.28 12% 1.07 39%

10 0.3 3.0 3.6 2.12 4.71 3.61 3.72 0.57 3.12 3.32 3.23 3.23 0.03 3.46 3.51 3.51 3.51 0.01 3.31 92% 0.23 7% 0.09 3%11 4.0 4.0 3.2 5.24 5.26 5.25 5.25 0.01 2.26 3.57 2.99 2.96 0.31 3.13 3.14 3.13 3.13 0.00 1.25 24% 1.01 34% 0.07 2%12 3.9 3.0 2.8 5.16 5.17 5.16 5.16 0.00 3.21 3.22 3.22 3.22 0.00 2.34 2.95 2.69 2.71 0.17 1.26 24% 0.22 7% 0.11 4%13 0.6 3.0 2.9 3.14 4.36 3.76 3.74 0.32 3.21 3.24 3.23 3.23 0.00 2.84 2.85 2.85 2.85 0.00 3.16 84% 0.23 7% 0.05 2%14 2.9 2.0 2.2 4.23 4.26 4.25 4.24 0.01 2.60 3.76 3.18 3.19 0.32 2.18 2.19 2.19 2.19 0.00 1.35 32% 1.18 37% 0.01 1%15 2.5 4.0 2.8 3.85 3.86 3.86 3.86 0.00 4.16 4.17 4.17 4.17 0.00 2.00 3.36 2.66 2.67 0.34 1.36 35% 0.17 4% 0.14 5%16 0.2 3.0 2.7 3.07 4.51 3.83 3.83 0.31 3.21 3.24 3.23 3.23 0.00 2.65 2.66 2.66 2.66 0.00 3.63 95% 0.23 7% 0.04 2%17 2.8 2.0 2.2 4.14 4.17 4.15 4.15 0.01 2.50 3.71 3.15 3.14 0.33 2.18 2.19 2.19 2.19 0.00 1.35 33% 1.15 36% 0.01 1%18 3.0 4.0 2.4 4.32 4.32 4.32 4.32 0.00 4.16 4.17 4.16 4.16 0.00 1.97 3.29 2.73 2.75 0.32 1.32 31% 0.16 4% 0.33 12%19 2.9 4.0 2.1 2.98 5.72 3.88 3.72 0.58 4.04 4.18 4.15 4.15 0.03 2.06 2.15 2.09 2.09 0.01 0.98 25% 0.15 4% 0.01 0%20 3.8 2.0 3.8 5.02 5.09 5.05 5.06 0.01 1.75 4.21 3.00 3.00 0.57 3.69 3.70 3.70 3.70 0.00 1.25 25% 1.00 33% 0.10 3%21 0.4 3.0 3.6 1.90 1.91 1.91 1.91 0.00 3.23 3.24 3.24 3.24 0.00 2.41 3.29 2.77 2.76 0.20 1.51 79% 0.24 7% 0.83 30%22 3.5 4.0 3.2 1.22 4.94 3.61 3.63 0.61 3.99 4.16 4.15 4.15 0.03 3.03 3.16 3.13 3.13 0.02 0.11 3% 0.15 4% 0.07 2%23 2.9 3.0 2.8 4.23 4.24 4.23 4.23 0.00 2.76 3.42 3.08 3.10 0.19 2.75 2.76 2.75 2.75 0.00 1.33 32% 0.08 3% 0.05 2%24 1.6 3.0 2.9 3.02 3.03 3.02 3.02 0.00 3.23 3.24 3.23 3.23 0.00 2.44 3.04 2.75 2.80 0.15 1.42 47% 0.23 7% 0.15 5%25 2.9 2.0 2.2 2.96 6.66 4.16 4.08 0.68 2.28 2.48 2.30 2.29 0.03 2.17 2.29 2.19 2.19 0.02 1.26 30% 0.30 13% 0.01 0%26 2.5 3.0 2.8 3.86 3.86 3.86 3.86 0.00 2.76 3.52 3.16 3.18 0.17 2.75 2.76 2.75 2.75 0.00 1.36 35% 0.16 5% 0.05 2%27 0.6 3.0 2.7 2.09 2.09 2.09 2.09 0.00 3.23 3.24 3.24 3.24 0.00 2.45 3.27 2.78 2.77 0.18 1.49 71% 0.24 7% 0.08 3%28 2.8 2.0 2.2 2.71 6.86 4.04 3.96 0.65 2.28 2.49 2.30 2.30 0.03 2.17 2.30 2.19 2.19 0.02 1.24 31% 0.30 13% 0.01 0%29 3.0 4.0 2.4 4.32 4.34 4.33 4.34 0.00 2.46 3.75 3.14 3.11 0.27 2.37 2.38 2.37 2.37 0.00 1.33 31% 0.86 27% 0.03 1%30 2.9 4.0 2.1 4.22 4.23 4.23 4.23 0.00 4.16 4.17 4.16 4.16 0.00 2.12 3.47 2.71 2.70 0.33 1.33 31% 0.16 4% 0.61 22%31 3.8 2.0 3.8 1.21 5.60 3.62 3.61 0.80 2.22 2.46 2.30 2.30 0.04 3.62 3.71 3.69 3.70 0.02 0.18 5% 0.30 13% 0.11 3%32 0.4 3.0 3.6 1.87 1.91 1.89 1.89 0.01 2.36 3.82 3.25 3.31 0.36 3.51 3.51 3.51 3.51 0.00 1.49 79% 0.25 8% 0.09 3%33 3.5 4.0 3.2 4.78 4.79 4.79 4.79 0.00 4.16 4.16 4.16 4.16 0.00 1.86 3.43 2.67 2.70 0.35 1.29 27% 0.16 4% 0.53 20%34 2.9 3.0 2.8 3.30 4.47 3.85 3.85 0.30 3.20 3.23 3.23 3.23 0.00 2.74 2.76 2.75 2.75 0.00 0.95 25% 0.23 7% 0.05 2%35 1.6 3.0 2.9 3.02 3.03 3.02 3.02 0.00 2.75 3.74 3.23 3.26 0.26 2.84 2.85 2.85 2.85 0.00 1.42 47% 0.23 7% 0.05 2%36 2.8 2.0 2.2 4.14 4.15 4.15 4.15 0.00 2.28 2.29 2.29 2.29 0.00 2.16 3.25 2.75 2.78 0.27 1.35 32% 0.29 13% 0.55 20%37 2.5 2.0 2.8 3.25 5.06 3.93 3.99 0.36 2.30 2.35 2.30 2.30 0.01 2.72 2.80 2.75 2.75 0.01 1.43 36% 0.30 13% 0.05 2%38 0.6 3.0 2.7 2.09 2.10 2.09 2.09 0.00 2.81 3.94 3.34 3.34 0.24 2.65 2.66 2.66 2.66 0.00 1.49 71% 0.34 10% 0.04 2%39 2.8 2.0 2.2 4.14 4.15 4.15 4.15 0.00 2.29 2.29 2.29 2.29 0.00 2.09 3.26 2.74 2.74 0.31 1.35 32% 0.29 13% 0.54 20%40 3.0 4.0 2.4 3.08 5.17 3.82 3.87 0.50 4.06 4.16 4.15 4.15 0.02 2.33 2.43 2.38 2.38 0.01 0.82 22% 0.15 4% 0.02 1%41 2.9 3.0 1.1 4.22 4.31 4.26 4.26 0.02 1.24 4.88 3.16 3.12 0.83 1.14 1.15 1.14 1.14 0.00 1.36 32% 0.16 5% 0.04 4%42 2.7 3.0 2.8 4.04 4.05 4.05 4.05 0.00 3.22 3.23 3.23 3.23 0.00 2.41 3.07 2.69 2.66 0.15 1.35 33% 0.23 7% 0.11 4%43 0.5 3.0 2.6 3.42 4.43 3.91 3.89 0.25 3.21 3.23 3.23 3.23 0.00 2.56 2.57 2.56 2.56 0.00 3.41 87% 0.23 7% 0.04 1%44 2.5 4.0 2.4 3.86 3.88 3.87 3.87 0.00 2.66 3.55 3.13 3.14 0.23 2.37 2.38 2.37 2.37 0.00 1.37 35% 0.87 28% 0.03 1%45 3.8 3.0 2.5 5.07 5.07 5.07 5.07 0.00 3.22 3.22 3.22 3.22 0.00 2.41 3.01 2.72 2.73 0.14 1.27 25% 0.22 7% 0.22 8%46 0.4 1.0 2.2 2.77 8.19 4.28 4.19 0.96 1.36 1.64 1.38 1.37 0.05 2.14 2.36 2.19 2.19 0.03 3.88 91% 0.38 28% 0.01 0%47 3.5 2.0 3.3 4.77 4.80 4.78 4.78 0.01 2.31 3.70 3.04 3.08 0.32 3.22 3.23 3.23 3.23 0.00 1.28 27% 1.04 34% 0.07 2%48 2.9 2.0 2.2 4.24 4.24 4.24 4.24 0.00 2.28 2.29 2.29 2.29 0.00 2.03 3.40 2.73 2.65 0.34 1.34 32% 0.29 13% 0.53 19%49 1.6 2.0 3.6 2.15 5.14 3.69 3.70 0.65 2.25 2.42 2.30 2.30 0.03 3.46 3.52 3.51 3.51 0.01 2.09 57% 0.30 13% 0.09 3%50 2.9 3.0 2.6 4.23 4.24 4.24 4.24 0.00 2.68 3.46 3.13 3.14 0.19 2.56 2.57 2.56 2.56 0.00 1.34 32% 0.13 4% 0.04 1%51 2.5 4.0 2.9 3.85 3.86 3.86 3.86 0.00 4.16 4.17 4.17 4.17 0.00 2.03 3.48 2.71 2.71 0.34 1.36 35% 0.17 4% 0.19 7%52 0.6 3.0 3.3 2.49 4.59 3.69 3.77 0.53 3.14 3.29 3.23 3.23 0.02 3.19 3.23 3.22 3.23 0.01 3.09 84% 0.23 7% 0.08 2%53 2.8 2.0 3.9 4.09 4.16 4.12 4.12 0.01 1.83 4.38 3.07 3.15 0.58 3.79 3.80 3.79 3.79 0.00 1.32 32% 1.07 35% 0.11 3%54 0.4 3.0 1.7 1.90 1.91 1.91 1.91 0.00 3.23 3.24 3.24 3.24 0.00 2.46 3.15 2.80 2.82 0.15 1.51 79% 0.24 7% 1.10 39%55 4.0 4.0 2.0 2.68 6.11 4.00 4.00 0.62 4.01 4.19 4.15 4.15 0.03 1.98 2.07 2.00 2.00 0.02 0.00 0% 0.15 4% 0.00 0%56 2.9 3.0 2.6 4.23 4.24 4.24 4.24 0.00 2.80 3.56 3.14 3.09 0.20 2.56 2.57 2.56 2.56 0.00 1.34 32% 0.14 5% 0.04 1%57 0.6 2.0 3.0 2.10 2.10 2.10 2.10 0.00 2.30 2.30 2.30 2.30 0.00 2.06 3.62 2.78 2.80 0.34 1.50 71% 0.30 13% 0.22 8%58 2.9 2.0 2.7 3.16 5.53 4.01 4.05 0.47 2.30 2.40 2.30 2.30 0.02 2.63 2.73 2.66 2.66 0.01 1.11 28% 0.30 13% 0.04 2%59 2.5 4.0 2.2 3.86 3.89 3.87 3.87 0.01 2.45 3.68 3.14 3.11 0.29 2.18 2.19 2.19 2.19 0.00 1.37 35% 0.86 28% 0.01 1%60 0.2 4.0 2.1 1.71 1.72 1.71 1.71 0.00 4.17 4.18 4.18 4.18 0.00 2.18 3.43 2.76 2.74 0.31 1.51 88% 0.18 4% 0.66 24%61 2.8 3.0 3.8 1.31 5.09 3.54 3.62 0.76 3.06 3.34 3.23 3.23 0.04 3.63 3.70 3.69 3.70 0.01 0.74 21% 0.23 7% 0.11 3%62 3.0 3.0 3.6 4.29 4.34 4.31 4.31 0.01 2.28 3.88 3.05 3.02 0.40 3.51 3.52 3.51 3.51 0.00 1.31 30% 0.05 2% 0.09 3%63 3.9 2.0 1.8 5.17 5.17 5.17 5.17 0.00 2.28 2.28 2.28 2.28 0.00 2.02 3.23 2.71 2.69 0.29 1.27 25% 0.28 12% 0.91 34%64 3.5 2.0 2.2 2.44 6.24 4.13 4.09 0.60 2.29 2.45 2.30 2.30 0.03 2.17 2.27 2.19 2.19 0.02 0.63 15% 0.30 13% 0.01 0%65 0.3 2.0 3.8 1.77 1.82 1.79 1.80 0.01 2.15 4.11 3.27 3.30 0.50 3.69 3.70 3.70 3.70 0.00 1.49 83% 1.27 39% 0.10 3%66 4.0 3.0 3.6 5.26 5.26 5.26 5.26 0.00 3.22 3.22 3.22 3.22 0.00 2.38 3.00 2.69 2.70 0.16 1.26 24% 0.22 7% 0.91 34%67 3.9 4.0 3.2 1.35 4.66 3.66 3.70 0.56 4.00 4.16 4.15 4.16 0.03 3.04 3.15 3.13 3.13 0.02 0.24 7% 0.15 4% 0.07 2%68 0.6 2.0 2.8 2.09 2.10 2.09 2.09 0.00 2.83 3.84 3.30 3.27 0.24 2.75 2.76 2.75 2.75 0.00 1.49 71% 1.30 39% 0.05 2%69 2.9 2.0 2.9 4.24 4.24 4.24 4.24 0.00 2.28 2.29 2.29 2.29 0.00 2.01 3.27 2.75 2.74 0.33 1.34 32% 0.29 13% 0.15 6%70 2.5 3.0 2.2 3.09 5.15 3.94 3.81 0.51 3.15 3.31 3.23 3.23 0.02 2.18 2.22 2.19 2.19 0.01 1.44 37% 0.23 7% 0.01 1%71 0.2 3.0 2.4 1.71 1.74 1.73 1.73 0.01 2.71 3.88 3.35 3.40 0.32 2.37 2.38 2.37 2.38 0.00 1.53 88% 0.35 10% 0.03 1%72 2.8 4.0 3.6 4.13 4.14 4.14 4.13 0.00 4.16 4.17 4.16 4.16 0.00 1.90 3.25 2.68 2.70 0.32 1.34 32% 0.16 4% 0.92 34%73 3.0 3.0 3.0 2.94 4.32 3.74 3.81 0.32 3.17 3.25 3.23 3.23 0.01 2.91 2.94 2.94 2.94 0.00 0.74 20% 0.23 7% 0.06 2%

1.40 41% 0.38 13% 0.19 7%

Page 120: Sistemas de recomendación basados en filtrado colaborativo

Tesis Doctoral. Francisco Pajuelo Holguera. Universidad de Extremadura, 2021

120

Matrix BNMF Predicted matrix with BNMF Prediction errors by BNMF

TDP CDP HDPSessions TD CD HD min max mean median desv. min max mean median desv. min max mean median desv. TDPe TDPep CDPe CDPep HDPe HDep

1 8.0 4.0 3.0 8.25 8.96 8.55 8.90 0.33 4.48 7.09 6.36 6.87 1.19 3.66 4.54 3.78 4.07 0.34 0.55 6% 2.36 37% 0.78 21%2 1.0 5.0 5.0 1.43 2.35 2.12 2.17 0.41 5.69 6.56 6.29 6.05 0.37 5.37 5.80 5.69 5.55 0.14 1.12 53% 1.29 21% 0.69 12%3 7.0 7.0 6.0 7.51 9.87 9.75 8.54 1.12 7.06 8.64 8.63 7.62 0.80 6.36 7.76 7.12 6.76 0.59 2.75 28% 1.63 19% 1.12 16%4 9.0 2.0 3.0 9.79 11.03 10.62 10.97 0.57 2.04 2.33 2.30 2.27 0.13 3.61 4.89 4.57 4.16 0.55 1.62 15% 0.30 13% 1.57 34%5 1.0 5.0 4.0 1.62 3.06 2.78 2.71 0.63 5.80 8.34 7.49 6.44 1.12 4.96 5.66 4.99 5.52 0.37 1.78 64% 2.49 33% 0.99 20%6 8.0 3.0 5.0 8.92 9.70 8.99 9.53 0.39 3.96 4.58 4.03 4.36 0.29 5.79 6.25 5.83 5.99 0.21 0.99 11% 1.03 26% 0.83 14%7 9.0 5.0 5.0 9.97 12.25 11.65 10.86 0.99 5.09 5.34 5.18 5.32 0.07 5.64 7.53 7.25 6.39 0.86 2.65 23% 0.18 4% 2.25 31%8 7.0 10.0 4.0 7.72 8.47 7.84 8.24 0.35 10.05 11.07 10.14 11.06 0.45 4.85 6.50 6.02 5.97 0.70 0.84 11% 0.14 1% 2.02 34%9 9.0 2.0 5.0 9.66 11.29 10.97 10.86 0.71 2.77 3.07 3.05 2.84 0.15 5.92 7.13 6.62 6.78 0.51 1.97 18% 1.05 34% 1.62 25%

10 0.0 5.0 7.0 0.01 0.63 0.14 0.60 0.28 5.22 6.85 5.96 5.38 0.74 7.83 9.62 9.36 8.95 0.79 0.14 100% 0.96 16% 2.36 25%11 7.0 7.0 5.0 7.63 7.95 7.72 7.68 0.14 7.24 9.06 8.53 8.66 0.79 5.89 6.64 6.20 6.07 0.32 0.72 9% 1.53 18% 1.20 19%12 10.0 5.0 3.0 10.15 10.51 10.21 10.38 0.21 5.67 8.22 7.54 7.41 1.09 3.51 4.64 4.64 4.44 0.54 0.21 2% 2.54 34% 1.64 35%13 1.0 5.0 5.0 1.91 2.87 2.23 2.02 0.43 5.13 7.32 6.52 5.90 0.93 5.70 7.78 6.94 6.87 0.86 1.23 55% 1.52 23% 1.94 28%14 5.0 3.0 3.0 5.91 6.56 6.34 5.93 0.32 3.27 3.81 3.28 3.45 0.22 3.46 5.83 4.96 3.84 1.08 1.34 21% 0.28 9% 1.96 39%15 7.0 7.0 3.0 7.65 9.81 9.53 8.23 1.03 7.20 10.58 9.82 10.48 1.58 3.31 4.20 4.08 4.19 0.43 2.53 27% 2.82 29% 1.08 27%16 0.0 4.0 4.0 0.14 2.60 2.55 1.55 1.15 4.91 7.29 6.82 5.31 1.15 4.32 5.73 5.56 5.43 0.64 2.55 100% 2.82 41% 1.56 28%17 5.0 2.0 3.0 5.94 6.81 6.65 6.01 0.44 2.06 2.61 2.57 2.36 0.25 3.63 6.21 5.62 5.00 1.11 1.65 25% 0.57 22% 2.62 47%18 6.0 8.0 3.0 6.04 7.34 7.22 6.64 0.60 8.48 10.18 9.44 9.14 0.71 3.88 6.68 5.90 6.03 1.21 1.22 17% 1.44 15% 2.90 49%19 4.0 9.0 3.0 4.38 5.28 4.60 4.83 0.29 9.35 11.21 10.32 10.59 0.78 3.47 5.90 5.57 3.96 1.19 0.60 13% 1.32 13% 2.57 46%20 8.0 3.0 6.0 8.15 10.54 9.97 9.99 1.04 3.92 4.79 4.06 4.50 0.40 6.57 9.45 8.46 9.25 1.31 1.97 20% 1.06 26% 2.46 29%21 0.0 5.0 7.0 0.19 1.27 0.70 0.32 0.48 5.90 7.26 6.84 7.07 0.60 7.56 9.92 9.87 8.94 1.10 0.70 100% 1.84 27% 2.87 29%22 5.0 8.0 6.0 5.24 5.73 5.27 5.70 0.27 8.52 10.91 10.14 9.51 1.01 6.15 8.01 7.80 7.06 0.84 0.27 5% 2.14 21% 1.80 23%23 8.0 6.0 3.0 8.52 10.18 9.20 10.06 0.78 6.32 9.41 8.79 7.67 1.36 3.02 3.96 3.13 3.83 0.40 1.20 13% 2.79 32% 0.13 4%24 3.0 5.0 4.0 3.88 4.93 4.48 4.87 0.48 5.96 8.74 7.82 6.32 1.30 4.12 5.74 5.70 5.44 0.77 1.48 33% 2.82 36% 1.70 30%25 5.0 2.0 3.0 5.38 6.52 5.52 6.02 0.46 2.88 5.20 4.60 4.14 0.98 3.73 6.10 5.18 5.69 1.04 0.52 9% 2.60 57% 2.18 42%26 5.0 5.0 3.0 5.05 6.86 5.99 5.72 0.75 5.66 8.22 7.87 6.27 1.24 3.95 5.59 4.76 4.97 0.68 0.99 17% 2.87 36% 1.76 37%27 1.0 5.0 4.0 1.46 3.23 2.81 2.37 0.76 5.33 6.85 6.44 6.04 0.65 4.07 5.28 4.73 4.39 0.52 1.81 64% 1.44 22% 0.73 15%28 4.0 2.0 4.0 4.50 4.99 4.58 4.89 0.27 2.06 2.64 2.53 2.23 0.27 4.50 5.62 4.71 4.89 0.42 0.58 13% 0.53 21% 0.71 15%29 5.0 7.0 3.0 5.27 5.89 5.64 5.85 0.40 7.67 10.03 9.58 9.87 1.09 3.83 4.65 3.86 4.15 0.38 0.64 11% 2.58 27% 0.86 22%30 4.0 7.0 3.0 4.33 5.05 4.60 4.86 0.18 7.53 10.31 9.43 8.72 1.18 3.72 5.66 5.25 3.78 1.00 0.60 13% 2.43 26% 2.25 43%31 10.0 2.0 5.0 10.33 12.67 12.11 11.65 1.00 2.42 3.70 3.27 3.00 0.54 5.77 8.70 7.79 6.51 1.30 2.11 17% 1.27 39% 2.79 36%32 0.0 4.0 6.0 0.01 1.25 0.75 0.64 0.51 4.20 4.29 4.27 4.21 0.04 6.63 8.69 8.52 7.25 1.00 0.75 100% 0.27 6% 2.52 30%33 5.0 8.0 5.0 5.26 6.11 5.74 5.95 0.37 8.66 9.85 9.67 9.56 0.53 5.93 8.26 7.64 8.02 1.05 0.74 13% 1.67 17% 2.64 35%34 8.0 5.0 3.0 8.32 11.50 10.51 9.15 1.41 5.03 6.15 5.29 6.14 0.41 3.07 3.62 3.16 3.55 0.25 2.51 24% 0.29 5% 0.16 5%35 3.0 5.0 5.0 3.12 4.71 4.10 3.38 0.50 5.55 6.66 6.07 6.60 0.52 5.51 6.58 6.13 5.60 0.50 1.10 27% 1.07 18% 1.13 18%36 5.0 2.0 2.0 5.58 7.88 7.52 6.44 1.05 2.85 3.81 3.50 2.90 0.47 2.04 2.97 2.17 2.97 0.37 2.52 33% 1.50 43% 0.17 8%37 7.0 3.0 3.0 7.37 8.18 7.77 7.95 0.34 3.32 5.04 4.07 4.37 0.71 3.89 4.59 3.95 3.92 0.34 0.77 10% 1.07 26% 0.95 24%38 1.0 5.0 3.0 1.74 3.91 3.74 3.75 1.03 5.27 5.98 5.41 5.57 0.31 3.03 3.94 3.10 3.27 0.37 2.74 73% 0.41 8% 0.10 3%39 5.0 3.0 2.0 5.01 7.45 6.98 5.37 1.20 3.04 3.78 3.42 3.63 0.32 2.93 5.33 4.46 3.19 1.12 1.98 28% 0.42 12% 2.46 55%40 5.0 7.0 3.0 5.69 7.37 6.78 5.88 0.79 7.09 8.90 7.95 8.61 0.80 3.68 5.12 4.32 3.81 0.65 1.78 26% 0.95 12% 1.32 30%41 5.0 5.0 0.0 5.78 6.56 6.23 6.12 0.32 5.32 6.51 6.21 5.71 0.53 0.72 1.27 0.86 0.93 0.20 1.23 20% 1.21 19% 0.86 100%42 8.0 5.0 3.0 8.75 10.93 10.69 10.16 0.97 5.73 7.30 6.93 6.67 0.67 3.24 4.41 3.63 4.23 0.34 2.69 25% 1.93 28% 0.63 17%43 1.0 5.0 3.0 1.31 3.45 2.80 1.95 0.94 5.19 7.57 7.38 7.00 1.09 3.21 5.84 4.95 5.14 1.12 1.80 64% 2.38 32% 1.95 39%44 4.0 7.0 3.0 4.53 6.07 5.17 5.44 0.64 7.38 8.35 7.86 7.67 0.41 3.94 5.66 5.09 5.14 0.73 1.17 23% 0.86 11% 2.09 41%45 10.0 6.0 2.0 10.01 10.81 10.08 10.64 0.31 6.26 8.44 7.58 7.78 0.92 2.18 3.69 3.42 2.96 0.66 0.08 1% 1.58 21% 1.42 42%46 0.0 0.0 3.0 0.75 2.18 2.16 0.85 0.79 0.60 1.90 1.09 1.11 0.54 3.84 5.87 4.96 5.17 0.84 2.16 100% 1.09 100% 1.96 40%47 6.0 2.0 5.0 6.43 7.95 7.62 6.66 0.73 2.73 5.13 4.54 3.75 1.04 5.82 8.39 7.52 6.65 1.11 1.62 21% 2.54 56% 2.52 34%48 8.0 2.0 2.0 8.01 8.94 8.18 8.51 0.35 2.90 4.38 4.18 3.45 0.68 3.00 4.81 4.09 3.66 0.76 0.18 2% 2.18 52% 2.09 51%49 4.0 3.0 5.0 4.16 5.13 4.31 4.80 0.39 3.88 4.46 3.99 3.94 0.27 5.78 6.67 6.52 6.56 0.41 0.31 7% 0.99 25% 1.52 23%50 6.0 5.0 4.0 6.33 8.09 7.40 7.34 0.73 5.17 8.18 7.19 6.59 1.26 4.01 4.95 4.20 4.45 0.19 1.40 19% 2.19 30% 0.20 5%51 5.0 7.0 5.0 5.40 7.33 6.92 6.34 0.84 7.76 9.98 9.20 9.08 0.92 5.17 7.84 7.31 7.03 1.16 1.92 28% 2.20 24% 2.31 32%52 1.0 5.0 7.0 1.06 1.69 1.28 1.54 0.17 5.38 7.39 6.58 5.60 0.93 7.07 7.73 7.40 7.62 0.15 0.28 22% 1.58 24% 0.40 5%53 8.0 2.0 4.0 8.01 9.03 8.08 8.90 0.42 2.31 3.76 2.96 2.51 0.64 4.01 4.40 4.15 4.39 0.15 0.08 1% 0.96 32% 0.15 4%54 1.0 5.0 1.0 1.69 4.08 3.60 2.31 1.11 5.99 6.97 6.78 6.56 0.42 1.84 3.48 3.14 3.14 0.73 2.60 72% 1.78 26% 2.14 68%55 8.0 8.0 3.0 8.39 9.27 8.47 9.00 0.40 8.53 10.06 9.40 9.97 0.70 3.29 6.34 5.51 4.17 1.36 0.47 6% 1.40 15% 2.51 46%56 8.0 4.0 3.0 8.04 11.06 10.71 10.32 1.36 4.71 7.49 6.72 7.34 1.28 3.78 5.31 4.46 5.09 0.69 2.71 25% 2.72 40% 1.46 33%57 1.0 2.0 5.0 1.88 2.84 2.49 1.94 0.46 2.58 3.99 3.17 3.82 0.65 5.89 7.56 7.51 6.95 0.77 1.49 60% 1.17 37% 2.51 33%58 5.0 2.0 4.0 5.21 7.12 6.35 5.66 0.84 2.98 4.22 3.67 3.71 0.51 4.21 5.12 4.23 4.90 0.46 1.35 21% 1.67 46% 0.23 5%59 6.0 7.0 2.0 6.56 8.14 7.51 6.83 0.71 7.76 9.68 8.96 8.31 0.83 2.58 3.53 2.70 3.26 0.39 1.51 20% 1.96 22% 0.70 26%60 0.0 7.0 2.0 0.03 2.50 1.71 1.83 1.05 7.71 9.90 9.44 8.93 0.94 2.13 4.39 4.14 3.88 1.03 1.71 100% 2.44 26% 2.14 52%61 5.0 5.0 7.0 5.09 6.03 5.28 5.51 0.41 5.47 7.32 6.94 7.00 0.82 7.63 8.88 8.31 8.72 0.56 0.28 5% 1.94 28% 1.31 16%62 4.0 5.0 10.0 4.71 6.86 5.98 6.40 0.92 5.06 6.74 5.86 5.07 0.80 10.60 12.41 11.84 12.37 0.85 1.98 33% 0.86 15% 1.84 16%63 6.0 2.0 3.0 6.22 8.01 7.63 7.19 0.77 2.35 3.58 3.04 2.86 0.51 3.24 5.20 4.48 3.96 0.83 1.63 21% 1.04 34% 1.48 33%64 9.0 3.0 2.0 9.37 10.79 10.46 9.72 0.65 3.41 3.94 3.61 3.76 0.13 2.19 4.64 4.46 4.19 1.13 1.46 14% 0.61 17% 2.46 55%65 0.0 3.0 6.0 0.73 2.71 1.96 2.46 0.88 3.66 4.43 3.67 4.39 0.43 6.82 7.29 6.87 6.92 0.21 1.96 100% 0.67 18% 0.87 13%66 7.0 5.0 7.0 7.05 7.33 7.20 7.57 0.29 5.54 7.10 6.87 6.51 0.69 7.12 7.69 7.18 7.48 0.21 0.20 3% 1.87 27% 0.18 2%67 9.0 7.0 3.0 9.35 11.14 10.27 11.09 0.84 7.45 9.58 9.30 8.01 1.02 3.87 6.53 5.69 6.33 1.21 1.27 12% 2.30 25% 2.69 47%68 1.0 3.0 5.0 1.26 2.14 1.56 1.50 0.37 3.70 5.67 5.53 5.52 0.94 5.31 7.14 6.77 5.90 0.83 0.56 36% 2.53 46% 1.77 26%69 4.0 2.0 5.0 4.15 5.23 4.32 4.88 0.47 2.52 3.61 2.64 3.07 0.49 5.14 7.68 7.30 7.44 1.18 0.32 7% 0.64 24% 2.30 32%70 7.0 5.0 2.0 7.75 9.78 9.10 8.05 0.94 5.45 6.92 6.81 6.92 0.72 2.53 4.40 4.23 3.45 0.85 2.10 23% 1.81 27% 2.23 53%71 0.0 5.0 3.0 0.02 2.66 1.90 2.00 1.13 5.82 7.18 6.45 7.03 0.62 3.42 5.81 4.93 4.52 0.99 1.90 100% 1.45 22% 1.93 39%72 5.0 8.0 6.0 5.16 6.73 5.82 5.32 0.70 8.40 9.24 8.79 8.87 0.34 6.71 8.75 8.52 8.73 0.98 0.82 14% 0.79 9% 2.52 30%73 5.0 5.0 5.0 5.52 6.74 6.46 6.68 0.56 5.72 7.10 6.30 6.31 0.56 5.25 6.91 6.32 6.33 0.70 1.46 23% 1.30 21% 1.32 21%

1.33 31% 1.52 26% 1.59 30%