inteligencia artificial aplicada a sistemas de recomendación · programación lógica en...
TRANSCRIPT
15/10/2010
1
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
15/10/2010
2
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
15/10/2010
3
IA: Enfoques y definiciones
Existen diferentes enfoques de la IA que varían a lo largo de dos dimensiones
7
Sistemas que piensan
como humanos
Sistemas que piensan
racionalmente
Sistemas que actúan
como humanos
Sistemas que actúan
racionalmente
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
15/10/2010
4
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
15/10/2010
5
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
15/10/2010
6
Agentes Inteligentes (2)
16
Interactúa con
Interactúa con
Colabora
Observa e imita
Agente
Usuario
Ejemplos de Agentes
17
NewsAgent: generador de diarios digitales personalizados
PersonalSearcher: buscador inteligente de páginas Web
Ejemplos de Agentes
18
QueryGuesser: asistente para consultas en BD
Administración Personalizada de
Citas
15/10/2010
7
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.
21
Película
•Título
•Género
•Director
•Actores
•Etc.
Libro
•Título
•Año
•Autor
•Editorial
•Etc.
15/10/2010
8
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
15/10/2010
9
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
15/10/2010
10
Otros ejemplos de agentes de recomendación
28
Recomendación de películas
Recomendación de paquetes turísticos
Programación de agentes: JavaLog
La programación de agentes involucra tanto el encapsulamiento de sus comportamientos como el de
su estado mental
29
Interactúa con
Interactúa con
Colabora
Observa e
imita
Agente
Usuario
Comportamiento
Estado
mental
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
15/10/2010
11
Programación de agentes: POO
31
unAsistente
agendarActividad()
agenda
aceptarActividad()
sugerirActividad()
analizarActividad()
preferencias
Comportamiento Estados mentales
Agente
Asistente Buscador
Programación de agentes: POO
32
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
Programación de agentes: ProLog
33
unAsistente
analizarEvento(…):-…
sugerirEvento(…):-…
aceptarEvento(…):-…
agendarEvento(…):-…
reunion(…):-…
preferencias(…):-…
Comportamiento +
Estados mentales
Problemas de la programación lógica ◦ No provee encapsulamiento
◦ No permite modularizar
◦ Junta código y datos
15/10/2010
12
JavaLog: Lo mejor de ambos mundos
34
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
JavaLog: Lo mejor de ambos mundos
35
unAsistente
Clausulas Lógicas
Métodos Java
JavaLog brain
◦ Cada Objeto-Agente tiene asociado un objeto Brain para la manipulación de clausulas lógicas
Módulos Lógicos
36
Secuencia de clausulas lógicas
JavaLog permite definir módulos lógicos en variables y en métodos
Clausulas representando
estados mentales
Clausulas manipulando
estados mentales Asistente
unAsistente
Java ProLog
variable
método
15/10/2010
13
Módulos Lógicos
37
Puede contener datos o código según corresponda
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).
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).
Preferencias del usuario
Evaluación de eventos
Módulos Lógicos
38
Un módulo lógico puede estar habilitado o inhabilitado:
modulo3
modulo2
modulo1
Módulo inhabilitado
Módulos habilitados
Estados mentales de un agente
Para resolver una consulta sólo se utilizan los módulos habilitados, ignorando el resto
preferencia(…):-… preferencia(…):-…
Composición de un agente
39
unAsistente
agendarActividad()
agenda
aceptarActividad()
sugerirActividad()
analizarActividad()
preferencias
Comportamiento Estados mentales
Interprete JavaLog
Java+Prolog
15/10/2010
14
Composición de un agente
40
Comportamiento y estados mentales de una clase de agentes (en módulos lógicos)
Estados mentales privados (en módulos
lógicos ref. por variables)
Interprete JavaLog
agendarActividad()
agenda
aceptarActividad()
sugerirActividad()
analizarActividad()
preferencias
Asistente
brain
Métodos
Sentencias Java„ „ „ Sentencias Java
Evaluación de eventos
Clase Java
Método con código Java y ProLog
Módulos Lógicos en variables
41
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).}}
Módulos Lógicos en variables
42
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).}}
Asistente
Brain brain
LogicModule preferencias1
LogicModule preferencias2
LogicModule preferencias3
Metodos…
preferencia1
preferencia2
brain
15/10/2010
15
Módulos Lógicos en métodos
43
Un método puede utilizar módulos lógicos
◦ En variables locales/parámetros
◦ Como parte del método
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);
//declaraciones de variables locales
…
for(…)…
{{mejor(E,P):-…
…
?-mejor(E,X).}};
…
Conclusiones
44
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
Preguntas
45