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