scieee Open visual document viewer

Sistemas de recomendación aplicados a jueces en línea

Doménech Arellano, Pedro Pablo; Soria Muñoz, Alfonso

Abstract

Un sistema de recomendación aplicado a jueces en línea, como bien muestra el título de este documento, aúna dos conceptos que deben entenderse previamente. El primer concepto de ellos es el de recomendador. Un recomendador es un sistema de filtrado de información que busca predecir la preferencia de un usuario respecto a un conjunto de elementos. El objetivo de los recomendadores, por lo tanto, es facilitar las búsquedas del usuario dentro de una plataforma, de manera que al usuario se le faciliten elementos personalizados que tienen relación con el comportamiento que este genera bajo la plataforma. El segundo concepto es el de juez en línea. Un juez en línea funciona como un repositorio de ejercicios que un usuario puede hacer y enviar, para así obtener un veredicto. Los jueces en línea son, por lo tanto, un tipo de plataformas orientadas a la resolución de ejercicios de programación, con la finalidad de que los usuarios puedan intentar las propuestas de problemas que cada plataforma tenga y comprobar el estado de sus envíos. Este estado indica si el envío es correcto o incorrecto y a su vez incorpora información extra como el tiempo de ejecución o el consumo de memoria. Este trabajo, por lo tanto, consiste en el estudio de recomendadores y jueces en línea con alto detalle, para así poder aunar el mundo de los recomendadores y centrarlos en estas plataformas, llegando a redactar varios modelos de recomendación y evaluarlos sobre un caso real de juez en línea, como es el de la plataforma ¡Acepta el reto!.

Full text

