Download Inteligencia artificial aplicada a sistemas de recomendación
Document related concepts
no text concepts found
Transcript
15/10/2010 Programación Lógica en Inteligencia Artificial Programación Exploratoria – Año 2010 Ing. Ingrid Christensen ISISTAN – Facultad de Ciencias Exactas UNCPBA Agenda Inteligencia Artificial ◦ Conceptos, enfoques y definiciones ◦ Inteligencia Artificial aplicada Agentes Inteligentes ◦ Definición y ejemplos ◦ Sistemas de Recomendación ¿Qué son los SR? Dominio de aplicación y entradas Programación de agentes: JavaLog 2 Inteligencia Artificial ¿Qué es para ustedes la Inteligencia artificial? 3 1 15/10/2010 Concepto de IA (1) 1. La Inteligencia Artificial (IA) es el estudio de cómo lograr que las computadoras realicen tareas que, por el momento, los humanos hacen mejor. 2. Inteligencia Artificial se define como la inteligencia exhibida por una entidad artificial 4 Concepto de IA (2) Inteligencia: capacidad mental para razonar, planear, resolver problemas, pensar de manera abstracta Artificial: no natural, hecha por el hombre. Generalmente se supone una computadora. 5 Concepto de IA (3) La inteligencia artificial intenta comprender las entidades inteligentes (humanos), con el propósito de (a diferencia de la psicología y la filosofía) construir entidades inteligentes además de entenderlas. 6 2 15/10/2010 IA: Enfoques y definiciones Existen diferentes enfoques de la IA que varían a lo largo de dos dimensiones Sistemas que piensan como humanos Sistemas que piensan racionalmente Sistemas que actúan como humanos Sistemas que actúan racionalmente 7 Actuar como humanos (1) El test de Turing ◦ Propuesto por Alan Turing en 1950 ◦ Una persona interroga a una computadora y la computadora pasa el test si el interrogador no puede decir si del otro lado hay un humano o una computadora 8 Actuar como humanos (2) Capacidades que debería tener la computadora: ◦ ◦ ◦ ◦ Procesamiento de lenguaje natural Representación de conocimiento Razonamiento automático Aprendizaje automático 9 3 15/10/2010 Pensar como humanos Estudio interdisciplinario de cómo la información es representada y transformada en la mente/cerebro. Combinación de IA y psicología para la construcción de teorías estables y precisas de cómo trabaja la mente humana. 10 Pensar racionalmente Pensar Correctamente Procesos de razonamiento irrefutables Obtener conclusiones correctas dadas las premisas correctas. ◦ Ejemplo: Juan es un hombre; Todos los hombres son mortales; entonces, Juan es mortal. 11 Actuar racionalmente Actuar racionalmente implica actuar para lograr nuestros objetivos a partir de nuestras creencias. Comportamiento racional: realizar lo que se considera correcto No implica necesariamente el pensamiento (ej. actos reflejos) 12 4 15/10/2010 Inteligencia Artificial aplicada 13 Agentes Un agente es cualquier cosa que perciba su entorno a través de sensores y actúe en consecuencia al entorno a través de accionadores. Agentes humanos: ojos, orejas y otros órganos como sensores; manos, piernas, boca y otras partes del cuerpo como accionadores. Agentes robóticos: cámaras como sensores; motores como accionadores 14 Agentes Inteligentes (1) Un agente de software es un programa que actúa en nombre del usuario o de otro programa. El hecho de actuar “en nombre de”, implica la autoridad de decidir si es apropiado actuar o no, y cuando hacerlo. Un agente inteligente exhibe además algún aspecto de inteligencia artificial, tal como razonamiento o aprendizaje. 15 5 15/10/2010 Agentes Inteligentes (2) Colabora Usuario Observa e imita Agente Interactúa con Interactúa con 16 Ejemplos de Agentes NewsAgent: generador de diarios digitales personalizados PersonalSearcher: buscador inteligente de páginas Web 17 Ejemplos de Agentes QueryGuesser: asistente para consultas en BD Administración Personalizada de Citas 18 6 15/10/2010 Sistemas de Recomendación (1) A menudo es necesario seleccionar una entre varias alternativas sin tener un conocimiento exacto de cada una de ellas. En estas situaciones, la decisión final puede depender de las recomendaciones de otras personas 19 Sistemas de Recomendación (2) Objetivo: Asistir a los usuarios en sus procesos de búsqueda de información, ayudando a filtrar los ítems de información recuperados, usando recomendaciones propuestas sobre esos ítems. 20 SR: Dominio de aplicación La implementación de técnicas para el desarrollo de los SR está íntimamente relacionada con el tipo de información que se vaya a utilizar. •Título •Título •Año •Género Película •Director Libro •Autor •Actores •Editorial •Etc. •Etc. 21 7 15/10/2010 Entradas de los SR Los SR para generar recomendaciones, usan las entradas del usuario activo (perfil), pero también información sobre los ítems o información del resto de usuarios del sistema, que actúan como colaboradores. 22 Generación de recomendaciones SR no colaborativos: ◦ Entrada: perfil de usuario activo y atributos de ítems ◦ Similitud entre ítems. SR colaborativos ◦ Entrada: perfil de usuario activo, atributos de ítems y perfiles de la comunidad de usuarios. ◦ Similitud entre usuarios ◦ Métodos basados en vecindad. 23 Amazon Amazon.com: Librería online Fue una de las primeras grandes compañías en vender bienes a través de Internet. Permite calificar libros comprados o leídos por el usuario. Sugiere libros a partir del perfil del usuario (compras previas, historial de navegación, similitud de atributos, etc.) 24 8 15/10/2010 GroupLens http://www.grouplens.org/ MovieLens : Sistema de filtrado colaborativo ◦ Recolecta las preferencias de los usuarios ◦ Grupo de usuarios (de la comunidad) con gustos similares ◦ Predicciones en base a las calificaciones dadas por el grupo. 25 jMusicGR (1) 26 jMusicGR (2) Reproductor y Recomendador de Música ◦ ◦ ◦ ◦ Recomendación individual (SR Colaborativo) Recomendación a grupos de usuarios Perfiles: Especificación explícita e implícita Similitud entre ítems a través de sus atributos ◦ Generación de recomendaciones en base a 6 algoritmos de los diferentes enfoques. 27 9 15/10/2010 Otros ejemplos de agentes de recomendación Recomendación de películas Recomendación de paquetes turísticos 28 Programación de agentes: JavaLog La programación de agentes involucra tanto el encapsulamiento de sus comportamientos como el de su estado mental Estado mental Colabora Usuario Observa e imita Agente Comportamiento Interactúa con Interactúa con 29 Agente Asistente Personal Organiza actividades considerando preferencias ◦ Horarios 007 habitualmente toma un Martini después de las 19 ◦ Lugares Las reuniones del proyecto siempre se realizan en la sala 2 ◦ Contactos La agente 99 tiene máxima prioridad ◦ Actividades 007 practica deportes de alto riesgo 30 10 15/10/2010 Programación de agentes: POO analizarActividad() agenda Estados mentales sugerirActividad() unAsistente Comportamiento aceptarActividad() preferencias agendarActividad() Agente Buscador Asistente 31 Programación de agentes: POO Problemas de POO ◦ Representación de estados mentales„ Objetivos: lo que un agente tiene que hacer Creencias: observaciones y suposiciones Intenciones: lo que desea llevar a cabo en un momento en particular Manipulación y administración de estados mentales complejos„ Mejor alternativa: ProLog 32 Programación de agentes: ProLog unAsistente analizarEvento(…):-… sugerirEvento(…):-… aceptarEvento(…):-… agendarEvento(…):-… Comportamiento + Estados mentales reunion(…):-… preferencias(…):-… Problemas de la programación lógica ◦ No provee encapsulamiento ◦ No permite modularizar ◦ Junta código y datos 33 11 15/10/2010 JavaLog: Lo mejor de ambos mundos JavaLog= Programación Orientada a Objetos (Java) + Programación Lógica (ProLog) Programar un agente como un objeto Java: ◦ Funcionalidad es implementada como métodos Java ◦ Módulos lógicos: secuencia de clausulas lógicas ProLog ◦ Objeto-Agente: Objeto capaz de representar y manipular estados mentales 34 JavaLog: Lo mejor de ambos mundos ◦ Cada Objeto-Agente tiene asociado un objeto Brain para la manipulación de clausulas lógicas brain JavaLog Clausulas Lógicas unAsistente Métodos Java 35 Módulos Lógicos Secuencia de clausulas lógicas JavaLog permite definir módulos lógicos en variables y en métodos Java unAsistente Asistente ProLog variable método Clausulas representando estados mentales Clausulas manipulando estados mentales 36 12 15/10/2010 Módulos Lógicos Puede contener datos o código según corresponda Preferencias del usuario preferencia(E,10):- evento(E, negocios, P, Fecha, Hora, Lugar), member(X,P), jefe(P). preferencias(E,9):- evento(E, golf,_,_,_,_,_). preferencia(E,10):- evento(E, social, P, Fecha, _, _), noLaborable(Fecha), member(X,P),amigo(X). Evaluación de eventos mejor(E,P):-mejor(E,10,P). mejor(E,X,X):-preferencia(E,X), !. mejor(E,X,P):-X1 is X-1, mejor(E,X1,P). ?-mejor(E,X). 37 Módulos Lógicos Un módulo lógico puede estar habilitado o inhabilitado: Estados mentales de un agente modulo3 Módulos habilitados modulo1 modulo2 Módulo inhabilitado Para resolver una consulta sólo se utilizan los módulos habilitados, ignorando el resto 38 Composición de un agente Interprete JavaLog Java+Prolog analizarActividad() agenda Estados mentales sugerirActividad() unAsistente preferencias preferencia(…):-… preferencia(…):-… aceptarActividad() Comportamiento agendarActividad() 39 13 15/10/2010 Composición de un agente Clase Java Asistente preferencias Estados mentales privados (en módulos lógicos ref. por variables) Comportamiento y estados mentales de una clase de agentes (en módulos lógicos) agenda brain Interprete JavaLog Sentencias Java„ „ sugerirActividad() aceptarActividad() Métodos analizarActividad() Evaluación de eventos „ Sentencias Java agendarActividad() Método con código Java y ProLog 40 Módulos Lógicos en variables La clase Asistente posee dos variables de instancia contexto1 y contexto2 referenciando cada una de ellas un módulo lógico con diversas preferencias sobre eventos sociales, de negocio, etc. contexto1= {{ preferencia(A,10):- evento(A, negocios, P, Fecha, Hora, Lugar), member(X,P), jefe(P). preferencias(A,9):- evento(A,golf,_,_,_,_,_).}} unAsistente contexto2= {{ preferencia(A,10):- evento(A, social, P, Fecha, _, _), noLaborable(Fecha), member(X,P),amigo(X).}} 41 Módulos Lógicos en variables Asistente Brain brain LogicModule preferencias1 LogicModule preferencias2 LogicModule preferencias3 contexto1= {{ preferencia(A,10):- evento(A, negocios, P, Fecha, Hora, Lugar), member(X,P), jefe(P). preferencias(A,9):- evento(A,golf,_,_,_,_,_).}} Metodos… preferencia1 brain unAsistente preferencia2 contexto2= {{ preferencia(A,10):- evento(A, social, P, Fecha, _, _), noLaborable(Fecha), member(X,P),amigo(X).}} 42 14 15/10/2010 Módulos Lógicos en métodos Un método puede utilizar módulos lógicos ◦ En variables locales/parámetros LogicModule contexto1= {{ preferencia(A,10):- evento(A, negocios, P, Fecha, Hora, Lugar), member(X,P), jefe(P). preferencias(A,9):- evento(A,golf,_,_,_,_,_).}}; combinarpreferencias(contexto1); ◦ Como parte del método //declaraciones de variables locales … for(…)… {{mejor(E,P):-… … ?-mejor(E,X).}}; … 43 Conclusiones La integración de objetos y lógica permite aprovechar las ventajas de ambos paradigmas JavaLog ha mostrado ser de gran utilidad para construir agentes y sistemas multi-agentes 44 Preguntas 45 15