Sistema
Sistema Multi Multi - - Agente Agente Media
Media ç ç ão ão Electr Electr ó ó nica nica de de Seguros Seguros
Luís Nogueira (ISEP) Eugénio Oliveira (FEUP)
LIACC / NIAD&R
Motivação e Objectivos
Problema apresentado na Industrial Session - AMEC SIG Meeting, 2001
Sistema multi-agente
•
Comparar e avaliar produtos complexos•
Valor acrescentado para clientes/seguradoras•
Agrupar utilizadores e extrair estereótipos•
Usando serviços de mediação inteligentesResumo
Comércio electrónico de seguros
Apresentação do BIAS
Desafios à sua implementação
Exemplo e resultados
Conclusões e aplicações noutros cenários
Comércio Electrónico de Seguros
Seguradoras vendem directamente aos clientes, excluindo o intermediário
Serviços de mediação existentes exigem produtos standard
Papel do intermediário é reduzido
Comércio Electrónico de Seguros
Web
Seguradora
Seguradora
Seguradora
Comércio Electrónico de Seguros
Web
Seguradora
Seguradora
Seguradora Broker
BIAS
Brokerage in Insurance – an Agent-based System
AS
AS
AS Comunidades
de utilizadores Estereótipos
Negociação Ontologia
Agente Intermediário
AC Descrição do
cliente e necessidades
Propostas de produtos Interacção em
representação do cliente
Comentário qualitativo Produtos
personalizados
...
Principais Vantagens
Cliente
•
Delega responsabilidades na procura de seguro personalizado
Seguradoras
•
Mantêm flexibilidade na oferta
Intermediário
•
Mantém papel no mercado electrónicoDesafios
Criar uma ontologia do domínio
Negociar (avaliar, comparar, …) um produto complexo
Modelar a interacção com cada utilizador individual
Aprender as preferências de diferentes grupos de utilizadores
Ontologia
Garantir consistência e compatibilidade da informação
•
Expressão mesmo significado•
Conceito mesma expressão
Standards não se revelaram adequados
•
Muito complexos•
Sem suporte à negociaçãoOntologia
{Obj, Comp, Atr, Val, OCr , CAr , AVr , Deps}
•
Conjunto de identificadores {Obj, Comp, Atr, Val}•
Conjunto de relações {OCr, CAr, Avr}•
Conjunto de dependências entre valores de atributos {Deps}Ontologia
<object name=”Life Insurance”>
<component name=”policy”\>
</object>
<component name=”policy”>
<attribute name=”policy_type”/>
</component>
<attribute name=”policy_type” mandatory=”yes” ...>
<type> string </type>
<domain> set of values</domain>
<values> Term, Whole Life</values>
</attribute>
Negociação de Seguros
Requisitos do domínio
•
Seguro descrito por múltiplos atributos•
Dependências entre atributos•
Intervenientes pretendem manter privacidadeAlgoritmo Negociação_Q (Rocha & Oliveira)
•
Negociação multi-atributo•
Aprendizagem ao longo do processo de negociação•
Mantém a informação privada•
Resolução de dependênciasNegociação de Seguros
Cliente Intermediário Seguradoras
(1) Pedido
(2) Anúncio (3) Propostas (4) Propostas
(5) Contra-propostas
(6) Comentário qualitativo (7) Propostas
(8) Comentário qualitativo (9) Propostas finais múltiplas rondas
(10) Propostas seleccionadas
(11) Selecção / Rejeição
Avaliação das Propostas
Avaliação multi-atributo
•
Quantifica desvio da proposta em relação ao pretendido pelo cliente
Intermediário fornece comentário qualitativo às seguradoras
•
Apreciação qualitativa de cada um dos atributos•
Distância entre a proposta actual e a melhor propostaFormulação das Propostas
Seguradoras usam comentário para formular novas propotas
•
Recompensa depende do comentário recebido•
Espaço de exploração reduzidoBaseada nas possibilidades, experiência e comentário qualitativo
Conjunto de tácticas negociais
•
Dependentes do tempo, importância dos atributos, …Interacção com o Utilizador
Pedido do cliente incompleto
•
Não conhece a totalidade das opções•
Não sabe especificar todos os atributos
Soluções propostas
•
Agente Cliente cria um perfil do utilizador•
Agente Intermediário ajuda a definir pedido inicial com um “seguro padrão” (estereótipo)Perfil do Utilizador
Opções para a construção do perfil
•
Feedback explícito vs. implícito
Modelação implícita das preferências
•
Menor necessidade de interacção•
Construção parte da observação das acções•
Conjunto de treino propostasseleccionadas na 1ª ronda de negociação
Perfil do Utilizador
Extrair vector de frequências numa proposta seleccionada pelo utilizador
•
Vi = [x1:Fp1, x2:Fp2, ..., xn:Fpn]•
Fpi frequência do valor numa dada proposta
Perfil criado a partir dos vectores de frequências
•
Propostas semelhantes possuem vectores semelhantesPerfil do Utilizador
Perfil representado por vector n-dimensional
•
Cada dimensão corresponde a um atributo de um seguroDimensão representa um valor e o seu peso
Peso reflecte importância relativa do atributo para o utilizador
Wi = Fpi * (Fsi / np)
Perfil do Utilizador (Exemplo)
Critérios de selecção
•
Tempo: 5 a 10 anos•
Prémio: < 5057 Semestral
60000 10 anos
Temporário P7
32 Semestral
50000 10 anos
Temporário P6
41 Semestral
50000 1 ano
Temporário P5
30 Mensal
40000 10 anos
Temporário P4
45 64 35
Prémio
Semestral 50000
--- Permanente
P3
Anual 60000
5 anos Temporário
P2
Mensal 50000
5 anos Temporário
P1
Pagamento Capital
Tempo Tipo
Perfil do Utilizador (Exemplo)
Frequências
Tipo = {temporário : 3, permanente : 0}
Tempo = {1 ano : 0, 5 anos : 1, 10 anos : 2, 15 anos : 0}
Capital = {40000 : 1 , 50000 : 2, 60000: 0}
Pagamento = {mensal : 2, semestral : 1, annual : 0}
Prémio = {20 40 : 3, 40 60 : 0, 60 inf : 0}
Perfil do Utilizador (Exemplo)
[ Tipo = {temporário : 1.0},
Tempo = {10 anos : 0.67, 5 anos : 0.33}
Capital = {50000 : 0.67, 40000 : 0.33}
Pagamento = {mensal : 0.67, semestral : 0.33 } Prémio = {20 40 : 1.0} ]
Frequências
Tipo = {temporário : 3, permanente : 0}
Tempo = {1 ano : 0, 5 anos : 1, 10 anos : 2, 15 anos : 0}
Capital = {40000 : 1 , 50000 : 2, 60000: 0}
Pagamento = {mensal : 2, semestral : 1, annual : 0}
Prémio = {20 40 : 3, 40 60 : 0, 60 inf : 0}
Comunidades de Utilizadores
Identificação de comunidades distinctas numa população de utilizadores
•
Estruturar conjunto de exemplos não classificados criando grupos com base nas semelhançasDeterminar conjuntos com significado (comunidades)
Determinar conceitos com significado para cada conjunto (estereótipos)
Comunidades de Utilizadores
Construídas automaticamente
•
Aprendizagem não supervisionada
Agrupamento conceptual apropriado para resumir e explicar informação
COBWEB (Fisher, 1987) usa conceito
de utilidade da partição (Gluck e Corter,
1985)
COBWEB
Dada uma nova observação
•
Classificar o exemplo num cluster existente•
Criar um novo cluster•
Combinar dois clusters num único•
Dividir um cluster em vários clusters
Seleccionada a hierarquia que maximiza
o valor da utilidade da partição
Criação de Comunidades
Partições são geradas incrementalmente
•
Agrupando utilizadores com características semelhantes•
Maximizando a diferença para as restantes partições
Comunidades representam grupos bem definidos
•
Possível explicar os conceitos associados à hierarquia criadaComunidades (Exemplo)
U1 U2 U3 C1
Sim Sim Não Não Filhos Estado
Civil Utilizador
Casado U4
Casado U3
Casado U2
Solteiro U1
Comunidades (Exemplo)
U1 U2 U3 C1
Sim Sim Não Não Filhos Estado
Civil Utilizador
Casado U4
Casado U3
Casado U2
Solteiro U1
U1 U2 C1
C2
U3 U4 Adicionando U4
Como extrair um significado?
Comunidades podem ser usadas para melhorar serviços do intermediário
Construir um modelo de cada comunidade (estereótipo)
•
Representativo dos seus utilizadores•
Significativamente diferente das restantes comunidadesEstereótipos
Construídos através da identificação de padrões
Métrica avalia (para cada componente)
•
Aumento da frequência numa dada comunidade (fi)•
Frequência no número total de observações (fc)AF
c= f
i2– f
c2Estereótipos
Quando considerar que uma preferência é representativa de uma comunidade?
•
AFc < 0 Componente não é representativo•
AFc > ß Componente é representativo
Variando ß é possível medir
•
Componentes cobertos nos estereótipos•
Sobreposição entre os estereótiposEstereótipos (Exemplo)
User
Comp1, Comp4, Comp5, Comp6
U4
Comp1, Comp5
U3
Comp1, Comp6, Comp8
U2
Comp1, Comp6
U1
U1
C1
C2
U3 U4 U2
Estereótipos (Exemplo)
User
Comp1, Comp4, Comp5, Comp6
U4
Comp1, Comp5
U3
Comp1, Comp6, Comp8
U2
Comp1, Comp6
U1
U1
C1
C2
U3 U4
Estereótipo C2 (ß = 0.05) AFc = fi2 – fc2
AFComp1 = (2/2)2 – (4/4)2 = 0.0
AFComp4 = (1/2)2 – (1/4)2 = 0.185 AFComp5 = (2/2)2 – (2/4)2 = 0.75 AFComp6 = (1/2)2 – (3/4)2 = -0.315 U2
Exemplo funcionamento BIAS
AS
AS
AS
...
Agente Intermediário
Dados Necessidades
Cliente
[Sexo: Masculino, Idade: 35, ...]
Necessidades
Protecção de empréstimo
Insere cliente numa comunidade
AC
Exemplo funcionamento BIAS
AS
AS
AS
...
Estereótipo Comunidade
Produto
Seguro de Vida
Apólice
[Tipo: temporária, Capital: 350.000, Duração: 15 anos, …]
AC Agente
Intermediário
Exemplo funcionamento BIAS
AS
AS
AS
...
Pedido inicial
Produto
Seguro de Vida
Apólice
[Tipo: temporária, Duração: {15 anos, 10 anos}, …]
Agente Intermediário
AC
Ordem dos atributos/valores expressa preferências
Exemplo funcionamento BIAS
AS
AS
AS Inicia
negociação ...
Agente Intermediário
AC
Exemplo funcionamento BIAS
AS
AS
AS
...
Agente Intermediário
AC
Propostas 1ª ronda
Seguradora 1 [duração:15 anos,capital:300.000,...]
Seguradora 2 [duração:10 anos,capital:350.000,...]
...
Auxilia utilizador na comparação das propostas
Exemplo funcionamento BIAS
AS
AS
AS
...
Seguradoras / Contra-proposta
Seguradoras seleccionadas [Seguradora 1, Seguradora 3, ...]
Contra-proposta
[Capital: 350.000, Pagamento: mensal, … ]
Aprende perfil do utilizador
Agente Intermediário
AC
Exemplo funcionamento BIAS
AS
AS
AS
...
Agente Intermediário
AC Propostas /
Comentário
Múltiplas rondas de negociação
Exemplo funcionamento BIAS
AS
AS
AS
...
Propostas personalizadas
Seguradora 1 [capital:350.000,...,pagamento:mensal,...]
Seguradora 4 [capital:300.000,...,pagamento:mensal,...]
Diálogo com AC
satisfação de restrições
AC Agente
Intermediário
Exemplo funcionamento BIAS
AS
AS
AS
...
Agente Intermediário
AC
Auxilia utilizador na comparação das propostas
Selecção da vencedora
Seguradora 1
Exemplo funcionamento BIAS
AS
AS
AS
...
Agente Intermediário
AC
Actualiza estereótipos
Resultado da negociação
Resultados
Auxílio prestado pelo BIAS
•
Reduz significativamente a interacção exigida ao utilizador
Comunidades e estereótipos
•
Decisivos na qualidade do pedido inicial•
Adaptam-se a alterações no domínio
Perfil do utilizador
•
Enriquece a avaliação das propostasAspectos Técnicos
XML
•
Estruturação da informação trocada entre os agentes
Bee-gent
•
Plataforma de desenvolvimento
Castor
•
Mapear documentos XML em objectos Java e vice-versaBee-gent
Framework Java da Toshiba
2 tipos de agentes
•
Agent Wrapper - "embrulho" de aplicações existentes•
Mediation Agent - coordenação entre aplicações
Agentes comunicam por XML/ACL
Bee-gent
Interfaces comuns entre aplicações
Migração de agentes
Encriptação de dados
Conformidade com o standard da FIPA
Conclusões
Domínio complexo
•
Seguro possui muitos atributos e dependências•
Clientes não são peritos•
Seguradoras pretendem manter flexibilidade no comércio electrónico•
Mediadores pretendem manter valor acrescentadoSistema proposto representa uma nova abordagem na mediação de seguros
•
Necessidades individuais reflectidas nas propostasConclusões
Perfil do utilizador completa pedidos dos clientes
•
Melhorando avaliação das propostasComunidades de utilizadores identificadas automaticamente
•
Adaptam-se a alterações no domínioEstereótipos são representativos das preferências de uma comunidade
•
Permitem aconselhar clientes num mercado electrónico de segurosFlexibilidade da solução
Solução foi recentemente proposta para configuração da QoS em ambientes
abertos e heterogéneos
•
Serviços surgem/terminam dinâmicamente•
Preferências individuais dos utilizadores•
Limitações dos diversos dispositivos•
Fornecedores pretendem maximizar utilização dos seus recursosQuestões?
Bee-gent
public void action(){
// Define sub-goals
archive(new Goal(new Equal("Stage11","done")));
archive(new Goal(new Equal("Stage12","done")));
...
public void action(){
// Start Planning
Goal g = new Goal(new Equal("Stage1","done"),5);
post(g);
while(!checkEvent(g,'u'));
unpost(g);
}
Bee-gent
BrokerBeeStage12_stereotype(){
// Goal of this stage
setGoal(new Goal(new Or(new Equal("Stage12","done"), new Equal("Stage12","failed"))));
// Pre-condition of this stage setPrecond(new BeliefEvent(
new Equal("Stage12","failed"),'n'));
}
BrokerBeeStage12_stereotype_fail(){
// Goal of this stage
setGoal(new Goal(new Equal("Stage12","done")));
// Pre-condition of this stage setPrecond(new BeliefEvent(
new Equal("Stage12","failed"),'a'));
}