Sis emas de ecomendación aplicados a jueces en línea T abajo de Fin de G ado Ped o Pablo Doménech A ellano Al onso So ia Muñoz G ado en Ingenie ía In o má ica Facul ad de In o má ica Uni e sidad Complu ense de Mad id Mayo 2019 Documen o maque ado con T EXiS .1.0+. Es e documen o es á p epa ado pa a se imp imido a doble ca a. Sis emas de ecomendación aplicados a jueces en línea Memo ia que p esen an pa a op a al í ulo de G ado en Ingenie ía In o má ica Sis emas de ecomendación aplicados a jueces en línea G ado en Ingenie ía In o má ica Facul ad de In o má ica Uni e sidad Complu ense de Mad id Mayo 2019 Copy igh c Ped o Pablo Doménech A ellano y Al onso So ia Muñoz Resumen Un sis ema de ecomendación aplicado a jueces en línea, como bien mues- a el í ulo de es e documen o, aúna dos concep os que deben en ende se p e iamen e. El p ime concep o de ellos es el de ecomendado . Un ecomendado es un sis ema de il ado de in o mación que busca p edeci la p e e encia de un usua io espec o a un conjun o de elemen os. El obje i o de los eco- mendado es, po lo an o, es acili a las búsquedas del usua io den o de una pla a o ma, de mane a que al usua io se le acili en elemen os pe sona- lizados que ienen elación con el compo amien o que es e gene a bajo la pla a o ma. El segundo concep o es el de juez en línea. Un juez en línea unciona como un eposi o io de eje cicios que un usua io puede hace y en ia , pa a así ob ene un e edic o. Los jueces en línea son, po lo an o, un ipo de pla a o mas o ien adas a la esolución de eje cicios de p og amación, con la inalidad de que los usua ios puedan in en a las p opues as de p oblemas que cada pla a o ma enga y comp oba el es ado de sus en íos. Es e es ado indica si el en ío es co ec o o inco ec o y a su ez inco po a in o mación ex a como el iempo de ejecución o el consumo de memo ia. Es e abajo, po lo an o, consis e en el es udio de ecomendado es y jueces en línea con al o de alle, pa a así pode auna el mundo de los e- comendado es y cen a los en es as pla a o mas, llegando a edac a a ios modelos de ecomendación y e alua los sob e un caso eal de juez en línea, como es el de la pla a o ma ¡Acep a el e o!. Palab as cla e: sis ema de ecomendación, eo ema de bayes, k- ecinos más ce canos, juez en línea, ecomendado es, ¡Acep a el e o!. Abs ac A ecommende sys em applied o online judges, as he i le o his do- cumen says, join wo concep s ha mus be unde s ood p e iously. The i s concep o hem is ecommende . A ecommende is an in o ma- ion il e ing sys em ha seeks o p edic he p e e ence o an use ega ding a se o elemen s. The goal o he eccomende s he e o e, is o acili a e use sea ches wi hin a pla o m, so ha h ough he ecommende , he use is p o ided wi h cus omized elemen s ha a e ela ed o he beha io ha is gene a ed unde he pla o m. The second concep is online judge. An online judge wo ks as a eposi o y o exe cises ha an use can do and send, in o de o ob ain a esul ha is a e dic . Online judges a e he e o e a ype o pla o ms o ien ed o he esolu ion o p og amming exe cises, in o de ha use s can y he p oposals o p oblems ha each pla o m has and check he s a us o hei submissions wi h ex a in o ma ion in many cases like he ime o execu ion and he memo y ha he sen p og am has consumed, as well as he main in o ma ion on whe he he submission is alid o dddoes no wo k co ec ly. This wo k, he e o e, consis s o he s udy o ecommende s and online judges wi h high de ail, so we can b ing oge he he wo ld o ecommende s and cen e hem on hese pla o m, ¡Acep a el e o!. Keywo ds: ecommende sys em, bayes heo em, K-Nea es neighbo s, on- line judges, ecommende s, ¡Acep a el e o!. ii No as de los au o es En el p esen e documen o se pone nues o es ue zo al se icio del conoci- mien o, in en ando auna concep os ap endidos a lo la go de es os años, pa a aplica los sob e un mundo desconocido has a aho a pa a quienes elabo amos es a memo ia. Es e es el mundo de los ecomendado es, cada día más usados en odos los aspec os de nues a ida co idiana, como in e esan es po odo el po encial que ienen y que les queda po ene . Es e abajo de in de g ado es, po lo an o, un in en o de documen a nos y ap ende sob e algo nue o, así como pone lo en p ác ica y lle a lo a cabo en el ámbi o de los jueces en línea, pla a o mas que ienen poca in es igación de as ondo en lo que al mundo de la ecomendación se e ie e. Es además in e esan e pode es udia la mul i ud de modelos de eco- mendación con ideas an di e en es en e ellos, pe o cuyo obje i o siemp e es el mismo: gene a una solución co ec a a las necesidades del usua io. Po o o lado enemos las pla a o mas de jueces en línea, las cuales son cada día más popula es en e ma emá icos, ingenie os, y pe sonas ce canas a es os sec o es, ya que p oponen una se ie de eje cicios que a o ecen y eje ci an la agilidad men al, y mejo an los conocimien os del campo de la algo i mia. Son además des acables los jueces en línea pa a los es udian es de es as á eas, ya que median e es as pla a o mas pueden ap ende cie as amas de sus ca e as de una mane a en e enida y en algunos casos, incluso, compe i- i a, pa a aquellas que son capaces de in eg a concu sos. De es a mane a, un juez en línea a la ez de se una pla a o ma de ocio, a o ece el ap endizaje de los usua ios que se a icionan a es as pla a o mas. Con es e documen o no sólo nos apo amos a noso os mismos nue os conocimien os, aden ándonos en es os dos mundos que no se ocan p ác- icamen e du an e el anscu so de la ca e a, sino que in en amos apo a nues o g ano de a ena an o a la in es igación de nue os modelos de eco- mendación, como a la in es igación de la implemen ación de ecomendado es en es e modelo de pla a o mas, pa a que gene en soluciones óp imas a unas necesidades conc e as. Sin más dilación, le dejamos con nues o abajo, y espe amos que lo ix x i Índice de igu as 7.10. G á ica 2 del Recall pa a el SR K-Vecinos. . . . . . . . . . . . 59 7.11. G á ica 1 del F-Sco e pa a el SR K-Vecinos. . . . . . . . . . . 60 7.12. G á ica 2 del F-Sco e pa a el SR K-Vecinos. . . . . . . . . . . 61 8.1. G á ica de compa ación de p ecision .............. 64 8.2. G á ica de compa ación de one-hi ............... 65 8.3. G á ica de compa ación de ecall ................ 66 8.4. G á ica de compa ación de -sco e ................ 67 9.1. Diag ama de clases ex endido pa a el ecomendado K-Vecinos. 70 9.2. Funcionamien o del ecomendado K-Vecinos con API (Ap- plica ion P og amming In e ace) implemen ada pa a su uso como se icio ex e no. . . . . . . . . . . . . . . . . . . . . . . 71 Índice de Tablas 6.1. Tabla p ecision .......................... 37 6.2. Tabla one-hi ........................... 38 6.3. Tabla Recall ............................ 39 6.4. Tabla F-Sco e ........................... 40 7.1. Tabla de esul ados de P ecision pa a el SR K-Vecinos. . . . . 53 7.2. Tabla de esul ados de one-hi pa a el SR K-Vecinos. . . . . . 56 7.3. Tabla de esul ados de ecall pa a el SR K-Vecinos. . . . . . . 58 7.4. Tabla de esul ados de F-Sco e pa a el SR K-Vecinos. . . . . 59 x ii Capí ulo 1 In oducción La e olución digi al hace cada ez más ácil la ida de los usua ios, pe mi iéndoles gana iempo así como ene in o mación pe sonal y gene al siemp e a mano. Vi imos en un momen o donde hace unos años (y en oca- siones meses) no exis ían pla a o mas y aplicaciones que aho a son usadas de o ma masi a, y cada día su gen nue as ideas que ienen un éxi o de uso inmedia o. Es e p oyec o pa e de la idea de do a con he amien as que acili an la ida del usua io, a pla a o mas eme gen es que son los jueces en línea. Es as he amien as se an a cen a en conc e o en los sis emas de ecomendación o SR, que pe mi en aho a el iempo del usua io haciéndole p opues as y suge encias basadas en el compo amien o que es e gene a bajo la pla a o - ma. Cuando escogimos es e abajo de in de g ado, lo hicimos po que imos una idea p ome edo a pa a do a de es as he amien as a un juez en línea en conc e o que es popula en e la acul ad, y g acias a odo el camino que se ha ealizado a lo la go de es e año, se ha log ado a hace un es udio muy comple o pa a pode llega a aplica dos ecomendado es que se han ealizado bajo la pla a o ma que es ¡Acep a el e o!. 1.1. Obje i os El p esen e abajo de in de g ado iene los siguien es obje i os: Es udia di e en es modelos de ecomendación. Realiza un es udio sob e las pla a o mas de jueces en línea. Es udia casos ya exis en es de implemen aciones de ecomendado es en pla a o mas de jueces en línea. Realiza un es udio sob e mé odos de e aluación pa a analiza la e i- cacia de un ecomendado . 1 2Capí ulo 1. In oducción Analiza modelos de implemen ación como se icio ex e no pa a los sis emas de ecomendación. Implemen a un pa de modelos de ecomendación des acables y que uncionen bien sob e pla a o mas de jueces en línea y p opone una a qui ec u a de comunicación pa a que uncione como se icio ex e no. E alua sob e un juez en línea la e icacia de los modelos implemen ados y pode con as a esul ados pa a e las di e encias de compo amien- o de cada modelo de ecomendación ealizado. 1.2. Plan de abajo La plani icación seguida en es e abajo ha comenzado po documen a - nos en di e en es aspec os. P ime o se ha ealizado el es udio sob e sis emas de ecomendación, empezando a e lo que son, su uncionamien o, sus ob- je i os y acabando po es udia di e en es écnicas exis en es que pueden usa se pa a es os sis emas. De es as écnicas se ocaliza el es udio con mayo p o undidad en es de ellas que han esul ado las más in e esan es. Pos e io men e y pa alelo al es udio en p o undidad de es écnicas de ecomendación conc e as, se ha comenzado a documen a y ecaba in o - mación sob e los jueces en línea, y en conc e o sob e el uncionamien o de ¡Acep a el e o! un juez en línea con el que se ha podido abaja en es e p oyec o. Se ha hecho un análisis de sus da os, desde las en egas has a la can idad de p oblemas y usua ios que es a pla a o ma maneja. Finalmen e, se ha hecho un análisis de jueces en línea exis en es que ya implemen an sis emas de ecomendación, y se han leído a ículos de sis emas de ecomendación p opues os pa a se aplicados a jueces en línea. T as es a p ime a ase de analiza odo lo exis en e y documen a nos de in o mación, se ha en ado en una segunda ase de implemen ación, donde se han ealizado dos modelos de ecomendación y pos e io men e se han op imizado pa a educi los cálculos a iempos insigni ican es. Es os modelos de ecomendación han pasado po una ase de e aluación indi idual sob e la base de da os de ¡Acep a el e o! pa a analiza su compo - amien o y pos e io men e se ha ealizado una e aluación en conjun o pa a con as a esul ados y saca unas conclusiones pa a ambos ecomendado es. Finalmen e se ha ealizado una p opues a de API de comunicación, que pe mi e a es os sis emas de ecomendación pode se usados como un se icio ex e no pa a los jueces en línea. Es a API de comunicación se ha podido pone a p ueba con uno de los modelos implemen ados sob e ¡Acep a el e o!. Todo es e plan de abajo acaba en unas conclusiones in e esan es sob e la mul i ud de análisis que se ha in en ado hace y po o o lado se p oponen las líneas de abajo u u o que puede oma desde es e pun o el p oyec o que se ha ealizado. Capí ulo 2 In oduc ion The Digi al Re olu ion makes li e easie o he public, allowing hem o sa e ime in addi ion o ha e gene al and pe sonal in o ma ion accessible. We li e a a ime whe e a ew yea s ago (o e en only mon hs) we had no pla o ms o applica ions ha a e now ex emely used, and e e y day come new ideas ha ha e an immedia e success. This p ojec a ises om he idea o p o iding ools ha make li e easie o a use o he new pla o ms ha a e he online judges. These ools a e going o ocus on he ecommende sys ems o RS, ha sa e he use ime making him p oposals and sugges ions based on he beha io ha he use gene a es on he pla o m. When we chose his inal hesis, we saw ha i was a p omising idea o p o ide hese ools o a popula online judge a he acul y, and due all he wo k made his yea , we managed o make a ull s udy o be able o apply wo ecommende s unde he ¡Acep a el e o! pla o m. 2.1. Objec i es This hesis has he ollowing objec i es: S udy di e en ecommenda ion models. Pe o m a s udy abou online judge pla o ms. In es iga e exis ing cases o implemen ed ecommende s in online jud- ges. Pe o m ano he s udy abou e alua ion me hods o analyze a ecom- mende e ec i eness. Analyze implemen a ion models as an ex e nal se ice o he ecom- menda ion sys ems. 3 4Capí ulo 2. In oduc ion Implemen a couple o ema kable implemen a ion models ha wo k sa is ac o ily on he online judges pla o ms and p opose a communi- ca ion a chi ec u e o wo k as an ex e nal se ice. E alua e he e ec i eness o implemen ed models on an online judge and compa e esul s o see he beha io di e ences o each ecommen- da ion model. 2.2. Wo k plan The wo k plan ollowed in his disse a ion has begun by ga he ing in o - ma ion on di e en aspec s. Fi s , we ha e done a s udy on ecommenda ion sys ems, s a ing o see wha hey a e, how hey wo k, hei objec i es and inally s udying di e en exis ing echniques ha can be used o hese sys- ems. O hese echniques, ou s udy has ocused in g ea e dep h on h ee o hem ha ha e u ned ou o be he mo e in e es ing ones. Subsequen ly, and pa allel o he in-dep h s udy o he h ee conc e e ecommenda ion echniques, we ha e begun o ga he in o ma ion abou online judges, and speci ically abou how ¡Acep a el e o! wo ks, an online judge wi h which we ha e been able o wo k in his p ojec . We ha e done an analysis o he da a, om he use deli e ies o he numbe o exe cises and use s ha his pla o m manages. Finally, we ha e ca ied ou an analysis o exis ing online judges which al eady implemen ecommenda ion sys ems and we ha e ead a icles om p oposed sys ems o be added o online judges. A e his i s phase o analyzing all he p e ious in o ma ion and co- llec ing da a, we ha e en e ed in o a second phase o implemen a ion, whe e we ha e made wo ecommenda ion models and hen ha e been op imized o educe he calcula ion ime o a minimum. These ecommenda ion models ha e gone h ough an indi idual e alua- ion phase on he ¡Acep a el e o! da abase o analyze hei beha io and hen, we ha e ca ied ou an e alua ion be ween bo h o compa e esul s and ob ain conclusions o he wain ecommende s. Finally, we ha e p oposed a communica ion API, which allows hese e- commenda ion sys ems o be used as an ex e nal se ice o online judges. This communica ion API has been es ed wi h one o he models implemen- ed on ¡Acep a el e o!. All his wo k plan ends in some in iguing conclusions abou he mul i- ude o analysis ha ha e been ied and addi ionally we ha e decided he u u e wo k pa hs ha we can ollow om his poin he p ojec . Capí ulo 3 Sis emas de ecomendación Resumen: En es e capí ulo se in oducen los sis emas de ecomen- dación, en adelan e ambién llamados SR, en ando en de alle en la inalidad de es os, y explicando di e en es écnicas de ecomendación que pueden se aplicadas y se han conside ado como las más des aca- bles pa a es e abajo. Con el a ance de los sis emas in o má icos, se han ido desa ollando sis- emas o ien ados a usua ios que manejan in o mación, como son las pla a- o mas que ges ionan di e en es ipos de con enido. La g an p oblemá ica de o ece al usua io el con enido más indicado a su pe il ue su giendo a medida que el con enido c ecía masi amen e den o de es as pla a o mas. Fue po es o que apa ecie on necesidades de implemen a nue as ecnologías que pe mi ie an p opo ciona al usua io cie as acilida- des, pa a ob ene cómodamen e lo que és e ealmen e necesi aba de en e oda la in o mación exis en e. Es as ecnologías, que acili aban la selección de la in o mación que más le in e esaba al usua io, engloban el mundo de los buscado es, los p edic o es, los clasi icado es de con enido y los sis emas de ecomendación, en e o os. Son es as úl imas ecnologías las que, aplicando unas eglas in e nas o algo i mos, log an, en mayo o meno medida, encon a simili udes en e elemen os o en adelan e, í ems, pa a acili a al usua io el acceso a lo que és e más necesi a o le pueda esul a más in e esan e y ce cano a sus gus os, según las elaciones o el his o ial de in e acciones que el usua io ha ealizado. Como se mues a en la igu a 3.1, un sis ema de ecomendación gene a una ecomendación, basándose en elaciones de in e acción en e usua ios e í ems, y haciendo uso de algo i mos in e nos que asignan alo es a es as elaciones pa a la gene ación de las ecomendaciones. El ecomendado se enca ga po lo an o, de encon a es as elaciones gene adas po el his o ial del usua io sob e la ac i idad de los í ems y hace 5 6Capí ulo 3. Sis emas de ecomendación Figu a 3.1: Funcionamien o en básico de un sis ema de ecomendación. los cálculos pe inen es pa a asocia nue os í ems en conco dancia con es as elaciones y simili udes (Agga wal (2016)). 3.1. Recomendado es Los sis emas de ecomendación p opo cionan la in o mación más adecua- da a pa i de las in e acciones y acciones que el usua io ealiza. Un ecomendado es po lo an o un sis ema capaz de gene a in o mación subje i a y il ada, con cie as ca ac e ís icas, g acias a un algo i mo que analiza la ac i idad del usua io y o os da os (Agga wal (2016)). Es as ecomendaciones gene adas ienen la ca ac e ís ica de se adap- adas al usua io al que se le es á gene ando la ecomendación, ya que el p opósi o gene al de un ecomendado es acili a los da os necesa ios de mane a pe sonalizada. Ac ualmen e un po al web con g an a luencia de usua ios y con enido dispone de sis emas de ecomendación. Como ejemplos de casos popula es y de éxi o, que ienen impo an es y des acables ecomendado es debido a su complejidad y que p es an g an apoyo a las pla a o mas sob e las que ac úan, podemos menciona a Ne lix1(se ies y películas), Amazon2( en a de p oduc os), o YouTube3(con enido audio isual). Son es os sis emas de ecomendación an a anzados los que han a o e- cido la popula idad y el éxi o c ecien e de es as pla a o mas. O os sis emas de ecomendación son usados de mane a menos di ec a pa a asocia a usua ios elemen os especí icos, como se da en el ámbi o de la publicidad en in e ne , cuyo e e en e más ep esen able en es e caso es Google Adwo ds4, que, a a és de la in o mación de un usua io que usa 1h ps://www.ne lix.com 2h ps://www.amazon.es 3h ps://www.you ube.com 4h ps://ads.google.com 3.2. Técnicas de ecomendación in o madas 7 se icios de Google, e ina y clasi ica qué ipos de anuncios son ecomendables pa a el usua io según lo que és e busca na egando po sus se icios. Los sis emas de ecomendación han ido e olucionando a causa de la nece- sidad de pe ecciona las ecomendaciones, ya que un ecomendado que hace mejo es ecomendaciones, implica un aumen o signi ica i o de los ing esos pa a muchas pla a o mas ya sea po que el SR (Sis ema de Recomendación) se aplique en emas de publicidad, en as, e c, o simplemen e la mejo a de imagen de la p opia pla a o ma que la hacen más a ac i a a nue os usua- ios. La e olución ecnológica ha hecho posible pasa de écnicas sencillas basadas en ecomenda í ems con ca ac e ís icas simila es, según a ibu os comunes, a ecomendaciones a anzadas, basadas en écnicas de il os cola- bo a i os. En es as écnicas más a anzadas se aplican conjun os de da os masi os pe mi iendo hace análisis de da os con las in e acciones especí icas de un usua io, an es de gene a la ecomendación. Den o de es as écnicas exis en ambién algunas écnicas de ecomen- dación que usan mé odos de clasi icación y los adap an al obje i o de una ecomendación. Los mé odos de clasi icación se enca gan de coloca elemen- os que no es án aún en un luga de inido pa a si ua los en di e en es g upos exis en es, es deci , los elemen os que no ienen una clasi icación p e ia, son asignados po un algo i mo en un g upo según ca ac e ís icas que se encuen- en de es e. Es as o mas de ecomenda se explican con mayo de alle en las siguien- es secciones de es e capí ulo. 3.2. Técnicas de ecomendación in o madas Las écnicas de ecomendación in o madas engloban aquellos mé odos de ecomendación que no suponen un conocimien o global de in o mación, es deci , mé odos que solo se ijan en la in o mación p opia de un usua io espec o las in e acciones con di e en es elemen os, sin necesidad de conoce la del es o de usua ios. Es as écnicas, u ilizan p opiedades que ienen los p opios í ems con los que el usua io in e ac úa, pa a ag upa los en base a es as p opiedades. El ejemplo más en endible de las écnicas de ecomendación in o madas, es el caso de un ecomendado basado en e ique as y a ibu os. Es e ipo de ecomendado mi a las in e acciones que iene un usua io con cie os í ems, los cuales ienen cie os a ibu os y el ecomendado busca o os í ems con los mismos ipos de a ibu os pa a usa los como opciones a ecomenda . Un ecomendado basado en e ique as y a ibu os necesi a po lo an- o que los í ems sob e los que abaja engan in e namen e p opiedades y e ique as pa a pode se clasi icados de una mane a di ec a po es as p opie- dades. De es a mane a el ecomendado hace uso de las in e acciones que un usua io iene con los dis in os í ems, pa a así selecciona los egis os más 14 Capí ulo 3. Sis emas de ecomendación 3.3.3. Recomendado basado en i ine a ios de ap endizaje Un ecomendado basado en i ine a ios de ap endizaje comp ueba qué línea ha seguido un usua io a la ho a de elegi í ems y analiza el es o de líneas seguidas po o os usua ios pa a encon a las más simila es y gene a una ecomendación basada en í ems que segui ían ese eco ido. Es os algo i mos se pueden usa en pla a o mas donde los usua ios ienen in ención de segui un i ine a io de ap endizaje, como es el caso de los jueces en línea (capí ulo 4), donde exis en eje cicios o p oblemas a esol e . En es e caso se ecomiendan los p oblemas más in e esan es pa a la línea de ap endizaje del indi iduo. De es a mane a, se puede conside a que el ecomendado solo se ija en las líneas más a anzadas que exis en de usua ios que han seguido po la misma ayec o ia del indi iduo a ecomenda , pa a así pode ecomenda líneas más p ecisas (Sánchez-Ruiz e al. (2017)). A modo de ejemplo, en el caso de jueces en línea, es e ecomendado gene a un i ine a io de ap endizaje po cada usua io en base a los p oblemas que ha ido consiguiendo ealiza de o ma sa is ac o ia. Es as secuencias de p oblemas que se les asigna a cada usua io, man ienen un o den que iene dado po la echa desde el p ime p oblema esuel o que ienen, has a el úl imo. Dado un usua io Ui, al que se le asigna un i ine a io Li, pa a gene a la ecomendación, se aplica una consul a en base al Liasociado a Ui. De es a consul a se ob iene una upla indicando la simili ud en e cada i ine a io del es o de usua ios, con Li, ob eniendo los N más simila es. U ilizando es os nue os i ine a ios, el ecomendado puede busca p o- blemas que no ha esuel o el indi iduo a se ecomendado, y clasi ica los de di e en es mane as, pa a gene a la ecomendación. 3.3.4. Recomendado basado en análisis de edes sociales Un ecomendado que aplica écnicas usadas en análisis de edes sociales, a a a los usua ios y a los í ems como un g a o de indi iduos y las elaciones en e ellos. De es a o ma, po ejemplo, en el caso de un sis ema de jueces en línea, los nodos ep esen an p oblemas y usua ios, y las en egas, las elaciones que exis en en e ellos. Es a ep esen ación de la ed de usua ios y p oblemas, pe mi e usa mé- odos y mé icas de inidas en el campo de análisis de edes sociales. Como se mues a en la igu a 3.4, de es e g a o se pueden ob ene po sepa ado dos g a os donde se ienen las elaciones en e usua ios y las ela- ciones en e p oblemas, de al o ma que del g a o bipa i o de usua ios más p oblemas a ados como nodos se ob ienen dos p oyecciones, una que solo man iene como nodo los usua ios y sus elaciones en e sí, y o a que solo man iene a los p oblemas y sus elaciones en e sí (Fu h (2010)). 3.3. Técnicas de ecomendación no in o madas 15 Figu a 3.4: Ilus ación de un g a o bipa i o(a), donde se ex aen las p oyec- ciones de los nodos X (b) e Y(c). U ilizando es as p oyecciones, se pueden aplica algo i mos de “link p e- dic ion”. Es os algo i mos se usan pa a hace p edicciones de nue os enlaces en e nodos, que puedan su gi en un u u o, o pa a hace p edicciones de enlaces en e nodos, que puedan desapa ece en un u u o (Jimenez-Diaz e al. (2017)). 3.3.5. Recomendado Bayesiano Un ecomendado bayesiano es un SR que aplica cálculos p obabilís icos basados en el eo ema de Bayes de la p obabilidad condicionada, con el obje i o de ob ene la p obabilidad de que un í em sea del ag ado de un usua io. Una ez ob enidas odas las p obabilidades se o denan de mayo a meno , pa a así pode ecomenda al usua io aquellos í ems que mejo encajen con su pe il. La eo ía básica de la p obabilidad explica que la p obabilidad de que ocu a un suceso se calcula di idiendo el núme o de casos a o ables en e el núme o de casos posibles (sección 3.1). La p obabilidad de que ocu a el suceso Ase exp esa como P(A). Así en un dado de seis ca as no ca gado, la p obabilidad de que salga el núme o 4 se ía un sex o ya que solo una ca a, la del cua o, es a o able y hay 6 posibles ca as equip obables. P(A) = no a o ables noposibles (3.1) Si aho a se ienen dos dados di e enciados, uno azul y o o ojo, enemos un o al de 36 casos. En onces si que emos calcula la p obabilidad de que i ando los dos dados salga en el azul un 4 y en el ojo un 6, seguimos eniendo un único caso a o able de los 36 posibles, lo que coincide con la p obabilidad de que salga un 4 en el azul mul iplicado po la p obabilidad 16 Capí ulo 3. Sis emas de ecomendación de que salga un 6 en el ojo. Si nos abs aemos de casos conc e os se puede demos a que la p obabilidad de que ocu an dos sucesos independien es simul áneamen e es la mul iplicación de la p obabilidad de que ocu a cada uno po sepa ado ( ó mula 3.2). Cuando esc ibimos P(A, B)nos e e imos a la p obabilidad de que ocu an los sucesos AyBa la ez, P(A, B) = P(A)·P(B)(3.2) Si aho a es ablecemos que sabemos que en el dado azul ha salido el 4, la p obabilidad de que ocu an ambos sucesos se á la mul iplicación de la p obabilidad que salga 6 en el ojo condicionado a que ha salido 4 en el azul, po la p obabilidad de que ocu a 4 en el azul (3.3). La p obabilidad de que ocu a un suceso Acondicionado a que ha ocu ido Bse deno a como P(A|B). P(A, B) = P(A|B)·P(B)(3.3) Y como que ocu an ambos sucesos simul áneamen e es independien e del o den podemos es ablece la igualdad que se mues a en la ó mula 3.4. Sus i uyendo P(A, B)po la pa e de echa de la igualdad de la ó mula 3.3 y análogamen e P(B, A), y despejando P(A|B)ob enemos la ó mula 3.5. Es a úl ima ó mula es lo que se conoce como eo ema de Bayes. P(A, B) = P(B, A)(3.4) P(A|B) = P(B|A)·P(A) P(B)(3.5) Ex endiendo el eo ema, supongamos que sabemos que a ios sucesos han ocu ido y que emos sabe la p obabilidad de que ocu a o o suceso. Pa a ello, en la ó mula 3.5, sus i uimos donde pone B po la his o ia de sucesos que han ocu ido y ob enemos la o mula 3.6. La his o ia de sucesos la esc ibi emos como B0, ..., Bn. El elemen o P(B0, ..., Bn|A)de la ó mula se e ie e a la p obabilidad de que ocu a la his o ia de sucesos en la hipó esis de que sabemos que ha ocu ido el suceso A. P(A|B0, ..., Bn) = P(B0, ..., Bn|A)·P(A) P(B0, ..., Bn)(3.6) Pa a aplica el eo ema de Bayes se á necesa io calcula los elemen os de la pa e de echa de la ecuación 3.6. Calcula P(A), la p obabilidad a p io i de cada uno de los í ems a ecomenda , suele se un cálculo i ial. Sin emba go, P(B0, ..., Bn|A)no lo es an o. Po ello se suele aplica una ap oximación naï e, asumiendo que odos los sucesos B0has a Bnson independien es en e sí. Con lo que aplicando la ó mula 3.2, la exp esión queda ía como Qn i=0 P(Bi|A). En lenguaje na u al es la mul iplicación de las p obabilidades 3.3. Técnicas de ecomendación no in o madas 17 Bicondicionadas a que ha ocu ido A, donde i oma alo es desde 0 has a n, y Bi ep esen a cada í em de la his o ia de sucesos. Así mismo, es a asunción de independencia de sucesos hace que, aplicando una ex ensión de la ó mula 3.2, se ans o me ambién en una mul iplicación de p obabilidades, quedando la ó mula inal como en 3.7:. P(A|B0, ..., Bn) = P(A)·Qn i=0 P(Bi|A) Qn i=0 P(Bi)(3.7) Es as p obabilidades P(Bi|A)pueden calcula se como el núme o de eces que ocu en BiyAa la ez, di idido po el núme o de eces que ocu e A independien emen e de que haya ocu ido Bi. P(Bi|A) = P(Bi, A) P(A)(3.8) Un p oblema que suele apa ece es que P(Bi|A)sea 0 pa a algún i, lo que p o oca que el esul ado inal de aplica la ó mula an e io sea siemp e 0. La azón de que es o ocu a no malmen e es po que no hay su icien e in o mación sob e el dominio pa a de e mina el alo de P(Bi|A). Si se die a el caso, se pod ía es ima un alo de pa ida pa a dicha exp esión. Una o ma de hace lo es aplica la es imación de Laplace (Cla k y Boswell (1991)). Se p opone que pa a soluciona la ausencia de su icien es da os se asuma que exis e un elemen o de cada miemb o del dominio. Es deci , si pa a Aexis en dos es ados, po ejemplo, Aes un aso que puede es a lleno o es a acío, en onces end íamos que asumi que exis en al menos dos asos uno lleno y o o acío. Si aplicamos es a es imación a la ó mula 3.8 nos queda ía la ó mula 3.9, donde x ep esen a el núme o de es ados pa a A, en es e ejemplo 2. En un caso con más es ados, po ejemplo Aes una bola quede se de colo e de, ojo, azul, blanco o neg o, pues como hay 5 colo es x oma ía el alo 5, asumiendo que exis e al menos una bola de cada colo . P(Bi|A) = P(Bi, A)+1 P(A) + x(3.9) Aunque la es imación ayuda siemp e que engamos casos en que P(Bi, A) alga 0, se ha de aplica a odos los casos incluso aquellos en los que P(Bi, A) alga 1. De es a mane a aunque las p obabilidades que den 0 o alo es ce - canos a 0 se bene icien de la es imación, las que no ambién se bene icia án aunque en meno medida. Capí ulo 4 Jueces en línea Resumen: En es e capí ulo se explica á qué son los jueces en línea mencionando algunos ejemplos. También se en a á a ondo en la ex- plicación sob e el juez en línea de ¡Acep a el e o! y ambién en o o juez en línea que además iene inco po ado un SR. 4.1. ¿Qué son los jueces en línea? Los jueces en línea son eposi o ios de p oblemas con un e aluado de soluciones pa a comp oba au omá icamen e si un p og ama es solución a un p oblema dado. Pa a ello el sis ema compila el código del p og ama en iado, lo ejecu a con una se ie de casos de p ueba como en ada y comp ueba si las salidas ob enidas coinciden con las que el sis ema iene asociadas como co ec as. Además suelen medi pa áme os ex a, como pueden se el iempo de ejecución y la memo ia u ilizada. Una ez hecho es o, el juez p opo ciona un e edic o. Dos ejemplos de jueces en línea son UVa Online Judge1y ¡Acep a el e o!2. Es os sis emas se u ilizan p incipalmen e en el ámbi o de los concu sos de p og amación, así como pa a p ac ica pa a es os, aunque ambién se u ilizan en el ámbi o académico pa a pone en p ác ica los conocimien os adqui idos en los aulas. Algunos de ellos, como el UVa Online Judge, además de se eposi o ios de p oblemas son capaces de aloja concu sos, omen ando así la compe i i- idad y el desa ollo de las habilidades de los usua ios. En ocasiones, el eposi o io de p oblemas añade e ique as a los p oble- mas pa a clasi ica los según los concep os de p og amación necesa ios pa a esol e los, po la emá ica del enunciado, po su apa ición en concu sos, e c. 1h ps://u a.onlinejudge.o g 2h ps://www.acep ael e o.com 19 20 Capí ulo 4. Jueces en línea Es una mane a de acili a a los usua ios encon a p oblemas que puedan ajus a se a lo que es án buscando. Po lo an o, en es as pla a o mas exis en usua ios que seleccionan p oble- mas de un ex enso eposi o io y ealizan en íos de código pa a soluciona los. Se pueden es ablece en onces elaciones en e usua ios en unción de los en íos. Los jueces en línea se hacen cada ez más popula es g acias a los concu - sos de p og amación que p omocionan emp esas como Google con el Hash- code3, o como la compañía de mó il Tuen i con el Tuen i Challenge4. 4.2. El juez en línea ¡Acep a el e o! ¡Acep a el e o! es un juez en línea desa ollado po algunos p o eso es de la Facul ad de In o má ica de la Uni e sidad Complu ense de Mad id. Además de se un ex enso eposi o io de p oblemas, ¡Acep a el e o! es un co ec o au omá ico, es deci , se puede subi el código c eado como solución a un p oblema del eposi o io pa a que ¡Acep a el e o! lo compile, ejecu e y p opo cione un e edic o. Los e edic os de ¡Acep a el e o! an más allá de un simple Bien o Mal, es más, exis en has a once e edic os dis in os, de los cuales dos no dependen del esul ado del p oblema, sino que son po e o es in e nos o po que aún no se ha e aluado la solución, y uno es un echazo del código po mo i os de segu idad. Los o os ocho son los siguien es: Accep ed (AC): Acep ado. Es el e edic o más deseado, pues signi ica que la solución es co ec a. P esen a ion e o (PE): E o de p esen ación. Se p oduce cuando la solución al p oblema es co ec a, pe o al mos a la solución, los sal os de línea o espacios en blanco di ie en de los que debe ían se . W ong Answe (WA): Respues a inco ec a. El p og ama no p oduce las salidas espe adas, po an o no es solución al p oblema dado. Compila ion E o (CE): E o de compilación. El sis ema no ha po- dido compila el código po que iene e o es. Run Time E o (RTE): E o du an e la ejecución. Se p oduce cuando la solución al se ejecu ada p oduce algún ipo de excepción, como di isiones po ce o o índices ue a de ango. Time Limi Exceeded (TLE): Tiempo lími e supe ado. Se p oduce cuan- do la solución dada a da en ejecu a se más iempo del espe ado, po ejemplo po culpa de bucles in ini os o soluciones no op imizadas. 3h ps://codingcompe i ions.wi hgoogle.com/hashcode 4h ps://con es . uen i.ne 4.2. El juez en línea ¡Acep a el e o! 21 Memo y Limi Exceeded (MLE): Memo ia lími e supe ada. Se p oduce cuando la solución al p oblema pide más memo ia de la pe mi ida. Ou pu Limi Exceeded (OLE): Salida lími e supe ada. Se p oduce cuando el p og ama solución gene a una salida más amplia de la pe - mi ida. Cuando un usua io ealiza un en ío y ecibe una espues a e ónea es habi ual que e ise el código y en poco iempo ealice un nue o en ío con la espe anza de ob ene el e edic o AC ( Accep ed). Es o no quie e deci que cuando un usua io ya iene un AC en un p oblema no pueda ealiza nue os en íos. ¡Acep a el e o! cuen a con un anking pa a cada p oblema de modo que las soluciones más óp imas se encuen en en posiciones más ele adas. Po ello, a pesa de que un usua io haya ecibido ya un AC pa a un p oblema no es de ex aña que po compe i i idad op imice su solución y ealice o o en ío pa a subi en el anking. Con es o aho a se pueden ca ego iza los p oblemas pa a un usua io en es es ados: Resuel os: el usua io ha ealizado uno o a ios en íos y al menos en uno de ellos ha ob enido AC. In en ados: el usua io ha ealizado uno o a ios en íos, pe o en ninguno de ellos ha ob enido como e edic o un AC. No in en ados: el usua io no ha ealizado ningún en ío, ya sea po que el p oblema le pa ece muy complicado o po que no lo ha leído oda ía. Po o o lado, ¡Acep a el e o! incluye una ca ego ización en sus p o- blemas, una en aja an o pa a algunos modelos de ecomendación, que se basan en e ique as y mé odos di ec os, como ambién pa a los usua ios, que pueden ma ca se i ine a ios en base a las ca ego ías pa a p ac ica una ama especí ica. El juez de ¡Acep a el e o! es capaz de compila soluciones en di e en es lenguajes de p og amación (C, C++ y Ja a) y o ece un conjun o limi ado de uso de lib e ías es ánda pa a limi a a los usua ios el uso de ecu sos pa a que sean ellos los que engan que diseña los al esol e los p oblemas, así como e i a que el usua io pueda ejecu a código que no se quie e que se emplee pa a la esolución de los eje cicios. En la sección de p egun as ecuen es de ¡Acep a el e o! se encuen a con más de alle es e ipo de in o mación además de in o mación ex a, en e la que incluye el compo amien o del Juez, e edic os, las lib e ías acep adas, y más in o mación ú il an o pa a los usua ios pa a aquel que quie a en ende con mayo p o undidad cie os aspec os del juez que aquí se hayan explicado sin en a al de alle. Se puede obse a la apa iecia de ¡Acep a el e o! en la igu a 4.1 22 Capí ulo 4. Jueces en línea Figu a 4.1: Página de inicio de ¡Acep a el e o!. 4.3. El juez en línea Ka is Ka is5es un juez online que al igual que ¡Acep a el e o! iene un amplio eposi o io de p oblemas con su e aluado co espondien e, y que al igual que UVa Online Judge es capaz de ges iona concu sos. Además incluye un SR que ecomienda a ios p oblemas ag upados en cua o ca ego ías en unción de su di icul ad: i ial,easy,medium yha d (Re illa e al. (2008)). Es a di icul ad no es á p ees ablecida, sino que po el con a io a ía en unción del núme o de en íos co ec os y o ales. Pa a calcula dicha di i- cul ad u iliza una a ian e de ELO a ing sys em (Wikipedia (Elo a ing sys em)), que, esumidamen e, lo que hace es da meno di icul ad a los p oblemas que han sido esuel os po muchos usua ios en pocos en íos, y mayo di icul ad a aquellos que han sido esuel os po pocos pe o in en a- dos po muchos. Aquellos p oblemas que ienen pocos en íos se clasi ica ían con di icul ad media, ya que no se dispone de in o mación su icien e pa a de e mina la. Además es e sis ema ambién e alúa al usua io, eniendo en cuen a los p oblemas que ha esuel o, su pun uación o al y la p ecisión de sus en íos. De es a mane a pa a un usua io nue o el p oblema que se le ecomienda como di ícil puede se pa a o o usua io ecomendado como ácil, ob eniendo así una ecomendación más aco de con el ni el del usua io. Se puede obse a la apa iencia de Ka is en la igu a 4.2 5h ps://open.ka is.com/ 4.3. El juez en línea Ka is 23 Figu a 4.2: Página de inicio de Ka is. 30 Capí ulo 5. E aluación de ecomendado es 2014-02 2014-03 2014-04 2014-05 2014-06 2014-07 2014-08 2014-09 2014-10 2014-11 2014-12 2015-01 2015-02 2015-03 2015-04 2015-05 2015-06 2015-07 2015-08 2015-09 2015-10 2015-11 2015-12 2016-01 2016-02 2016-03 2016-04 2016-05 2016-06 2016-07 2016-08 2016-09 2016-10 2016-11 2016-12 2017-01 2017-02 2017-03 2017-04 2017-05 2017-06 2017-07 2017-08 2017-09 2017-10 2017-11 2017-12 2018-01 2018-02 2018-03 2018-04 2018-05 2018-06 2018-07 2018-08 2018-09 2018-10 0 2500 5000 7500 10000 12500 15000 17500 En íos Figu a 5.2: G á ica de en íos desde la c eación de ¡Acep a el e o!. 5.2.1. Análisis del núme o de en íos Es a sección a a de analiza los da os con los que se a a ealiza la e aluación de nues os ecomendado es, pa a así pode en ende de an emano posibles si uaciones que se puedan encon a en las ecomendaciones du an e la ase de en enamien o y ene lo en cuen a a la ho a de ealiza el análisis de los esul ados. En la g á ica de la igu a 5.2, se mues a el núme o de en íos ealizados en ¡Acep a el e o! desde su pues a en ma cha el 17-02-2014 has a el 23-10- 2018. Fecha has a la cual enemos da os pa a la ealización de es e p oyec o. Se han ealizado un o al de 258.967 en íos, donde el 50 % de es os se ealizó an es de inales de ma zo de 2017, lo que signi ica que el o o 50 % ealizados pos e io men e se ha conseguido en la mi ad de iempo. El g an aumen o del núme o de en íos se debe a que con el iempo ¡Acep a el e o! se ha popula- izado más y más, sob e odo en el ámbi o de la Facul ad de In o má ica de la Uni e sidad Complu ense de Mad id, ya que los p o eso es que lo c ea on han sabido llama la a ención de los alumnos median e concu sos de p og a- mación, y la de o os p o eso es p oponiéndolo como una he amien a pa a que los alumnos puedan p ac ica los conocimien os adqui idos en clase. Se obse a en la g á ica que exis en a ios picos. Se epi e siemp e un pico al ededo de ma zo y o o en diciemb e. Es p obable que el núme o de en íos aumen e en esas echas debido a es concu sos de p og amación o ganizados po los undado es, AdaBy on,P og amaMe yLas 12 UVas. El pico que se suele epe i en oc ub e pod ía debe se a que as un mes desde el inicio de cu so en sep iemb e, los p o eso es p oponen p oblemas a sus alumnos y, como es habi ual, la mayo ía empieza a esol e los y luego g an pa e de ellos abandonan la pla a o ma o disminuyen su ac i idad. Capí ulo 6 Recomendado Bayesiano Resumen: Es e capí ulo desc ibe la implemen ación de un ecomen- dado p obabilís ico que aplica el eo ema de Bayes, la e aluación de dicho ecomendado en unción de unas mé icas y el análisis de los esul ados ob enidos con dichas mé icas. En los capí ulos an e io es se han desc i o dis in os ipos de SR, el juez online de ¡Acep a el e o! y di e en es mé icas que nos ayuden a comp oba si un ecomendado es á dando buenos esul ados. En es e, pasamos a de alla el modo en el que se han usado las ideas de los ecomendado es bayesianos pa a aplica es e ipo de ecomendación en ¡Acep a el e o!. Un ecomendado bayesiano es un SR que u iliza el eo ema de Bayes pa- a a e igua la p obabilidad que un elemen o le gus e a un usua io, basándose en el pe il de es e. Ob eniendo las p obabilidades de odos los elemen os se o denan de mayo a meno p obabilidad pa a ecomenda le los mejo es. Dicho pe il del usua io se puede ex ae del his o ial de en íos ealizados en ¡Acep a el e o!, ya que se nos ha p opo cionado una base de da os que con iene es a in o mación. A cada p oblema se le es ablece á un es ado pa a cada usua io. Hemos conside ado dos a ian es a la ho a de es ablece los es ados. Una de ellas oma á como es ados posibles pa a un p oblema: esuel o, in en ado (pe o no esuel o) y no in en ado. La o a a ian e con empla á solo dos es ados: esuel o y no esuel o (la unión de los in en ados y los no in en ados). Es os es ados es án desc i os en la sección 4.2. Den o de cada una de es as dos a ian es se ha decidido ealiza una ap oximación aplicando la es imación de Laplace y o a aplicando una es- imación a bi a ia. En consecuencia ob end emos cua o e siones de eco- mendado es bayesianos, las cuales se analiza án y se decidi á cual ha sido mejo pa a el caso conc e o de ¡Acep a el e o!. 31 32 Capí ulo 6. Recomendado Bayesiano 6.1. Implemen ación Como se eco da á de la sección 3.3.5, los ecomendado es bayesianos se basan en el eo ema de Bayes cuya ó mula, epe ida aquí pa a mayo cla idad, es: P(A|B0, ..., Bn) = P(B0, ..., Bn|A)·P(A) P(B0, ..., Bn)(6.1) También eco damos que el cálculo de P(B0, ..., Bn|A)de la ó mula an e- io es bas an e complejo. Po es e mo i o se ha omado la decisión de asumi que los sucesos B0, ..., Bnson independien es en e sí. En nues o con ex o, asumimos que la p obabilidad de que un usua io esuel a un p oblema Xes independien e de que esuel a el p oblema Y. Es o no es del odo cie o ya que p oblemas pa ecidos end án mayo p obabilidad de es a en el mismo es ado. Po an o, al inal la ó mula que usa emos, ambién epe ida po como- didad, es: P(A|B0, ..., Bn) = P(A)·Qn i=0 P(Bi|A) Qn i=0 P(Bi)(6.2) En el caso de nues o ecomendado : B0, ..., Bnes la in o mación conocida del pe il del usua io. Más con- c e amen e, Bies el es ado de esolución de cada p oblema del sis ema pa a el usua io al que es amos ecomendando. Aes el suceso cuya p obabilidad que emos conoce , en pa icula la p obabilidad de que el usua io con ese pe il sea capaz de esol e el p oblema A. En elación a los Bi, como se con ó en la sección 4.2, un p oblema puede es a , pa a un usua io, en los siguien es es es ados: Resuel os: el usua io ha ealizado uno o a ios en íos y al menos en uno de ellos ha ob enido AC. In en ados: el usua io ha ealizado uno o a ios en íos, pe o en ninguno de ellos ha ob enido como e edic o un AC. No in en ados: el usua io no ha ealizado ningún en ío, ya sea po que el p oblema le pa ece muy complicado o po que no lo ha leído oda ía. Es os es ados se pueden educi a “ esuel o / no esuel o” jun ando los es ados “in en ado / no in en ado” en el es ado “no esuel o”. 6.1. Implemen ación 33 Desde el pun o de is a de un ecomendado , nos hemos plan eado si la in o mación de sabe que un usua io ha acasado al esol e un p oble- ma (es ado “in en ado”) es o no signi ica i a, de modo que hemos hecho dos a ian es dis in as del ecomendado , cada una con un modelo de es ados dis in o. En el p ime o usamos la e sión simpli icada usionando los “in en- ados” con los “no in en ados”, de modo que los es ados son “ esuel o” y “no esuel o”. Llamamos a ese ecomendado “RN” po las siglas de ambos posi- bles es ados. El segundo end á en cuen a los es es ados y lo llama emos “RIN”, ambién po las siglas de los posibles es ados. Po o o lado, como se con ó en el capí ulo 3.3.5, al aplica la ó mula 6.2 nos encon amos con muchos P(Bi|A)que alen 0, causando que el esul ado inal sea ambién 0. Pa a a a es e p oblema hemos op ado po dos mane as dis in as. Una u ilizando la es imación de Laplace y la o a omi iendo los ce os. Si mezclamos las dos o mas de conside a los es ados con las dos mane as de a a los ce os ob enemos 4 posibles combinaciones que son las siguien es: RN: Se á el ecomendado que conside a dos es ados de un p oblema pa a un usua io y que aplica la es imación de Laplace. Las siglas ienen de los es ados “Resuel o” y “No esuel o”. RN-ce os: Es e ecomendado se di e encia á del an e io en la es ima- ción. En ez de aplica la es imación de Laplace, a la ho a de mul iplica igno a á los ce os. RIN: Al con a io que los an e io es, es e ecomendado conside a á los es es ados “Resuel o”, “In en ado” y “No esuel o”, de los que salen las siglas. También implemen a á la es imación de Laplace. RIN-ce os: Es e úl imo ecomendado conside a á los mismos es ados que el RIN, pe o igno a á los ce os en las mul iplicaciones igual que el RN-ce os. Pa a cada e sión dado un usua io con un pe il B0, ..., Bn, que emos calcula la p obabilidad de que es e esuel a cada uno de los eje cicios, es deci los P(A|B0, ..., Bn)pa a odos los p oblemas A, y o dena los de mayo a meno . Po la ecuación 6.2 an e io , es o signi ica que enemos que calcula la p obabilidad simple de cada p oblema y la p obabilidad condicionada de cada p oblema con cada p oblema, P(A)yP(Bi|A) espec i amen e. U iliza emos pa a ello la in o mación del pe il de odos los usua ios. El denominado , Qn i=0 P(Bi), es la p obabilidad de que haya un usua io con ese pe il y se calcula como la mul iplicación de las p obabilidades simples de los p oblemas Bi. 34 Capí ulo 6. Recomendado Bayesiano El denominado de la ecuación no depende en ningún caso del p oblema del que que emos sabe su p obabilidad. Po es e mo i o, pa a un mismo usua io el denominado a a ale siemp e lo mismo. Dado que el in úl imo es o dena las p obabilidades podemos omi i lo, pues no nos in e esa el alo exac o sino el o den ela i o. Si se quisie a ob ene la p obabilidad eal hab ía que calcula lo. Empezamos con la p obabilidad simple. U iliza emos la in o mación a p io i de la base de da os, que ha á las eces de “en enamien o” de nues o ecomendado . Se a a calcula como se mues a en la o mula 6.3, di idiendo la can idad de usua ios que han esuel o el p oblema Aen e el núme o de usua ios o ales. En la ó mula, U ep esen a al conjun o de usua ios, y E(A, u) ep esen a el es ado del p oblema Apa a el usua io ude los es ados desc i os an es. Según la e sión del ecomendado (“RIN” o “RN”) end emos más o menos opciones P(A) = |{u|E(A, u) == “R00}| |U|,∀u∈U(6.3) Po o o lado, la p obabilidad condicionada de Ahabiendo esuel o Bise calcula di idiendo el núme o de usua ios que ienen los dos p oblemas esuel- os, en e el núme o de usua ios que han esuel o Bi, independien emen e de que hayan esuel o o no el A, al como se mues a en la ó mula 6.4. También se ían necesa ias las ablas de p obabilidad condicionada de Ano habien- do esuel o Bi, y en el ecomendado “RIN” ambién es necesa io calcula la p obabilidad condicionada de Ahabiendo in en ado Bi. Es os cálculos se hacen aplicando análogamen e la misma ó mula, sus i uyendo donde pone “R00 en E(B, u) == “R00 po “N00 y po “I00 espec i amen e. P(Bi|A) = |{u|E(A, u) == “R00 ∧E(Bi, u) == “R00}| |{u|E(A, u) == “R00}| ,∀u∈U(6.4) De nue o, es o se calcula a pa i de los da os de en enamien o de la base de da os. En la p ác ica, muchas de las p obabilidades P(Bi|A)que hemos calculado dan como esul ado 0, po que hay pa ejas de p oblemas que no han sido esuel os simul áneamen e po el mismo usua io. Las e siones “RN-ce os” y “RIN-ce os” eliminan esos casos igno ándolos, o lo que es lo mismo, sus i uyendo el 0 po 1. Las o as e siones u ilizan la ap oximación de Laplace, que consis e en asumi que hay al menos un usua io que iene el p oblema Bien el es ado “R00, o o usua io en el es ado “N00, y en el “RIN” 6.2. Análisis de esul ados 35 o o en el “I00. Con es a mejo a la ó mula an e io queda inalmen e: P(Bi|A) =|{u|E(A, u) == “R00 ∧E(Bi, u) == “R00}| + 1 |{u|E(A, u) == “R00}| +x,∀u∈U dondex =(2,si RN 3,si RIN (6.5) Con odo es o, podemos calcula ya la p obabilidad que iene un usua io de esol e cualquie p oblema, que nos si en de base pa a la ecomendación. Pa a lle a a cabo los cálculos de las p obabilidades pa a los di e en es usua ios se á necesa io gene a ablas y ope a sob e ellas. Po ello, se ha omado la decisión de ealiza la implemen ación en Py hon ya que dispone de unas lib e ías llamadas Numpy yPandas McKinney (2011) con la que se op imizan los cálculos g acias a la pa alelización de es os. Dicha op imiza- ción es necesa ia, pues si se hicie a una implemen ación con las es uc u as básicas del lenguaje, hab ía que ealiza las ope aciones de o ma secuencial. Es o p o oca ía que con g andes can idades de da os las ope aciones a den un iempo excesi o. Po ejemplo, con los da os que se nos han p opo ciona- do después de 6h de ejecución aún no se hab ían ob enido esul ados. Sin emba go, u ilizando la lib e ía de Pandas el iempo o al de los cálculos se educe a una media de 7 minu os, pe o pa a ecomendaciones indi iduales el cos e de iempo es de 5 a 7 segundos. 6.2. Análisis de esul ados T as la implemen ación de las cua o a ian es del ecomendado baye- siano desc i as, se p ocede a analiza los esul ados ob enidos pa a cada una de las mé icas. Se compa a án siemp e las di e en es implemen aciones (RN, RIN,RN-ce os yRIN-ce os), a in de es udia cuál de ellas p ome e mejo es esul ados. La e sión ganado a se á la que se u iliza á pa a compe i con la mejo e sión del ecomendado po pesos de los K-Vecinos que se explica á en el p óximo capí ulo. Pa a isualiza mejo los da os los mos a emos en g á icas. El eje ho- izon al ep esen a el núme o de p oblemas ecomendados. El eje e ical indica el alo de la mé ica co espondien e. 6.2.1. P ecision La g á ica 6.1 pe mi e compa a la p ecisión de las cua o a ian es del ecomendado con dis in o núme o de p oblemas ecomendados al usua io. Lo p ime o a des aca es la línea del SR RN-ce os, pues o que es la única que iene una o ma dis in a y empieza en un alo de 0.001 como mues a 36 Capí ulo 6. Recomendado Bayesiano 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 12345678910 P ecision Can idad de p oblemas ecomendados RIN RIN-ce os RN RN-ce os Figu a 6.1: G á ica compa ación de p ecisiones. la abla 6.1 mien as que los o os es ecomendado es empiezan con alo es supe io es a 0.25. An es de explica el po qué es e alo es an bajo, hay que en ende qué signi ica que sea an bajo y luego suba ápidamen e. Según la de inición de p ecision, una subida en la p ecisión signi ica ía que se han ecomendado p oblemas de bajo in e és al usua io an es que los de al o in e és. Y es es o lo que ha ocu ido con el RN-ce os, se ha ecomendado a casi odos los usua ios en p ime luga el p oblema de El p o eso de música, el cual en la ase de en enamien o había sido esuel o po un único usua io, y en la de e aluación po 2. Resul a que es e p oblema es bas an e complicado, pe o como lle aba poco iempo en ¡Acep a el e o! al aba in o mación. Al calcula la p obabilidad de que un usua io con pe il B0, ..., Bn esuel a lo esuel a, enemos: P(Musica|B0, ..., Bn) = n Y i=0 P(Bi|Musica)·P(Musica) = P(Musica) Los posibles alo es pa a P(Bi|Musica)dado que solo un usua io lo ha esuel o son 0 si Bino lo ha esuel o y 1 si lo ha esuel o. Es e usua io en 6.2. Análisis de esul ados 37 12345678910 RN 0.314 0.249 0.202 0.172 0.158 0.147 0.141 0.137 0.131 0.130 RIN 0.288 0.224 0.178 0.156 0.141 0.135 0.124 0.119 0.112 0.107 RN-ce os 0.001 0.155 0.164 0.150 0.136 0.131 0.125 0.122 0.121 0.118 RIN-ce os 0.291 0.224 0.177 0.155 0.140 0.134 0.123 0.118 0.110 0.106 Tabla 6.1: Tabla p ecision conc e o enía casi 300 p oblemas esuel os y solo había in en ado 1 sin éxi o. Po lo an o, la o mula an e io aplicada a es e usua io queda ía: P(Musica|B0, ..., Bn)=1·... ·1·P(Musica) = P(Musica) En los ecomendado es que aplican la es imación de Laplace (RN yRIN ) al conside a que exis e al menos un usua io pa a cada es ado, ya no exis e la posibilidad de que P(Bi)sea ni 1 ni 0, sino que es os se ans o ma ían 0.666 y 0.333 pa a el RN, y en 0.5 y 0.25 pa a el RIN. Es o hace que ya no es é en la p ime a posición. En RIN-ce os no ocu e es e p oblema po que al conside a los p oblemas in en ados se a o ece mucho la p obabilidad de esol e p oblemas áciles pues hay muchos di íciles in en ados habiendo esuel o áciles. Po ello aun- que El p o eso de música ob enga igualmen e p obabilidades al as, los áciles ob ienen mayo es p obabilidades y son ecomendados p ime o. En el ecomendado RN se ha aplicado la ap oximación de Laplace y po eso la es imación ha p o ocado que los ce os que con ie an en o os decimales, educiendo así mucho la p obabilidad de que es e sea esuel o y po an o pasando a se ecomendado bas an e más a de, y dejando en los p ime os luga es los e dade amen e más p obables. Es po eso que el ecomendado RN ob iene unos alo es de p ecision según lo espe ado, con o ma descenden e. Que el alo inicial sea 0.31, apa en emen e bajo, puede debe se al hecho de que en ealidad no se ha ecomendado nada al usua io sino que es una p edicción de su compo amien o (sección 5.2). Así mismo, se obse a que las líneas de p ecision de los ecomendado- es RIN yRIN-ce os, son p ác icamen e coinciden es y que ambas siguen la o ma espe ada, al igual que el ecomendado RN. An es de es udia es a casi coincidencia amos a empeza explicando po qué en el ecomendado RIN-ce os no ocu e igual que en el RN-ce os, donde el p ime p oblema ecomendado no es el más adecuado. Pod íamos pensa que se debe a que la p obabilidad de esol e es e p oblema se educe al conside a los in en ados. Sin emba go no es así. La p obabilidad de esol e lo es exac amen e la mis- ma, pues o que en la ase de en enamien o el único usua io que esol ió dicho p oblema, ambién es el único que ealizó un en ío. En onces, queda pensa que la p obabilidad de esol e o os p oblemas ha aumen ado. En e ec o, 38 Capí ulo 6. Recomendado Bayesiano 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 1 2 3 4 5 6 7 8 9 10 One-Hi Can idad de p oblemas ecomendados RIN RIN-ce os RN RN-ce os Figu a 6.2: G á ica compa ación de one-hi . al ene en cuen a los p oblemas in en ados se ob ienen unas p obabilidades más al as pa a algunos p oblemas. Es ambién po es o que la ap oximación de Laplace hace a ia mínimamen e las p obabilidades inales, y en con- secuencia los ecomendado es RIN yRIN-ce os ealizan ecomendaciones p ác icamen e idén icas. 6.2.2. One-hi Al con a io que en la mé ica p ecision, el one-hi se espe a que enga una endencia ascenden e, dado que es ob io que cuan os más p oblemas sean 12345678910 RN 0.314 0.390 0.427 0.457 0.485 0.509 0.550 0.603 0.620 0.632 RIN 0.288 0.352 0.382 0.420 0.443 0.458 0.466 0.503 0.509 0.525 RN-ce os 0.001 0.311 0.387 0.426 0.457 0.484 0.509 0.550 0.604 0.621 RIN-ce os 0.291 0.352 0.382 0.420 0.442 0.461 0.471 0.506 0.512 0.528 Tabla 6.2: Tabla one-hi 6.2. Análisis de esul ados 39 12345678910 RN 0.039 0.061 0.075 0.085 0.098 0.109 0.122 0.136 0.146 0.161 RIN 0.035 0.055 0.066 0.077 0.087 0.101 0.108 0.118 0.125 0.133 RN-ce os 0.000 0.038 0.061 0.074 0.084 0.097 0.109 0.121 0.136 0.146 RIN-ce os 0.036 0.055 0.066 0.076 0.086 0.099 0.107 0.117 0.123 0.131 Tabla 6.3: Tabla Recall ecomendados más posibilidades hay de que al menos uno sea del ag ado del usua io. En la igu a 6.2 se comp ueba que es o se cumple. P ime amen e se obse a que se cumple que con un p oblema ecomen- dado one-hi yp ecision son iguales. Se des aca el mismo alo p óximo a ce o del ecomendado RN-ce os, cuya explicación es equi alen e a la dada en el apa ado an e io . Del mismo modo, la casi coincidencia del one-hi de RIN yRIN-ce os, se debe a que ealizan p ác icamen e las mismas ecomen- daciones, como se explica al inal del apa ado an e io . El ecomendado encedo uel e a se el RN que alcanza un one-hi del 50 % al ecomenda 6 p oblemas y del 63 % al ecomenda 10 p oblemas. Lo que hace pensa que el hecho de conside a las p obabilidades de esol e un p oblema habiendo in en ado o os, como es el caso de los ecomendado es RIN, en luga de a o ece a la ecomendación como se espe aba que hicie a, la empeo a lige amen e. Si con la p ecisión se espe a que aumen e al inclui el ecomendado en ¡Acep a el e o!, del mismo modo se espe a que aumen e ambién el one-hi , lo cual es espe anzado . 6.2.3. Recall Es de espe a que desde el co e de la base de da os has a el inal los usua- ios hayan esuel o muchos p oblemas, y po ello ob ene alo es de ecall bajos no signi ica habe ealizado malas ecomendaciones, como se explica en la sección 5.1 con la de inición de ecall. En es e caso conc e o es amos e aluando ecomenda has a 10 p oblemas. Pues bien, a pa i del co e hay 720 usua ios que han esuel o más de 10 p oblemas, y en e ellos suman un o al de 18.512 p oblemas esuel os. Si asumié amos que los diez p ime- os p oblemas esuel os de cada uno de ellos ha sido ambién ecomendado, suma ían 11.512 p oblemas esuel os pe o no ecomendados. Una ez más se ob ienen alo es simila es pa a los ecomendado es RIN yRIN-ce os, es de espe a como ya se ha mencionado an e io men e. Igual- men e pasa con el ecomendado RN-ce os que empieza en un alo muy p óximo a ce o. Y de nue o el ecomendado RN es el que ob iene mejo es esul ados. 46 Capí ulo 7. Recomendado de pesos po los K-Vecinos más simila es Figu a 7.3: Relaciones en e usua ios (nodos), según la can idad de p oblemas esuel os en común (g oso de la línea) en ¡Acep a el e o!. caó ico y poco ú il un ejemplo con can idades mayo es. El ecomendado po pesos de los K-Vecinos más simila es, analiza un juez en línea como las dos úl imas igu as mencionadas, calculando ese es ilo de elaciones (en e usua ios) a pa i de da os como los que la igu a 7.1 ep esen a. Po lo gene al, es e algo i mo ecomenda á p oblemas pe sonalizados a un usua io según los p oblemas ealizados po sus ecinos, de al o ma que po un lado el ecomendado asegu a que el usua io a se ecomendado end á buena asa de éxi o al esol e un p oblema de los ecomendados, y po o o lado, se da una ecomendación pe sonalizada basada en el c i e io de usua ios simila es a es e, que han esuel o o os p oblemas que aún no ha ealizado el usua io a ecomenda y es la simili ud en e usua ios la que le da un peso impo an e a esos p oblemas no esuel os aún po el usua io al que se le a a ealiza la ecomendación. Se puede conside a po lo an o, que a pa e de ese éxi o al o, se es á ealizando una ecomendación po gus os de usua ios, ya que si un usua io simila a mí ha que ido hace un p oblema y lo ha conseguido, segu amen e yo ambién enga ganas de in en a el mismo p oblema y ambién pueda 7.1. Funcionamien o del ecomendado po K-Vecinos más simila es 47 consegui lo. 7.1. Funcionamien o del ecomendado po K-Vecinos más simila es Como ya se ha comen ado, es e ecomendado iene simili udes con los Nea es Neighbo hood Hall e al. (2008) mencionado en la sección 3.3.1. La di e encia de es e ecomendado es, que as ob ene los ecinos más ce - canos, es os no se usan pa a clasi ica en clases al usua io y gene a una ecomendación en base a la clase donde se ha clasi icado. Se usa la co ela- ción que de e mina la dis ancia de los ecinos, y se aplica es a co elación pa a asigna pesos a los p oblemas que ienen los ecinos y que el usua io a ecomenda no ha in en ado. El ecomendado in e namen e maneja una ma iz donde sus ilas e- p esen an los usua ios, sus columnas los p oblemas, y el alo ila/columna in o ma del es ado. En es e caso el alo dispone únicamen e de dos es ados: conseguido, o el es o de casos que se conside an como no conseguido. Es e es o de casos incluyen en el mismo conjun o, el caso de un usua io que ha in en ado pe o no esuel o un p oblema, y el caso en el que el usua io ni si quie a ha in en ado ealiza lo. El ecomendado ealiza el siguien e algo i mo: Al usua io a ecomenda se le llama á: Owne = O. Pa a un “O”, ob enemos una lis a de los K usua ios más simila es con su co elación co espondien e. Es a lis a se ob iene calculando la co e- lación pa a cada usua io βide la base de da os, con O. Pos e io men e se o dena de mayo a meno . El cálculo de la co elación en e βiyOse basa en, dados los elemen os: •ρO =Conjun o de p oblemas de Owne •ρβi=Conjun o de p oblemas de usua io βi Aho a se de ine la co elación en e dos usua ios como: Co elacion =|ρβiTρO| |ρO|(7.1) T as es e cálculo pa a cada usua io de la base de da os, ob enemos aquellos Nusua ios (βN) con co elación más al a, que ep esen a án los N ecinos más ce canos y c eamos un Dicciona io(D) cuya cla e sea el id del p oblema y el alo indique el peso de la ecomendación. 48 Capí ulo 7. Recomendado de pesos po los K-Vecinos más simila es Es e dicciona io se usa pa a el cálculo de pesos de los p oblemas, pa a después se o denados po es e peso al c ea la lis a de ecomendación. El peso de la ecomendación se de ine inalmen e de la siguien e mane- a: •ρi=P oblema “i” del conjun o de p oblemas exis en es P. ∀ρi/∈ρO → N X j=0 co elacion(βj, O) Nsii ρi∈ρβj(7.2) Al di idi po N, se asegu a que el esul ado nunca sea mayo que 1. El suma o io se ealiza en cada posición del dicciona io co espondien e a cada ρi. Finalmen e se o dena el dicciona io esul ado po los alo- es, ob eniendo una lis a de ecomendación o denada con unos pesos asignados. Como se puede obse a , la ó mula que de ine la co elación es la que nos si e pa a encon a los ecinos más ce canos según esa no ma, y queda nos con los Kmejo es/más simila es. Po o o lado, pa a ob ene la ecomendación en sí, se buscan los p oble- mas que cada K-Vecino ob enido ha esuel o pe o el usua io a ecomenda no, y se o denan según una combinación en e la co elación de cada usua- io y las eces que ese p oblema se epi e en el es o de ecinos (es o es, el cálculo de los pesos de los p oblemas). 7.2. Op imización y modi icaciones An es de en a di ec amen e en es e pun o, cabe des aca que el es u- dio de la acele ación se ha ealizado siemp e bajo las mismas condiciones de ejecución en es e ecomendado , pe o no pa a ambos ecomendado es eali- zados. Es as condiciones de ejecución son las siguien es: P ocesado : In el(R) Co e(TM) i7 860. •F ecuencia: 2.80GHz •Núme o de núcleos: 4 RAM: 8 GB GPU: NVidia Ge o ce 1050Ti GTX 4GB DRR SO: Windows 10 p o Almacenamien o de in o mación: Disco du o con encional 7.2. Op imización y modi icaciones 49 Habiendo indicado con mayo cla idad las condiciones bajo las que se ha es ado ejecu ando el ecomendado , amos a habla en adelan e de iempos y la acele ación de las mejo as. La p ime a e sión del algo i mo abaja con consul as di ec as sob e la BD de ¡Acep a el e o!. Es a, pa a los casos de usos eales, es una opción len a y no e icaz además de cos osa y puede hace que llegue a sa u a una base de da os que no es á pensada pa a in o ma di ec amen e al ecomendado . Se han ealizado nue as e siones mejo adas pa a log a abs ae es a in o mación y ene la en el ecomendado de mane a local. Es e paso, es necesa io si se quie e ene el ecomendado como se icio ex e no y que si a ambién pa a po a lo a o os jueces en línea sin gene a dependencias de la pla a o ma ¡Acep a el e o!. Po lo an o, pa a es a mejo a, se op a po abaja con una ma iz de da os en local que se ca gue en memo ia al a anca el se icio ealizando las ac ualizaciones pe inen es en memo ia y haciendo sus olcados al sis ema de a chi os donde es é alojado el ecomendado . La ma iz de da os ep esen a los usua ios y p oblemas en base a sus ilas y columnas de al o ma que cada posición ila de la ma iz ep esen a un id de usua io y cada posición columna ep esen a un id de p oblema. Al abaja con Py hon, se ap o echa la e icacia y endimien o que iene Numpy sob e ma ices. A di e encia del ecomendado Bayesiano que como se ha comen ado en el an e io capí ulo, abaja con Pandas pa a pode asigna le una cla e a cada posición de ila y cada posición de columna, como Numpy no pe mi e es o, se han c eado dos a ays de con e sión: Uno pa a las ilas y o os pa a las columnas. Las posiciones de es e a ay se co esponden a las de la ma iz, y el alo de cada posición nos pe mi e conoce el ID de usua io/p oblema asociado a es e. La elección de Numpy en es e ecomendado , espec o al uso de Pandas en el o o, es me amen e la de pode con as a di e encias en el uso de ambas ecnologías, y el in e és o ma i o que equie e in en a desa olla ambos ecomendado es con ecu sos di e en es. Cabe des aca que el con ol de ob ención, ac ualización y man enimien o de la in o mación se abs ae en una clase que se ocupa de es os p ocesos pa a que el ecomendado simplemen e se enca gue de hace lec u as sob e es a ma iz1. Es a implemen ación y los cambios mencionados pa a es a e sión del ecomendado , mejo a el iempo de cálculo po en ega en 5 espec o a la p ime a que se ha comen ado2. (Se pasan de ob ene iempos de 5 minu os po ecomendación a 1 minu o). Aún así es necesa io segui op imizando el iempo de ecomendación, ya que sigue siendo muy al o. Pa a consegui es a mejo a se ap o echa odo lo 1La a qui ec u a y es uc u a del ecomendado se habla á en la sección 7.3 2Es amos hablando de la acele ación 50 Capí ulo 7. Recomendado de pesos po los K-Vecinos más simila es que o ece Numpy en cuan o a pa alelismo. Pa a mejo a cie as ope aciones, sob e la ma iz, que se ealizan de ma- ne a secuencial se ep og aman a eas pa a que uncionen en pa alelo, ob- se ando que a ias ope aciones (p incipalmen e de inse ción, es a de con- jun os, in e sección de conjun os...) mejo an sus ancialmen e median e los ope ado es y mé odos que o ece Numpy. Realizando es as modi icaciones se alcanza la e ce a e sión del eco- mendado , la cual ob iene una mejo a de al ededo de 120, sin ni si quie a ap o echa el endimien o máximo de p ocesamien o que el disposi i o de p uebas o ece. T as la mejo a, en es a úl ima e sión, el ecomendado pasa a ecomen- da en menos de 1 ( iempos en e 0.1 y 0.7 segundos). Es as mejo as se han medido con la base de da os pa cial co ada a 2018. Po lo que con los egis os a día de hoy, el iempo de ecomendación aumen a ía un poco a medida que los usua ios y p oblemas c ecen, pe o de mane a lineal y poco signi ica i a. Con es os nue os esul ados a o ables, a al a de in es iga con más p o undidad qué nue os cuellos de bo ella puedan su gi , la op imización es al amen e sa is ac o ia y no se ha conside ado necesa io, po el momen o, con inua con es a línea de in es igación. 7.3. A qui ec u a y es uc u a in e na Aunque el capí ulo 9 a a á de la a qui ec u a de comunicación y ac- ualización de ambos ecomendado es, se menciona aquí some amen e de la a qui ec u a in e na de es e ecomendado . Es deci , es a sección se cen a en a a con más de alle, cómo unciona in e namen e la comunicación en e clases, de la pa e in e na del ecomendado , dejando de lado la pa e de la API y es uc u as de ni el supe io que pe mi en hace del ecomendado , un se icio ex e no y ac ualizable. Es e ecomendado se ha seccionado en dos clases, mos adas en la igu- a 7.4, las cuales se encuen an sepa adas en dos iche os di e en es. Es as dos clases su gen de la necesidad de abs ae la pa e de ges ión de la BD in e na con la pa e del algo i mo de ecomendación. La lógica elacionada con el almacenamien o de da os, es á ag upada en un iche o que con iene po un lado pa áme os de con igu ación pa a hace la conexión adap a i a de mane a cómoda y ápida a di e en es jueces en línea, y po o o lado, con iene la clase JuezDB, mos ada en la igu a 7.4. Es a clase es á enca gada de los siguien es aspec os: Ca ga la ma iz de ecomendación en memo ia de mane a que si no exis en los iche os en local, los ca ga desde una BD MySQL y los gua da en local pa a ca ga los, a pa i de en onces, desde ese almace- 7.3. A qui ec u a y es uc u a in e na 51 Recomendado K ecinos + Ma izDa os:NumpyMa ix + conexionDB:JuezDB + g ado:in + use IDowne :in + use PosOwne :in + Recomendado K ecinos(db:JuezDB) + ecomenda (use IDowne ,g adoSimili ud):Dic iona y - co elacion(use ): double - calcula TamP oblemasUse (posUse ): in - il a NMasSimila es(can idad):Ma ix - busca P oblemasComunes(use ):Lis - amP oblemasComunes(use ):in - busca P oblemasUse 2MinusOwne (use ):Lis JuezDB +Ma izDa os:NumpyMa ix -Lis aUsua ios:Lis -Lis aP oblemas:Lis -Las Submi ion:in ... -gua da Ma izEnLocal() -ca ga Ma izDesdeLocal() +ob ene Ma iz():NumpyMa ix +ob ene PosUse (idUse ):in +ac ualiza En egas(nue asEn egas,ul imaEn ega) ... Figu a 7.4: Diag ama de clases in e nas del ecomendado K-Vecinos, sim- pli icando a ibu os y mé odos más in e esan es. namien o. En caso de que exis an los iche os en local los ca ga di ec amen e ya que supone meno cos e y es es e el con enedo eal de la in o mación del ecomendado . Es a ca ga ambién incluye in o mación que pa sea las posiciones de ilas/columnas que ep esen an usua ios y p oblemas, a sus espec i os IDs. Aunque pa a el caso de los p oblemas y en el juez en línea de ¡Acep a el e o! se abajan con los Ex e nal ID, que co esponden di ec amen e a la posición en la ma iz más cien. La ca ga desde la BD solo se debe hace pa a ca ga po p ime a ez la in o mación al ecomendado . A pa i de ahí siemp e abaja á desde local sin depende de una BD ex e na. Ac ualiza la BD en memo ia y en local cada ez que se le llame al mé odo “ac ualiza En egas”. Es a ac ualización se llama desde la clase clien ePe iciones y se enca ga de lee lo que clien ePe iciones le pasa po pa áme o pa a hace los cambios en la ma iz y los a ays co espondien es, añadiendo nue as ilas/columnas y elemen os, así como modi ica los alo es de la ma iz 52 Capí ulo 7. Recomendado de pesos po los K-Vecinos más simila es de da os sob esc ibiendo las posiciones en las que haya nue os AC a uno. Pa sea la in o mación de la ma iz de da os a quien se lo solici e, de ol iendo el id de usua io asociado a una posición, y ice e sa. En cuan o a la clase Recomendado Basico del iche o con el mismo nom- b e, se la inicializa con una ins ancia de la clase JuezDB, pa a ob ene de ahí la ma iz asociada. Su p incipal mé odo es “ ecomenda ”, al que se le asocia un id de usua io y el pa áme o de K-Vecinos con el que se quie e ealiza la ecomendación. Es e mé odo llama a o os mé odos, que si bien pueden se in ocados ex e namen e, ienen un in de uso de mé odos p i ados pa a la p opia clase. El mé odo “ ecomenda ” de uel e al solici an e un lis ado de ecomen- dación as ejecu a el algo i mo explicado en la sección 7.1. El es o de mé odos mos ados en la igu a 7.4 pa a la clase ecomendado básico, son p opios del algo i mo explicado y no me ecen p o undiza en ellos en es a sección. 7.4. En enamien o y e aluación En es a sección se habla sob e el en enamien o ealizado en el eco- mendado , haciendo un análisis de los esul ados de es e en enamien o y la e aluación ob enida de las di e en es mé icas desc i as en el capí ulo 5. En pa icula , las mé icas que se han ob enido de la e aluación son el “p ecision”, el “One-Hi ”, el “ ecall” y inalmen e el “F-Sco e”. Pa a cada ipo de mé ica se han gene ado dos modelos de g á icas que ep esen an di e en es con igu aciones del ecomendado y conjun os de N mejo es p oblemas ob enidos. 7.4.1. Resul ados de P ecision Comenzando a analiza los da os del “P ecision” se ob u ie on los esul- ados de e aluación de la abla 7.1 as el en enamien o. En la abla 7.1 mencionada, las ilas ep esen an los pa áme os del eco- mendado , ya que se ealizó el en enamien o pa a di e en es pa áme os de K-Vecinos más simila es. Po o o lado, las columnas ep esen an la can idad de p oblemas que se ob ienen de la lis a de ecomendación, que se han enido en cuen a a la ho a de e alua . Los esul ados del pa áme o de con igu ación del ecomendado pa a “P ecision” se an a analiza mejo a a és de la igu a 7.5. En la g á ica de la igu a 7.5 mencionada, se mues a como cada TOPN 3, 3Top N ep esen a los N mejo es p oblemas que hemos cogido pa a e alua . 7.4. En enamien o y e aluación 53 12345678910 3 0.116 0.114 0.108 0.111 0.111 0.104 0.100 0.097 0.095 0.093 10 0.195 0.163 0.153 0.165 0.156 0.150 0.151 0.144 0.139 0.134 20 0.173 0.164 0.159 0.160 0.156 0.150 0.144 0.142 0.141 0.138 50 0.187 0.179 0.170 0.167 0.161 0.159 0.154 0.149 0.147 0.144 100 0.180 0.183 0.173 0.167 0.161 0.157 0.153 0.151 0.147 0.143 250 0.172 0.154 0.154 0.145 0.145 0.143 0.142 0.139 0.137 0.134 500 0.148 0.149 0.147 0.146 0.148 0.144 0.143 0.138 0.134 0.131 1000 0.142 0.137 0.139 0.143 0.144 0.139 0.137 0.132 0.127 0.125 2000 0.131 0.128 0.138 0.144 0.140 0.135 0.134 0.130 0.127 0.124 5000 0.133 0.129 0.140 0.145 0.140 0.136 0.134 0.130 0.127 0.123 all 0.133 0.129 0.140 0.145 0.141 0.136 0.135 0.130 0.127 0.123 Tabla 7.1: Tabla de esul ados de P ecision pa a el SR K-Vecinos. ma cados con una di e en e línea, a ía según los pa áme os de ecomenda- ción que se le asignen al algo i mo K-Vecinos más simila es. Se obse a cómo la ecomendación pa a cualquie N, a medida que el pa áme o de ecomendación se ap oxima a los 10 ecinos más simila es la p ecisión c ece, po lo que se en iende que el uncionamien o del ecomenda- do iende a mejo a con lige as luc uaciones. Esa mejo a du a has a que se supe an los 100 ecinos más simila es, donde se obse a cómo desciende lige amen e la p ecisión. Po lo an o, el in e alo óp imo pa a K-Vecinos más simila es es á en el ango en e 10 y 100. Es o sucede po que al inclui ecinos menos simi- la es con el usua io a ecomenda se dis o siona lige amen e la in o mación de los p oblemas que ealmen e el usua io necesi a. De mane a que si se iene en cuen a una simili ud baja de un ecino más simila con el usua io, desencadena á en una ecomendación peo . La g á ica 7.6 ep esen a en el eje de abscisas la can idad de ecomen- daciones que pedimos al ecomendado (Mejo es N ecomendaciones), y el eje de o denadas ep esen a el p opio alo de la p ecisión al igual que en la g á ica analizada p e iamen e. Las líneas ep esen an cada pa áme o de con igu ación K-Vecinos4. En es a g á ica (7.6) se puede obse a que la p ecisión disminuye a me- dida que el eje de las “x” c ece. Es o se debe a la na u aleza de la ó mula de p ecisión y la o ma de como se han ob enido los TP,FP yFN, p o oca una endencia a disminui , en nues o caso, a pa i de x > 3. Sin emba go, pa a N = 2 y N = 3 no se obse an en conjun o esos dec emen os apenas. Los alo es se man ienen y en algunos casos incluso se 4Aunque no se ha mencionado an es, se han seleccionado esos pa áme os como más ep esen a i os como una mane a inc emen al in e esan e donde duplicamos el pa áme o en cada con igu ación espec o al an e io , pe mi iéndonos e en di e en es g ados cómo a ec a dicho pa áme o. 54 Capí ulo 7. Recomendado de pesos po los K-Vecinos más simila es 0 0,05 0,1 0,15 0,2 0,25 3 10 20 50 100 250 500 1000 2000 5000 all P ecisión K-Vecinos 1 2 3 4 5 6 7 8 9 10 Figu a 7.5: G á ica de p ecisión 1. ob ienen mayo es p ecisiones. De es a g á ica se ob iene como in o mación concluyen e que un alo óp imo a ene en cuen a a la ho a de ecomenda se ía u iliza los 3 mejo- es p oblemas, ya que, a medida que seguimos incluyendo p oblemas de es a lis a o denada de ecomendación, esos p oblemas nue os que se inco po an, cada ez ienen menos peso: son p oblemas que, aunque se incluyan, el e- comendado conside a que iene menos éxi o de que el usua io sea capaz de in e esa se po ellos y de esol e los. Es o sucede, a pesa de que el conjun o de p oblemas a ecomenda sea mayo y po lo an o engamos más p obabilidades en ecomenda p oblemas exi osos. De odas o mas, como es os dos concep os se con aponen, apenas se no a ese dec emen o que implica ob ene p oblemas con menos peso, ya que como el conjun o de p oblemas que se ecomienda es mayo , el ecomendado puede que acie e más al ene mayo ango de éxi o. Se puede conclui que la o ma en la que se ob iene la p ecisión pa a cada Top N p oblemas, es la in luyen e en los esul ados de es e dec ecimien o, al igual que pasa á de mane a simila en las p óximas g a icas del es o de mé icas. Según lo dicho, es a segunda g á ica pa a e alua independien emen e los p oblemas, no es an in e esan e pa a nues o ecomendado , pe o sí pa a compa a la con o os ecomendado es y con on a los esul ados. 7.4. En enamien o y e aluación 55 0 0,05 0,1 0,15 0,2 0,25 1 2 3 4 5 6 7 8 9 10 P ecisión Can idad de p oblemas ecomendados 3 10 20 50 100 250 500 1000 2000 5000 all Figu a 7.6: G á ica de p ecisión 2. Es o ambién se analiza á mejo más adelan e en un capí ulo pos e io , aunque educiendo el conjun o de da os de es e ecomendado a los que han esul ado más in e esan es du an e el análisis. 7.4.2. Resul ados del One-Hi La abla de esul ados se mues a en la igu a 7.2. De es a abla (7.2), al igual que se ha hecho con la p ecisión, se han gene ado las dos g á icas de las igu as 7.7 y 7.8. Como ya se ha comen ado en o as secciones y capí ulos, el “One-Hi ” ep esen a ene al menos un acie o en el conjun o de p oblemas ecomen- dados. Analizando la g á ica 7.7 pa a el “One-Hi ”, se obse a que el conjun o de TOPN a ía de o ma simila pa a es e concep o a medida que se aplica el algo i mo de ecomendación incluyendo más ecinos simila es. El compo amien o que nos mues a la g á ica es el mismo con el que concluimos el de la p ecisión, y es que pa a unos alo es de K-Vecinos en e 10 y 100 ob enemos los máximos “One-Hi ” p ác icamen e. Se obse a ambién que pa a alo es meno es a 10 la unción g á ica es c ecien e y pa a alo es mayo es a 100 la g á ica empieza a dec ece . Lo que cambia aquí espec o a la p ecisión es que las líneas es án a di e en es ni eles (a pa e de la ob iedad de que los alo es ob enidos son más Capí ulo 8 Compa ación en e ecomendado es Resumen: Una ez seleccionadas las mejo es e siones de los eco- mendado es an e io men e desc i os nos disponemos en es e capí ulo a compa a las con el in de comp oba cuál de las dos se ajus a más al juez online ¡Acep a el e o!. T as habe implemen ado dos ipos de ecomendado es, bayesiano yK- Vecinos, y habe ealizado una e aluación de las di e en es e siones, se ha seleccionado la e sión más p ome edo a de cada uno. El obje i o es com- pa a ambos esul ados en base a las mé icas desc i as con el obje i o de conclui cuál de los dos ipos de ecomendación se ía más iable den o del sis ema de ¡Acep a el e o!. El que mejo es esul ados ob enga se á el p ime candida o a se lle ado a e aluación en un caso eal con usua ios. Las e siones seleccionadas han sido: Bayesiano: se ha seleccionado la e sión RN, que conside a dos es ados y aplica la es imación de Laplace. K-Vecinos: la e sión ganado a de es e SR has sido la que conside a los 100- ecinos más simila es. Al igual que en los capí ulos an e io es los esul ados se mos a án en g á icas. El eje ho izon al se co esponde á con el núme o de p oblemas e- comendados, mien as que el eje e ical ep esen a á el alo de la mé ica co espondien e. 8.1. P ecision En la igu a 8.1 se mues a la g á ica de p ecision. Es muy des acable la di e encia cuando el núme o de p oblemas ecomendados es 1. El eco- 63 64 Capí ulo 8. Compa ación en e ecomendado es 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 1 2 3 4 5 6 7 8 9 10 P ecision Can idad de p oblemas ecomendados Bayesiano K-Vecinos Figu a 8.1: G á ica de compa ación de p ecision mendado bayesiano ob iene un esul ado casi un 60 % supe io al esul ado del ecomendado K-Vecinos. Lo que signi ica que el p ime p oblema que p opone el ecomendado bayesiano es bas an e mejo que la del o o. Sin emba go, al i ecomendando más p oblemas la p ecisión del eco- mendado bayesiano cae ápidamen e, mien as que el ecomendado K- Vecinos es bas an e más es able y cae más len amen e, incluso p esen a alguna subida. Es al la di e encia en la elocidad de caída que cuando se ecomiendan 5 p oblemas el ecomendado que iene mayo p ecisión aunque po poca di e encia es el K-Vecinos. Es o pa ece se debido a que el ecomendado bayesiano ha ecomendado mayo i a iamen e como quin a opción el mismo p oblema a odos los usua- ios, mien as que el ecomendado K-Vecinos ha ecomendado p oblemas di e en es a muchos de ellos. Que sea un p oblema sencillo y muy p obable de se esuel o po odos los usua ios no quie e deci que el p oblema sea in e esan e pa a el usua io. Po ello pa ece se más ace ada una ecomen- dación de p oblemas más dis ibuida y más pe sonalizada a cada usua io. 8.2. One-hi Al con a io que en la mé ica p ecision, el cla o y cons an e encedo en one-hi es el ecomendado bayesiano. Es e ecomienda p oblemas áciles de esol e pa a el usua io y po ello es más p obable que sea esuel o. El 8.3. Recall 65 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 1 2 3 4 5 6 7 8 9 10 One-Hi Can idad de p oblemas ecomendados Bayesiano K-Vecinos Figu a 8.2: G á ica de compa ación de one-hi ecomendado K-Vecinos, al pe sonaliza más la ecomendación no llega a ecomenda los más áciles, sino alguno más in e esan e pa a el usua io, po ello le cues a más ene al menos un acie o. Aun así, como se mues a en la igu a 8.2, la di e encia en el alo de one-hi no es muy g ande, po lo que ambos ecomendado es ienen un g an po cen aje de acie o en al menos una ecomendación. 8.3. Recall Los esul ados ob enidos de ecall se mues an en la igu a 8.3. Al igual que en los esul ados de one-hi , se obse a que el ecomendado bayesiano uel e a es a po encima en odo momen o del ecomendado K-Vecinos. Los alo es de ecall son apa en emen e bajos como ya se explicó an e io men e po el hecho de que hay muchos más p oblemas esuel os que ecomendados. Aunque en la g á ica pa ezca que las líneas es án muy dis an es, si obse - amos los alo es en las ablas co espondien es (39 y 58) la di e encia oscila en e 2 y 5 cen ésimas po lo que en ealidad es án bas an e a la pa aunque si es e dad que el ecomendado bayesiano oma en aja. 66 Capí ulo 8. Compa ación en e ecomendado es 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 1 2 3 4 5 6 7 8 9 10 Recall Can idad de p oblemas ecomendados Bayesiano K-Vecinos Figu a 8.3: G á ica de compa ación de ecall 8.4. F-Sco e No es de ex aña que con la mé ica -sco e se ob enga una g á ica en la que ambién el ecomendado encedo sea el bayesiano. En e ec o así es. En la g á ica de la igu a 8.4 se e cla amen e que el ecomendado K-Vecinos es á siemp e po debajo. Se des aca la di e encia en e la dis ancia inicial en e las líneas y la dis ancia inal. Es a dis ancia se a educiendo a consecuencia de la mé ica p ecision, pues descendía muy ápidamen e, y como ya sabemos -sco e se calcula con una ó mula que u iliza las mé icas p ecision y ecall. 8.5. Conclusiones de la e aluación El en enamien o aplicado a ambos ecomendado es ha sido de u ilidad p incipalmen e a la ho a de es udia el compo amien o de los di e en es pa- áme os de ecomendación con un subconjun o de los mejo es p oblemas de la lis a de ecomendación que los ecomendado es p oponen. De es a compa- ación se pueden obse a po lo gene al mejo es esul ados en las di e en es mé icas po pa e del ecomendado bayesiano. Es cu ioso el caso de la p ecisión donde el compo amien o que iene el ecomendado bayesiano se asemeja a una unción exponencial dec ecien e de la o ma (x) = ax,(0 <a<1), así como el ecomendado K-Vecinos 8.5. Conclusiones de la e aluación 67 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 1 2 3 4 5 6 7 8 9 10 F-Sco e Can idad de p oblemas ecomendados Bayesiano K-Vecinos Figu a 8.4: G á ica de compa ación de -sco e a una unción lineal dec ecien e con poca caída, de la o ma (x) = b− mx, pe mi iendo en algunos casos supe a el esul ado de la p ecisión del bayesiano. Se puede en ende que el compo amien o del ecomendado bayesiano haya dado mejo es esul ados de ecomendación, ya que el concep o del eo- ema de bayes aplicado en ecomendaciones esul a más p eciso ya que busca calcula la p obabilidad de que un usua io pueda esol e un p oblema. Po o o lado, el ecomendado po K-Vecinos no ha conside ado de alles que pod ían e ina in o mación como son los casos en los que un usua io ha in en ado esol e un p oblema pe o no ha enido éxi o. El hecho de que el ecomendado bayesiano haya esul ado ic o ioso en es as mé icas, no desca a idea de que sus ecomendaciones engan que se siemp e las más pe sonalizadas pa a un usua io, ya que una ecomendación pe sonalizada no siemp e iene po qué se la opción más ácil pa a es e. Po o o lado, ambién cabe con as a el iempo de ecomendación gene- ado po cada SR. Como se ha comen ado en los co espondien es capí ulos, aunque pa a ambos ecomendado es el iempo de ecomendación po usua io es bas an e bajo, se ap ecia que K-Vecinos es á mejo op imizado y su cos e algo í mico es meno . Es a di e encia es ambién in e esan e de esal a ya que puede me ece la pena empeo a la calidad de ecomendación un poco a cos a de mejo a la elocidad y e iciencia de es a, sob e odo si se es án calculando muchas ecomendaciones a la ez. Capí ulo 9 Implemen ación como se icio ex e no Resumen: Es e capí ulo engloba la a qui ec u a e ingenie ía de im- plemen ación de los dos ecomendado es ealizados, pa a pode se im- plemen ados como se icio ex e no, siguiendo los p incipios de adap- abilidad y po abilidad. La es uc u a in e na de cada ecomendado se expone en los capí ulos e e en es a cada uno de ellos. 9.1. API de comunicación Pa a lle a a cabo un uncionamien o comple o del ecomendado , es necesa io implemen a los algo i mos sob e un diseño e icaz que pe mi a una e oalimen ación, y que a la ez sea capaz de da se icio múl iple a quien le solici e ecomendaciones. Pa a ello se ha implemen ado una a qui ec u a adecuada que soluciona de mane a e icaz es os p oblemas: se ha di idido en es pa es es a a qui- ec u a que sepa an de mane a lógica las di e en es uncionalidades que el ecomendado debe pode ealiza . Los ecomendado es ealizados has a aho a han abajado en un en o no de p uebas local. Pa a hace los o almen e uncionales en casos de usos eales, son necesa ias nue as es uc u as que pe mi an al ecomendado pone al día la in o mación de es e, sob e el juez en línea al que es á dando se icio. También son necesa ias es as nue as es uc u as pa a ene una ía sob e la que el juez en línea pueda hace pe iciones al ecomendado , y ob ene los da os que sean necesa ios y ú iles. En los ecomendado es debe inclui se un nue o módulo lógico pa a que se enca gue de esol e es os p oblemas. Es e nue o bloque lógico debe un- ciona como una API de comunicación en e el ecomendado y el juez en 69 70 Capí ulo 9. Implemen ación como se icio ex e no Ins ancia una clase ecomendado pa a ecomenda Es uc u a in e na del ecomendado (Ejemplo con K-Vecinos ecomende ) se ido de pe iciones Llama a... Recomendado K ecinos + Ma izDa os:NumpyMa ix + conexionDB:JuezDB + g ado:in + use IDowne :in + use PosOwne :in + Recomendado K ecinos(db:JuezDB) + ecomenda (use IDowne ,g adoSimili ud):Dic iona y - co elacion(use ): double - calcula TamP oblemasUse (posUse ): in - il a NMasSimila es(can idad):Ma ix - busca P oblemasComunes(use ):Lis - amP oblemasComunes(use ):in - busca P oblemasUse 2MinusOwne (use ):Lis JuezDB +Ma izDa os:NumpyMa ix -Lis aUsua ios:Lis -Lis aP oblemas:Lis -Las Submi ion:in ... -gua da Ma izEnLocal() -ca ga Ma izDesdeLocal() +ob ene Ma iz():NumpyMa ix +ob ene PosUse (idUse ):in +ac ualiza En egas(nue asEn egas,ul imaEn ega) ... Clien ePe iciones +conexionDB:JuezDB + Clien ePe iciones(db) +Ac ualiza Ul imosEn ios() +ob ene 20en egas(posicion):Json h p_se e +conexionDB:JuezDB +h p_se e (db) myHandle ... + do_GET() Ins ancia con concu encia una clase manejado Figu a 9.1: Diag ama de clases ex endido pa a el ecomendado K-Vecinos. línea. Cada uno de los ecomendado es se ha p og amado con di e en es ecno- logías. Las pa es p opias de cada uno de ellos se explican con mayo de alle en los capí ulos 6 y 7 espec i amen e. Aquí se a a a a la lógica elacionada con la API común a ambos eco- mendado es que ep esen a un ni el supe io en las capas de la a qui ec u a de es a, ya que es a lógica ins ancia á obje os de ecomendación, pa a hace uso de la ecomendación y la ac ualización de la BD. La lógica elacionada con la API, es deci , la pa e que ges iona la comu- nicación con el juez en línea, se encuen a o almen e sepa ada de la lógica del ecomendado . Es e iche o con iene es clases: dos que uncionan como se ido h p y manejado de pe iciones, y una que unciona como clien e que hace pe iciones HTTP al juez en línea sob e el que ope a. De mane a de allada se obse a cómo unciona y se elaciona es e se icio ex e no, aplicado al caso del ecomendado K-Vecinos y el juez en línea ¡Acep a el e o!, como la igu a 9.2 indica. Median e es e mecanismo, es á comple amen e sepa ado el ecomendado del juez en línea pe mi iendo su po abilidad. Haciendo lige as modi icaciones en el conjun o de la API y es a es uc u a 9.1. API de comunicación 71 Escucha nue os en íos Pla a o ma de Juez en línea Base de da os Solici ud / Ac ualización de da os Api de ecomendado Se ido de pe iciones h p Clien e de escucha Juez en linea Ke nel del ecomendado Ges ion de BBDD del ecomendado En ía nue a in o mación indicando que se ac ualice Le pasa la ma iz de da os al ecomendado Ins ancia al ecomendado y lo ejecu a Realiza pe iciones Comunicacion en e pla a o ma/ ecomendado Pa e in e na del ecomendado Recomendado comple o / Se icio ex e no Responde las pe iciones Figu a 9.2: Funcionamien o del ecomendado K-Vecinos con API implemen- ada pa a su uso como se icio ex e no. supe io , se pueden adap a o os ecomendado es a la API, o aplica a ios ecomendado es sob e una misma API y es uc u a supe io . De es a mane a se puede consegui que el juez en línea pida al se icio de ecomendación que ecomendado u iliza , o sea la p opia es uc u a su- pe io se á la que decida qué ecomendado se debe u iliza pa a un usua io conc e o, en unción de los esul ados ob enidos pa a el mismo. La igu a 9.1 mues a el diag ama de clases de lo que nos in e esa en cuan o a la API del ecomendado . En es e se iene un ejemplo aplicado pa a el ecomendado K-Vecinos. Las clases in e nas de es e ecomendado en conc e o, no an a se anali- zadas en las siguien es subsecciones ya que son p opias de es e y no comunes de ambos ecomendado es. Se ha decidido mos a el diag ama de clases ex endido de la API con es e ejemplo, ya que se ha log ado implemen a y p oba con co ec o un- cionamien o es e módulo del que es amos hablando, con es e ecomendado mencionado en el capí ulo an e io . De odas o mas, hay que deja cla o que la API se comunica de mane a simila con ambos ecomendado es, es deci , siemp e a a ene que ins ancia una clase ecomendado , como se e á en las siguien es secciones del capí ulo, 78 Capí ulo 10. Conclusiones y abajo u u o ecomendado K-Vecinos, que in en a busca usua ios simila es al que se es á ecomendado y ija se qué o os p oblemas han seguido haciendo, pa a así selecciona los pa a el usua io a ecomenda . Es a o ma de ecomendación, es más pe sonalizada, aunque sus esul ados no son an buenos como el bayesiano pa a la e aluación que se ha aplicado, pe o in en a selecciona esa pe sonalización que el bayesiano no iene en cuen a, pe mi iendo se un ecomendado in e esan e como p opues a de implemen ación en un juez en línea. Po o o lado, el abajo en un p incipio se plan eó como algo que aba ca- ba más de alles que no se han podido llega a ealiza , po lo que en adelan e, se comen a el abajo u u o y las líneas que puede segui es e p oyec o que se ha lle ado a cabo. Las siguien es secciones, in oducen di e en es líneas a segui de ca a al u u o pa a cua o aspec os undamen ales que iene es e p oyec o. 10.1. Recomendado Bayesiano La implemen ación del ecomendado bayesiano con ada en el capí ulo 6 ha sido op imizada pa a educi el iempo de cálculo. Aún así, si se u ie a que ecalcula odo cada ez que se hace un nue o en ío, pod ía ocu i que en un co o espacio de iempo se ealiza an a ios en íos y en e medias de cada uno aún no haya inalizado el ecálculo an e io . Po es e mo i o se es udia ía a ondo en qué modo a ec a un nue o en ío, con el in de ealiza el meno núme o de cálculos posibles omando como base los esul ados del cálculo an e io . Además se plan ea la posibilidad de acumula los nue os en íos que se p oduzcan y ealiza el ecálculo en de e minados momen os del día. Es o p o oca ía que las ecomendaciones no es u ie an 100 % ac ualizadas, po lo que, habiendo es udiado el e ec o de un nue o en ío, hab ía que analiza si compensa. Eso sí, eniendo cuidado siemp e de no ecomenda a un usua io un p oblema que ya haya esuel o, incluso en el iempo que los cálculos no es én ac ualizados. O a p opues a a ealiza es calcula el po cen aje exac o de p obabili- dad ya que la e sión implemen ada se aho a calcula el denominado pues o que solo in e esaba el o den de p obabilidad en un p incipio. La p obabili- dad básica nos dice que la suma de la p obabilidad de odos los posibles sucesos iene que se 1. Po an o, podemos ap o echa los cálculos ealiza- dos (P(A|B)yP(¬A|B)) a los que les al a el denominado y despeja la siguien e ó mula pa a ob ene lo (de la que esul a que el denominado es an solo suma ambos alo es): P(A|B) denominado +P(¬A|B) denominado = 1 10.2. Recomendado de pesos po los K-Vecinos más simila es 79 10.2. Recomendado de pesos po los K-Vecinos más simila es El ecomendado de pesos po los K-Vecinos más simila es ha sido imple- men ado al como se explica en el capí ulo 7. Cabe la posibilidad de modi ica el algo i mo con la idea de mejo a y puli aspec os de es e, an o a ni el de op imización, como en su uncionamien o in e no. De es e segundo caso (la mejo a de los esul ados de las mé icas), no se puede sabe a ciencia cie a si mejo a ía el algo i mo sin su e aluación pos e io pa a con as a esul ados. Una de las modi icaciones del algo i mo p opues as en cuan o a mane as de ecomenda , es la idea de conside a un nue o caso en los en íos, que ac ualmen e el algo i mo conside a como no ealizado. Es e caso nue o se añade haciendo que el ecomendado ambién enga en cuen a los en íos sin éxi o de los usua ios. Es a modi icación se ía equi alen e a la e sión RIN del ecomendado bayesiano. De es a o ma, a la ho a de calcula la co elación de un usua io con o os, se pod ía ambién añadi a la ó mula los in en os sin éxi o que es e ha enido, pa a ija se en esas simili udes espec o a o os usua ios, jun o con los p oblemas que han log ado esol e en común. G acias a es a nue a mane a de calcula la co elación, se pod ían encon- a nue as simili udes o ace ca ecinos que de la mane a ac ual los man iene más alejados, y de es a o ma, cambia ía en cie o modo su ecomendación. O o momen o donde pode conside a es e nue o es ado en el que se ija ía el ecomendado , se ía a la ho a de calcula los pesos po p oblema. Así, si uno de los ecinos iene un p oblema “in en ado y no esuel o” que el usua io a ecomenda no haya ni in en ado, se le puede baja el peso de ecomendación a ese p oblema en conc e o pa a di icul a que es e escale en el anking de ecomendación. El ac o de in en ado y no esuel o que se puede añadi a conside a en el algo i mo de ecomendación, es un da o más que en iquece la in o mación con la que es e ecomendado puede abaja y gene a la cu iosidad de e si la ecomendación esul an e de es e algo i mo mejo a ía no ablemen e, o incluso si pudiese empeo a . Po o o lado, en el aspec o de la op imización, el ecomendado aún puede se mejo ado encon ando nue os cuellos de bo ella, ya que el pun o de op imización se dejó de abaja en cuan o los iempos de ecomendación se eduje on conside ablemen e. Se pod ía ambién maneja un dicciona io al pa sea el ID de usua io po su posición en la ma iz, en luga de usa un a ay cuya posición ep esen e la posición de la ma iz y su alo el ID, ya que Py hon maneja de mane a óp ima es e ipo de es uc u as y acili a ía la búsqueda de una posición en la ma iz en base a su ID de usua io. Ac ualmen e esa búsqueda aplica bús- 80 Capí ulo 10. Conclusiones y abajo u u o queda bina ia ya que el a ay es á o denado po ID de meno a mayo . Es o ambién acili a ía las inse ciones a la ho a de ac ualiza el ecomendado , cada ez que exis en nue os usua ios, ya que ac ualmen e se debe desplaza el a ay pa a inse a en una posición conc e a y man ene el o den po ID. De odas o mas es e desplazamien o se ealiza median e los mé odos que o ece Numpy, así que su o den de complejidad es á bas an e op imizado. En cuan o a o as o mas de op imización que no implicasen busca cue- llos de bo ella, se ha plan eado la idea de mejo a los esul ados de ecomen- dación p e-cacheando la in o mación pa a ene la disponible en el momen o de la consul a de ecomendación, aunque el p e-cacheado gene a ía la nece- sidad de nue as clases que ges ionen odo es e ema, ya que las consul as de ecomendación ob end ían di ec amen e un esul ado p ecalculado pa a ene lo más accesible y sin necesidad de espe a. Es a idea se desca ó g acias a que mejo a on signi ica i amen e los iempos de cálculo po ecomendación aplicando el mayo pa alelismo posible. 10.3. API de comunicación La API de comunicación que se ha ealizado, no maneja concu encia en e el se ido de ecomendación y las consul as que se hacen a ¡Acep a el e o! pa a ac ualiza la BD del ecomendado . Ac ualmen e su compo amien o es: al ejecu a el se icio de ecomen- dación, la API ac ualiza la BD del ecomendado con los úl imos en íos de ¡Acep a el e o! y pos e io men e lanza el se ido . Una ez se lanza el se ido el ecomendado no man iene una ac ualización pe iódica. La idea en es e pun o de la API es pode añadi concu encia en e el se ido de ecomendaciones y el clien e que hace las ac ualizaciones, pa a pode man ene esa ac ualización de la BD del ecomendado sin ene que einicia el se icio. O a in ención o iginal e a la de llega a consegui una API que se co- nec ase a un se icio que o eciese ¡Acep a el e o! pa a los ecomendado es, de al mane a que no ac uase de “espía” como hace ac ualmen e, si no que ¡Acep a el e o! u iese una pa e que le acili ase es a in o mación de ac ua- lización ya il ada, y con la que se comunicase de una mane a más cómoda. 10.4. Implemen ación en ¡Acep a el e o! La idea de pode implemen a los ecomendado es en ¡Acep a el e o! e a sob e odo pa a pode hace una e aluación de ambos ecomendado es en un en o no de ejecución eal, pe mi iendo analiza con mayo p ecisión los esul ados de ecomendación, ya que bajo un en o no de implemen ación eal, el usua io puede e la ecomendación y decidi si hace el p oblema 10.4. Implemen ación en ¡Acep a el e o! 81 ecomendado o no, y en caso de in en a lo, e si ha enido éxi o o ha aca- sado. Es a implemen ación hab ía sido un g an juego en la e aluación de esul- ados de los ecomendado es, debido a su idelidad con un caso de uso eal, ya que se pod ía en ende mejo si de lo que se ecomienda a un usua io, es igno ado o in en ado, y en es e úl imo caso, si ha habido éxi o o acaso en la esolución del eje cicio. Capí ulo 11 Conclusions and u u e wo k This wo k has been ocused on applying se e al in e es ing ecommen- da ion sys ems in he ield o online judge pla o ms. So, i has been possible o make a de ailed in es iga ion o impo an s ecommenda ions models and wo o hem ha e been selec ed o ca y ou an implemen a ion oge he wi h i s e alua ion o esul s, in a popula online judge pla o m. These wo ecommende s ha e been he Bayesian ecommende and he ecommende o weigh s o he nea es K-Neighbo s ha , hanks o an anonymous da abase o he pla o m ¡Acep a el e o! i has been possible o make a s udy abou he e ec i eness o hese ecommenda ion sys ems o his adap a ion o online judges. In addi ion, a communica ion p oposal ( he API) has been de eloped o hese ecommende s, which would allow hem o be used by an online judge as an ex e nal se ice and i has been possible o p o e o he case o K-Neighbo s in he pla o m acep a el e o! wi hou being implemen ed di ec ly on i . Thanks o his and as i has been obse ed a he end o chap e 8, has come o he conclusion ha he Bayesian ecommende wo ks be e o hese pla o ms ha a e online judges, since hei esul s shown du ing he analysis o he chap e men ioned, ha e p o ed ha a Bayesian ecommen- da ion model is mo e accu a e in he selec ion o he p oblems ha a use would y o pe o m. Howe e , i also emains as ano he idea o he conclusions, ha he Bayesian ecommenda ion s yle is good o selec ing a lis o p oblems ha a use would be mo e likely o sol e, by he own concep o he bayes heo em, bu can no always be conside ed ha is he bes ecommenda ion since he in e es o a use is no limi ed o sol e he p oblem ha is mos likely o be esol ed, bu a he many imes he use s o hese pla o ms look o challenges and he need o some hing mo e di icul and new o hem. He e comes in o play he ecommenda ion s yle o he o he ecommen- 83 84 Capí ulo 11. Conclusions and u u e wo k de , he K-Neighbo s ecommende , who ies o ind use s simila o he one who is being ecommended and no e wha o he p oblems ha e been choosen o be selec ed hem o he use o ecommend. This o m o ecommenda- ion, is mo e pe sonalized, al hough i s esul s a e no as good as Bayesian o he e alua ion ha has been applied, bu y o selec ha cus omiza ion ha he Bayesian does no ake in o accoun , allowing o be a in e es ing ecommenda ion as a p oposal o implemen a ion in a judge in line. On he o he hand, he wo k a i s was p oposed as some hing ha encompassed mo e de ails ha could no be made, so on, he u u e wo k is discussed and he lines ha can be ollowed in o de o con inue his p ojec ha has been ca ied ou . The ollowing sec ions, in oduce di e en lines o ollow in he u u e o ou undamen al aspec s ha his p ojec has. 11.1. Bayesian Recommende The implemen a ion o he Bayesian ecommende , old in chap e 6, has been op imized o educe calcula ion ime. S ill, i you had o ecalcula e e e y hing e e y ime a new shipmen is made, i could happen ha In a sho space o ime se e al shipmen s will be made and in be ween each one has no inished he ecalcula ion ye . Fo his eason we will s udy in dep h how a new shipmen a ec s, in o de o pe o m he leas numbe o possible calcula ions aking as base he esul s o he p e ious calcula ion. I also aises he possibili y o accumula ing new shipmen s ha a e p oduce and pe o m he ecalcula ion a ce ain imes o he day. This would cause he ecommenda ions no o be 100 % up- o-da e, so ha , ha ing s udied he e ec o a new shipmen , i would be necessa y o analyze whe he compensa es o no . O cou se, always aking ca e no o ecommend an use a p oblem ha has al eady been sol ed, e en in he ime ha he calcula ions do no a e upda ed. Ano he p oposal o make is o calcula e he pe cen age o he p obabili y and he e sion implemen ed. The basic p obabili y ells us ha he sum o he p obabili y o all possible e en s mus be 1. The e o e, we can ake ad an age o he calcula ions made (P(A|B)and P(¬A|B)) a The ollowing o mula o ob ain i is he ollowing: P(A|B) denomina o +P(¬A|B) denomina o = 1 11.2. Weigh ecommenda ion by mos Simila K-Neighbo s 85 11.2. Weigh ecommenda ion by mos Simila K- Neighbo s The ecommende o weigh s o he mos simila K-Neighbo s has been implemen ed as explained in chap e 7. I is possible o modi y he algo- i hm wi h he idea o imp o ing and polishing aspec s o his, bo h a he op imiza ion, as in i s in e nal unc ioning. In his second case ( he imp o emen o he esul s o he me ics), we can’ know o su e i i would imp o e he algo i hm wi hou i s subsequen e alua ion o compa e esul s. One o he algo i hm modi ica ions p oposed in e ms o ways o ecom- mend, is he idea o conside ing a new case in he shipmen s, which cu en ly he algo i hm conside s as no pe o med. This new case is adds by ha ing he ecommende also conside shipmen s wi hou success o he use s. This modi ica ion would be equi alen o he RIN e sion o he Bayesian ecom- mende . In his way, when calcula ing he co ela ion o a use wi h o he s, you could also add o he o mula unsuccess ul a emp s ha his has had, o look a hose simila i ies wi h o he use s, oge he wi h he common p oblems hey ha e managed o sol e. Thanks o his new way o calcula ing he co ela ion, you could ind new simila i ies o b ing neighbo s ha in he cu en way keeps hem u he away, and in his way, i would change i s ecommenda ion somewha . Ano he momen whe e we can conside his new s a e in which would ix he ecommende , i would be a he momen o calcula ing he weigh s pe p oblem. So, i one o he neighbo s has a p oblem " ied and no esol- ed" ha he use o ecommend has no ied, you can lowe he weigh o ecommenda ion o ha p oblem in pa icula o make i di icul o i o ise in he ecommenda ion aking. The ac o o a emp ed and un esol ed ha can be added o conside in he ecommenda ion algo i hm, is a da a ha en iches he in o ma ion wi h which his ecommende can wo k and gene a es he cu iosi y o see i he ecommenda ion esul ing om his algo i hm would imp o e signi ican ly o , e en, i i could ge wo se. On he o he hand, in he aspec o op imiza ion, he ecommende s ill can be imp o ed by inding new bo lenecks, since he poin o op imiza- ion was s opped wo king as soon as he ecommenda ion imes hey we e conside ably educed. A dic iona y could also be handle when pa sing he use ID by i s posi ion in he ma ix, ins ead o using an a ay whose posi ion ep esen s he posi ion o he ma ix and i s alue he ID, since py hon handles in a op imal his ype o s uc u es and would acili a e he sea ch o a posi ion in he ma ix based on you use ID. Cu en ly ha sea ch applies sea ch bina y since he 86 Capí ulo 11. Conclusions and u u e wo k a ay is so ed by ID om leas o g ea es . This i would also acili a e he inse ions when upda ing he ecommende , e e y ime he e a e new use s, since cu en ly i is necessa y o mo e he a ay o inse in a speci ic posi ion and main ain he o de by ID. In any case, his displacemen is ca ied ou h ough he me hods ha Numpy o e s, so i s o de o complexi y is qui e op imized. As o he o he o ms o op imiza ion ha did no in ol e looking o co- lla s bo leneck, he idea o imp o ing he ecommenda ion esul s has been p e-caching he in o ma ion o ha e i a ailable a he ime o he ecom- menda ion consul a ion, al hough p e-caching would gene a e he need o new classes ha manage his whole opic, since he que ies o ecommenda- ion would di ec ly ob ain a p ecalcula ed esul o ha e i mo e accessible and wi hou wai ing. This idea was uled ou hanks which signi ican ly im- p o ed calcula ion imes by ecommenda ion applying he g ea es possible pa allelism. 11.3. Communica ion API The communica ion API ha has been made, does no handle concu- ency be ween he ecommenda ion se e and he que ies ha a e made o ¡Acep a el e o! o upda e he ecommende ’s BD. Cu en ly his beha io is: when execu ing he ecommenda ion se ice, he API upda es he ecommende ’s BD wi h he la es shipmen s o Accep he challenge! and hen launch he se e . Once he se e he ecommende does no main ain a pe iodic upda e. The idea a his poin o he API is o be able o add concu ency be ween he se e o ecommenda ions and he clien ha makes he upda es, o able o main ain ha upda e o he ecommende ’s BD wi hou ha ing o es a he se ice. Ano he o iginal in en ion was o ge an API ha connec s o a se ice ha o e s ¡Acep a el e o! o he ecommende s, in such a way ha he did no ac as a “spy” as he does now, bu ha ¡Acep a el e o! had a pa ha would p o ide his upda e in o ma ion al eady il e ed, and wi h which i communica ed in a mo e com o able way. 11.4. Implemen a ion in ¡Acep a el e o! The idea o being able o implemen he ecommende s in ¡Acep a el e o! i was mos ly o be able o make an e alua ion o bo h ecommende s in a eal execu ion en i onmen , allowing o analyze wi h g ea e p ecision he ecommenda ion esul s, since unde an implemen a ion en i onmen eal, he use can see he ecommenda ion and decide whe he o do he p oblem 11.4. Implemen a ion in ¡Acep a el e o! 87 ecommended o no , and i you y, see i i has been success ul o has ailed. This implemen a ion would ha e been a g ea game in he e alua ion o esul s o he ecommende s, due o hei ideli y wi h a case o eal use, since i could be be e unde s ood i wha is ecommended o a use , is igno ed o ied, and in his las case, i he e has been success o ailu e in he esolu ion o he exe cise. 94 Bibliog a ía Re illa, M. A.,Manzoo , S. yLiu, R. Compe i i e lea ning in in o - ma ics: The u a online judge expe ience. Olympiads in In o ma ics, ol. 2(10), páginas 131–148, 2008. Sanz Molina, A. yMa in del B io, B. Redes Neu onales y Sis emas Bo osos.. Ra-Ma edi o ial, 2006. Disponible en h p://www. a-ma. es/lib os/REDES-NEURONALES-Y-SISTEMAS-BORROSOS-3-EDICION/241/ 978-84-7897-743-7. Sánchez-Ruiz, A.,Jimenez-Diaz, G.,Gómez-Ma ín, P. yGómez- Ma ín, M. Case-based ecommenda ion o online judges using lea ning i ine a ies. páginas 315–329. 2017. ISBN 978-3-319-61029-0. Wikipedia (Deep lea ning). Disponible en h ps://es.wikipedia.o g/ wiki/Ap endizaje_p o undo. Wikipedia (Elo a ing sys em). En ada: “Elo a ing sys em”. Disponible en h ps://en.wikipedia.o g/wiki/Elo_ a ing_sys em (úl imo acce- so, Ma zo, 2019). Wikipedia (k-nea es neighbo s). Disponible en h ps://en.wikipedia. o g/wiki/K-nea es _neighbo s_algo i hm. Zheng, Y.,Mobashe , B. yBu ke, R. Con ex ecommenda ion using mul i-label classi ica ion. 2014. Lis a de ac ónimos AC ............ Accep ed API ........... Applica ion P og amming In e ace BD............ Base de da os FN ............ False Nega i e FP ............ False Posi i e RRNN ........ Redes neu onales SR ............ Sis ema de Recomendación TN............ T ue Nega i e TP ............ T ue Posi i e 95