4.4 Descripci´on de la arquitectura de referencia mediante el modelo de 4+1 vistas de RUP
4.4.2 Vista de procesos
Esta vista se enfoca en asuntos de concurrencia y distribuci´on del sistema y especifica el hilo conductor o el flujo para los procesos m´as importantes. Para la presentaci´on de esta vista se han considerado diagramas de secuencia para la solicitud de recomendaciones por parte del usuario al Recommender, pues permiten comprender las interacciones entre cada uno de los m´odulos presentados en el diagrama 4.2; Tambien se han utilizado diagramas de actividad para los procesos de estimaci´on de preferencias ejecutados dentro del recomendador y que representan la implementaci´on de las ecuaciones presentadas en el cap´ıtulo 3.
4.4.2.1. Diagramas de secuencia: Solicitud de recomendaciones para un recomendador user- user e item-item incluyendo contexto
La figura 4.6 presenta el diagrama de secuencia para el proceso ejecutado cuando un usuario solicita N recomendaciones a un recomendador que se basa en un filtrado user-user y adem´as incluye informaci´on contextual. El proceso inicia cuando un usuario solicita la recomendaci´on de algunos ´ıtems. Para ello entrega el id del usuario para el cual requiere las recomendaciones, el n´umero de ´ıtems que desea y el id del contexto. El recomendador inicialmente realiza una validaci´on de la configuraci´on donde determina si todos los m´odulos se encuentren correctamente ajustados, verifica la existencia del usuario, el contexto en el modelo de datos y comprueba que se haya solicitado al menos un ´ıtem. Cabe resaltar que para el caso de los filtrados user-user entra en juego el m´odulo de vecindad, el cual haciendo uso del m´odulo de similitud de usuarios calcula un conjunto de usuarios parecidos a aquel para el cual se desea recomendar. Posteriormente es ´este conjunto de usuarios el que se utiliza para determinar el listado de ´ıtems que son potencialmente recomendables. Acto seguido, para cada uno de estos ´ıtems se realiza un proceso de estimaci´on de preferencias haciendo uso tambi´en del m´odulo de similitud de contextos. Finalmente los ´ıtems que cuentan con mayor estimaci´on en la preferencia son seleccionados para ser recomendados al usuario.
Al igual que en la figura 4.6, la figura 4.7 presenta el diagrama de secuencia para el proceso de solicitud de recomendaciones incluyendo informaci´on contextual, pero esta vez el recomendador est´a basado en un filtrado item-item. Es importante rescatar que en este caso no existe el m´odulo de vecindad, pues dado a que la recomendaci´on se enfoca principalmente en los ´ıtems, no es necesario crear un conjunto de usuarios parecidos al actual. En este caso, el recomendador solicita directamente al modelo de datos todos los elementos que son potencialmente recomendables. Es decir, aquellos para los cuales el usuario no ha expresado una calificaci´on y otros usuarios s´ı han calificado. A partir de ellos pasa a la fase de estimaci´on de preferencias y nuevamente se escogen aquellos ´ıtems con mayor preferencia estimada para ser recomendados.
Cap´ıtulo 4. Construcci´on de un sistema de recomendaciones soportado en informaci´on contextual
loop
[item in otherItems]
User
Data Model Context
Similarity User Similarity User Neighborhood Context Recommender 1.7: topNEstimations 1.6: estimatePreference 1.4.2: otherItems 1.4.1: selectItems 1.4: getOtherItems(neighborhood, userId) 1: recommend(userId,contextId,N) 1.5.2: contextSimilarity 1.5.1: calculateSimilarity 1.5: calculateContextSimilarity 1.2.1.3: estimateSimilarities 1.2.1.2: otherUsers 1.2.1.1: getOtherUsers(userId) 1.3: neighborhood 1.2.1.4: similarityEstimations 1.2.1: estimateSimilarities(userId) 1.2: getNeighborhood(userId) 1.1: validateConfiguration
Figura 4.6: Diagrama de secuencia para un filtrado user-user inluyendo contextoFuente: creaci´on propia
4.4. Descripci´on de la arquitectura de referencia mediante el modelo de 4+1 vistas de RUP
loop
[item in otherItems]
Item Similarity
Data Model Context Similarity Context Recommender User 1.3.2: itemSimilarity 1.3: calculateSimilarities(item1, item2) 1.4.2: contextSimilarity 1.4.1: calculateSimilarity 1.4: calculateContextSimilarity 1.3.1: estimateSimilarities 1.2.2: otherItems 1.2.1: selectItems 1.2: getOtherItems(userId) 1.6: topNEstimations 1.1: validateConfiguration 1.5: estimatePreference 1: recommend(userId,contextId,N)
Cap´ıtulo 4. Construcci´on de un sistema de recomendaciones soportado en informaci´on contextual 4.4.2.2. Diagramas de actividad: Estimaci´on de preferencias en un recomendador user-user e
item-item incluyendo contexto
Los diagramas de actividad que se presentan a continuaci´on dejan ver con mayor detalle el que es tal vez el paso m´as importante del proceso de recomendaciones. Es decir, la estimaci´on de preferencias. Al igual que en el apartado anterior se ha definido un diagrama tanto para un recomendador basado en un filtro user-user como en uno item-item. La figura 4.8 permite ver el flujo de actividades realizadas para estimar la preferencia de un usuario por un ´ıtem en un contexto dado utilizando un filtrado user-user.
Estimate Preference (userId, itemId, currentContext,
neighborhood) Initializate values: contextSimilarity, total preference, total similarity
<<structured>> Loop: For each next user in neighborhood
Setup
Test
Body
Get nextUserID from otherItems
get preference of nextUserId for itemId
get similarity of contexts: current context vs preference context
get similarity of users: userId vs nextUserId
add the product of preference, context similarity and user similarity to total preference
add the absolute value of product of user similarity and context similarity to total similarity
get the preference value as totalPreference/totalSimilarity
preference exists? nextUserId is different from userId?
YES
NO NO YES
Just Physical and CONSUMER
Environment
Figura 4.8: Diagrama de actividad para un filtrado user-user incluyendo contextoFuente: creaci´on propia
4.4. Descripci´on de la arquitectura de referencia mediante el modelo de 4+1 vistas de RUP
En ella puede observarse que para estimar la preferencia de un usuario por un ´ıtem, se tienen en cuenta s´olo los usuarios que hacen parte de la vecindad y se utilizan las preferencias que dichos usuarios han expresado, combin´andolas con la similitud de contextos y la similitud entre los usuarios. Es decir, es una implementaci´on de la ecuaci´on 3.2.
La figura 4.9 por su parte, permite ver este mismo paso del proceso de recomendaci´on pero esta vez para un filtrado item-item. Como puede observarse no se tiene en cuenta la vecindad de usuarios, sino un conjunto de otros ´ıtems que han sido calificados por otros usuarios del sistema. La similitud de contexto esta vez se calcula ´unicamente teniendo en cuenta el ambiente f´ısico y del proveedor. Este diagrama representa la implementaci´on de la ecuaci´on 3.4.
Estimate Preference (userId, itemId, currentContext,
otherItems) Initializate values: contextSimilarity, total preference, total similarity
<<structured>> Loop: For each other item in otherItems
Setup
Test
Body
Get otherItemID from otherItems
get preference of userId for otherItemId
get similarity of contexts: current
context vs preference context get similarity of items: itemId vsotherItemId
add the product of preference, context similarity and user similarity to total preference
add the absolute value of product of user similarity and context similarity to total similarity
get the preference value as totalPreference/totalSimilarity
preference exists? otherItemID is different from itemId?
YES
NO YES
NO
Just Physical and PROVIDER Environment
Cap´ıtulo 4. Construcci´on de un sistema de recomendaciones soportado en informaci´on contextual