![]() |
![]() |
|
|
4. Raciocínio Baseado em Casos - Estendendo RP com um Framework de IA 4.1. Introdução 4.1. Introdução Nos últimos anos, o Raciocínio Baseado em Casos (RBC) surgiu como uma técnica poderosa para solução automática de problemas. RBC é aplicável de forma simples e direta a um amplo espectro de tarefas, todas tipicamente relacionadas à Inteligência Artificial (IA). A idéia básica do enfoque de RBC é resolver um novo problema relembrando uma situação anterior similar e, então, reutilizando informação e conhecimento daquela situação [RS89]. Neste capítulo será fornecida ao aluno uma visão geral da teoria, das tecnologias e das aplicações de RBC. Para isso, abordaremos cada uma das técnicas mais importantes e forneceremos, passo a passo, um exemplo de um sistema de RBC para diagnóstico de defeitos em impressoras, o qual servirá como linha-mestra para exemplificar e explicar as metodologias e aspectos do RBC que serão descritos neste capítulo. Cada aspecto da teoria ou técnica que for sendo descrito neste capítulo será demonstrado com utilização desse exemplo. Ao final do capítulo será realizada uma discussão sobre as vantagens do RBC em relação a outras tecnologias, em aplicação em problemas similares. Citaremos vários aspectos técnicos que serão detalhados no decorrer desta disciplina. O objetivo deste
capítulo
é apresentar ao aluno uma visão panorâmica do RBC e
fornecer-lhe uma compreensão inicial, fundamentada em exemplos,
do que seja um sistema de RBC simples.
4.1.1. Usando Casos Um grande
número de
exemplos da vida diária pode ser utilizado para demonstrar como
seres humanos utilizam casos conhecidos como uma forma de
resolução
de problemas de um modo extremamente natural.
A tecnologia de RBC pode ser vista de dois pontos de vista diferentes. Pode ser considerada como uma metodologia para modelar o raciocínio e o pensamento humanos e também como uma metodologia para construir sistemas computacionais inteligentes. 4.1.2. Elementos Básicos do RBC Os elementos básicos de um sistema de RBC são:
A representação do conhecimento é um aspecto essencial do RBC. A forma principal de representação de conhecimento em um sistema de RBC são os casos. Um caso é uma peça de conhecimento contextualizado que registra um episódio em que um problema ou situação problemática foi total ou parcialmente resolvido. Um caso representa tipicamente a descrição de uma situação (problema) conjuntamente com as experiências adquiridas (solução) durante a sua resolução, sendo visto como essa associação dos dois conjuntos de informações: descrição do problema e respectiva solução. 4.2.1. Casos representam experiências concretas Casos podem, por exemplo, representar:
Casos contêm primordialmente experiências concretas, vividas em uma situação específica. No entanto, podemos também criar casos abstratos, que realizam a subsunção de experiências adquiridas em um conjunto de situações. 4.2.2. Casos são armazenados na Base de Casos Para que estejam à disposição para serem reutilizados, casos são organizados e armazenados em uma base de casos (BC), um conjunto de casos apropriadamente organizados. Geralmente, uma base de casos contém experiências positivas descrevendo estratégias de solução que contribuíram com sucesso para resolver o problema descrito, de forma que possam ser reutilizadas. Experiências negativas, expressando tentativas frustradas de solução de um problema podem também ser armazenadas, com o objetivo de indicar problemas potenciais e prevenir a repetição de erros passados. 4.2.3. Repositórios de Conhecimento Ao lado de casos, um sistema de RBC pode também incluir conhecimento geral acerca do seu domínio de aplicação. Existem quatro diferentes repositórios nos quais um sistema de RBC pode armazenar conhecimento, denominados Repositórios de Conhecimento. São:
Material da Aula em PDF
Uma das hipóteses básicas de sistemas de RBC é que problemas similares possuem soluções similares. Com base nesta hipótese, o critério a posteriori da utilidade de soluções passa a ser reduzido ao critério a priori similaridade de descrições de problema. Esta forma de se proceder é justificada pela premissa de que, em muitas aplicações, a similaridade de definições de problemas implica a aplicabilidade da solução de um sobre outro. A eficácia de enfoques baseados em casos depende essencialmente, portanto, da escolha de um conceito de similaridade adequado para o domínio de aplicação e a estrutura dos casos usados. Este conceito de similaridade deveria permitir a estimativa da utilidade de um caso com base na similaridade observada entre a descrição do problema atual e a contida no caso. No cerne da definição do conceito de similaridade é preciso, portanto, que esteja a questão da determinação da utilidade do caso escolhido para a solução da problemática atual. A solução descrita em um exemplo de caso escolhido pode ser útil para um novo problema, caso ela:
Em linguagem
coloquial, similaridade
é entendida como sendo a correspondência ou
co-ocorrência
de atributos ou características. No contexto do RBC, esta
visão
simplista deve ser tomada de forma mais diferenciada.
Uma meta de recuperação explicitamente coloca o objeto a ser reutilizado, a finalidade de sua reutilização, a tarefa relacionada à reutilização, o ponto de vista específico e o contexto particular. 4.3.2. Indexação Para que se possa
encontrar
casos similares na base de casos para um problema dado, temos de
definir
quais atributos usaremos para realizar a comparação entre
um caso e a situação presente.
Assuma que, independentemente da representação de casos específica utilizada (veja Capítulo 4), um caso consista de um conjunto de entidades de informação. Uma entidade de informação (EI) é uma parte atômica de um caso ou descrição de problema. Por exemplo, em relação à representação de pares atributo-valor, cada atributo representa uma entidade de informação do caso. Podemos então diferenciar as entidades de informação no âmbito de um caso de acordo com seu uso:
4.3.3. Similaridade Ao lado da análise e caracterização empíricas de critérios de similaridade, modelos formais também ocupam um espaço bastante grande no RBC. Modelos formais de similaridade procuram axiomatizar o processo da determinação da similaridade realizado pelo ser humano. As suposições assumidas no modelo podem então ser verificadas de forma empírica. Uma série de suposições básicas a respeito de julgamentos de similaridade são:
4.3.4. Formalização do conceito de similaridade A medida de similaridade é a formalização de uma determinada filosofia de julgamento de semelhança através de um modelo matemático concreto. No RBC se pode formalizar o conceito de similaridade por meio de três formas diferentes:
Provavelmente a forma mais conhecida de formalização do conceito de similaridade é a definição de uma medida numérica de distância ou similaridade. Em contraste com a utilização de uma relação de preferência, na utilização de uma medida em conjunto com informação de precedência é realizada também uma quantificação da similaridade. Similaridade entre dois objetos, como a entendemos de forma intuitiva, recebe o nome de similaridade global em RBC. Para determinarmos a utilidade de um caso em relação a uma determinada pergunta, a similaridade global entre o caso e a pergunta deve ser determinada. Para o exame compreensivo da similaridade entre uma questão dada e os casos na base de casos, a similaridade local entre atributos específicos pode ser considerada ao se computar a similaridade global. Como conseqüência, um caso com valores de atributo diferentes, mas que podem ainda ser similares ao procurado, não é passível de ser distinguido de outro, cujos valores são completamente diferentes. A consideração de similaridades locais permite a integração das similaridades entre atributos isolados ao cálculo da similaridade global, tornando-a muito mais sensitiva. Durante a aula examinaremos todos os aspectos da simlaridade globbal e local e suas formas de definição e cálculo. Material da Aula em PDF
Neste laboratório vamos ver a parte inicial do desenvolvimento de um sistema de RBC, partindo da definição do problema e suas variáveis mais importantes até o desenvovlimento de uma aplicação simples com recuperação de casos similares e definição de medidas de similaridade simples sobre vocabulários previamente definidos. 4.5. Reutilização e Adaptação de Casos Uma vez que um caso adequado é recuperado da base de casos, a solução sugerida por este caso é objeto de uma tentativa de reutilização para a solução do problema atual. Durante este passo, dá-se uma reutilização de conhecimento de solução de problemas por meio da transferência de conhecimento (a descrição da solução) do caso anterior, conhecido, para o caso atual, ainda não solucionado. Nesta seção examinaremos brevemente o que é necessário que um sistema de RBC seja capaz de realizar, para que tenha condições de, com ou sem interação com o usuário, aplicar ao problema atual a solução descrita para um problema similar recuperado da base de casos. Chamamos este passo de reutilização. A reutilização consiste principalmente da adaptação da solução do caso anterior ao caso atual, e as técnicas tratadas na reutilização de casos tentam resolver os problemas envolvidos na adaptação de casos, que são: quais aspectos da situação devem ser adaptados, quais modificações devem ser realizadas para esta adaptação, que método aplicar para realizar a adaptação e como controlar este processo. No correr da aula, analisaremos estes problemas e veremos técnicas para a sua solução. Adaptação tem um papel fundamental na flexibilidade dos sistemas de RBC, e a sua capacidade de resolver novos problemas depende de sua habilidade em adaptar casos recuperados a novas circunstâncias e em sua habilidade de consertar soluções que falham ao serem aplicadas. A dificuldade maior surge quando tentamos definir como realizar a adaptação. Há muitas maneiras de se adaptar um caso, e a adaptação efetiva depende, tanto de se possuir conhecimento sobre possíveis modificações válidas, como de se possuir maneiras de selecionar quais serão apropriadas e efetivas em uma determinadas situação. Questões centrais para a adaptação de casos são:
Uma visão geral destas técnicas, que são exploradas por muitos autores da atualidade, é dada na figura abaixo: No correr da aula discutiremos as principais delas. Material da Aula em PDF
Neste laboratório vamos ver os passos finais par o desenvovlimento de uma aplicação completa em RBC, utilizando todos os recursos de CBR-Works, inclusive com disponibilização da aplicação na Web. Figura: Exemplo
de sistema
on-line para compra de carros usados.
Para prover uma visão geral da aplicação de sistemas de RBC, faremos distinção, aqui, entre o domínio de aplicação e o tipo de tarefa a ser executado pelo sistema. 4.7.1. Tarefas A tarefa de um sistema de RBC descreve o tipo de ação para a qual o sistema será utilizado, como, por exemplo, diagnóstico, configuração, planejamento, etc. Isto determinará o tipo de problemas e de soluções, bem como a natureza das atividades a serem desenvolvidas pelo solucionador de problemas baseado em casos. Como discutimos em capítulos anteriores, tarefas podem ser classificadas em tarefas sintéticas e tarefas analíticas. Tarefas analíticas cobrem uma ampla faixa de aplicações que compartilham determinadas características. Geralmente um novo caso é comparado àqueles da base de casos para determinar a qual tipo, categoria ou classe pertence. A solução associada ao caso mais similar dentro da classe correspondente é então apresentada. Tarefas analíticas de sistemas de RBC típicas são:
4.7.2. Domínio de aplicação O domínio de aplicação de um sistema de RBC é a área na qual o sistema é aplicado, por exemplo, medicina, arquitetura, administração, finanças ou engenharia mecânica. Cada domínio possui suas características próprias, que influenciam fortemente a escolha da forma de representação de conhecimento a ser utilizada. Daremos abaixo alguns exemplos de domínios, mas que não são exaustivos. Sugerimos a literatura no fim desta página para detalhes. Classificação O objetivo da tarefa de classificação é classificar uma nova situação ou problema em um contexto específico. Em aplicações de classificação, um problema é descrito por meio de um conjunto de sintomas ou observações e da solução para o problema; assim, o resultado da classificação é a seleção de uma ou mais classes ou categorias nas quais o problema poderia ser classificado. Em sistemas de classificação baseados em casos, um caso representa, portanto, uma descrição de problema e sua classificação. Uma forma pela qual um classificador baseado em casos trabalha é perguntando se o novo conceito ou problema é suficientemente similar a outro do qual se sabe que possui uma determinada classificação. O sistema de RBC tenta, então, adivinhar a categoria à qual o novo problema pertence olhando o quanto as EIs importantes do novo caso correspondem a EIs importantes de categorias armazenadas na base de casos. Diagnóstico No diagnóstico, um conjunto de sintomas é dado e o objetivo é explicá-los. Ao contrário da classificação, o diagnóstico usualmente inclui o processo de levantamento de sintomas adicionais com o objetivo de melhorar a acurácia da solução do problema. Portanto, durante o processo de diagnóstico, testes podem ser realizados com o objetivo de obter-se valores de sintomas adicionais. Além disso, enquanto a tarefa principal continua sendo a de prover um diagnóstico, subtarefas podem objetivar encontrar diferenças entre conjuntos de observações para determinar qual teste deveria ser aplicado a seguir. Um sistema de RBC pode utilizar casos para oferecer explicações para sintomas e também alertar sobre explicações que se mostraram erradas no passado. O diagnóstico de um caso passado não necessariamente se adapta exatamente ao novo caso, podendo ser necessário adaptá-lo por meio de conhecimento baseado em modelos do domínio. Projeto e Configuração Projeto e configuração são geralmente compreendidos como a construção de um artefato a partir de um conjunto de componentes dados, de forma que certas condições sejam satisfeitas, podendo ser compreendido como um problema de satisfação de restrições. O projeto introduz certo nível de criatividade, pois alguns componentes ou elementos estruturais necessários podem não ter sido explicitados na descrição do problema. Normalmente as restrições sub-restringem o problema, possibilitando a existência de várias soluções. Algumas vezes, no entanto, o problema se encontra super-restringido, fazendo com que nenhuma solução satisfaça todas as restrições. Nestes dois contextos, sistemas de RBC oferecem várias vantagens. Casos sugerem soluções satisfatórias para problemas sub-restringidos. As soluções podem não ser todas corretas, mas, como em problemas sub-restritos muitas soluções podem ser aplicadas e várias são apresentadas, uma delas poderá ser apropriada, e estratégias de adaptação podem ser usadas para adequá-la completamente. Em problemas super-restringidos, casos podem sugerir um conjunto alternativo de restrições que funcionou em combinação com problemas similares no passado. Enquanto alguma adaptação ainda tem de ser realizada, uma relaxação de restrições completa e computacionalmente complexa pode ser evitada. Suporte a Vendas O objetivo do suporte a vendas é oferecer auxílio à venda de produtos, estimando custos ou realizando análises de mercado. Inclui também aplicações de comércio eletrônico inteligente. A área mais ativa em RBC é o comércio eletrônico. Comércio eletrônico pode ser definido como qualquer atividade de comunicação em forma eletrônica realizada para oferecer suporte a atividades comerciais [WLW98]. Isto pode se inserir em diferentes momentos da venda, da pré-venda à pós-venda. Durante a
pré-venda,
um cliente expressa um desejo e é provido com toda a
informação
solicitada sobre produtos e serviços. Isto geralmente é
realizado
com utilização de catálogos eletrônicos de
produtos
disponíveis pela Internet.
Situações de pós-venda ocorrem quando clientes enfrentam problemas com produtos ou serviços adquiridos anteriormente, ou quando necessitam de suporte adicional para efetivamente utilizarem o produto. O suporte a clientes é normalmente localizado nos call centers, em que o pessoal de atendimento oferece auxílio pelo telefone. Outras opções são as listas de FAQs na Internet. Neste contexto, o objetivo do RBC é oferecer ao cliente serviços e facilidades melhores de seleção. Por exemplo, durante a situação de pré-venda, o RBC pode ser aplicado para oferecer catálogos de produtos inteligentes (e não apenas listas de produtos estáticas), capazes de oferecer um produto ou serviço similar, caso o requisitado pelo cliente não esteja disponível, ou, então, capazes simplesmente de oferecer um produto com base em um conjunto de características dadas pelo usuário. 4.7.3. Novos pacotes para aplicações industriais e comerciais Orenge (Open Retrieval ENGinE) é o nome da ferramenta que está se estabelecendo como o mais novo ambiente para desenvolvimento de sistemas de RBC. Orenge é uma ferramenta de desenvolvimento de aplicações de RBC recentemente lançada e desenvolvida em JAVA. Sua principal área de aplicação é servir para o desenvolvimento de aplicações de RBC na área de Raciocínio Baseado em Casos textual, servindo principalmente para desenvolver aplicações comerciais e industriais que lidam com grandes quantidades de texto. Orenge é uma infra-estrutura para o desenvolvimento de máquinas de busca multiconteúdo inteligentes para a gestão de conhecimento em JAVA e XML. Existe tanto para ambientes Linux como para Microsoft Windows. Orenge foi desenvolvido pelo mesmo grupo de pesquisadores chefiado por Stefan Wess, que desenvolveu CBR-Works, tendo também sido desenvolvido na empresa tecInno/empolis Knowledge Management. Ao contrário de CBR-Works, Orenge é uma ferramenta exclusivamente para o desenvolvedor profissional, e não possui uma interface gráfica de usuário. É constituída por uma coleção de ferramentas de linha de comando, que devem ser usadas em conjunto com o editor de programas de escolha do desenvolvedor, no qual os modelos de casos, medidas de similaridade etc., são codificados seguindo a sintaxe definida por Orenge. Como Orenge é um conjunto de ferramentas de possibilidades bastante extensas, vamos aqui descrever apenas suas características principais. Mais adiante, exemplificaremos os resultados produzidos, apresentando um site desenvolvido utilizando Orenge. As principais ferramentas disponibilizadas por Orenge são:
Como se pode ver pela breve listagem acima, Orenge inicia uma nova geração de ferramentas de RBC: a das ferramentas complexas e maduras para o desenvolvimento de aplicações comerciais. Ao contrário de CBR-Works, Orenge é uma ferramenta complexa, voltada ao profissional, e não possui o enfoque acadêmico que CBR-Works ainda possuía. Material da Aula em PDF4.8. Bibliografia Christiane Gresse von Wangenheim; Aldo von Wangenheim. Raciocínio Baseado em Casos. Curitiba: Editora Manole, 2003. v. 1. 296 p. Christiane Gresse
von Wangenheim.
Case-Based
Reasoning – A Short Introduction. Relatório
Técnico,
Universidade do Vale do Itajaí - UNIVALI, 2002.
|
|
![]() |
![]() |
![]() |