• Nenhum resultado encontrado

Transformação digital do ecossistema de negócios com recurso a um customer support chatbot: caso dos SIC-Serviços de Informática e Comunicações (UTAD)

N/A
N/A
Protected

Academic year: 2021

Share "Transformação digital do ecossistema de negócios com recurso a um customer support chatbot: caso dos SIC-Serviços de Informática e Comunicações (UTAD)"

Copied!
116
0
0

Texto

(1)

UNIVERSIDADE DE TRÁS-OS-MONTES E ALTO DOURO

Nelson dos Santos Joel Bape Orientadores:

Professor Doutor António Jorge Gonçalves de Gouveia Professor Doutor António Manuel Trigueiros das Silva Cunha

TRANSFORMAÇÃO DIGITAL DO ECOSSISTEMA DE NEGÓCIOS COM RECURSO A UM CUSTOMER SUPPORT CHATBOT: CASO DOS SIC-SERVIÇOS DE INFORMÁTICA E COMUNICAÇÕES (UTAD)

Dissertação de Mestrado em Tecnologia da Informação e Comunicação

(2)
(3)

Dissertação apresentada por Nelson dos Santos Joel Bape à Universidade de Trás-os-Montes e Alto Douro para cumprimento dos requisitos necessários à obtenção do grau de Mestre em Tecnologias da Informação e Comunicação, sob a orientação do professor Doutor António Jorge Gonçalves de Gouveia, Professor Auxiliar e coorientação do Professor Doutor António Manuel Trigueiros das Silva Cunha, Professor Auxiliar da Universidade de Trás-os-Montes e Alto Douro.

(4)
(5)
(6)
(7)

Agradecimentos

Nestes dois anos sempre houve duas pessoas que me apoiaram e ainda me apoiam em todas vertentes. Quero agradecer ao Joel Nelson Bape e Carla Isabel Pereira. Não esqueço de incluir neste percurso os meus pais pelo seu apoio incondicional e aos meus irmãos.

Um especial agradecimento aos meus orientadores professores António Jorge Gonçalves de Gouveia e António Manuel Trigueiros das Silva Cunha, pelo apoio constante no desenvolvimento desta dissertação e acima de tudo pela paciência que tiveram durante todo o processo de desenvolvimento.

Agradeço ao Engenheiro António Rio Costa (responsável pelos serviços de informática e comunicações da Universidade de Trás-os-Montes e Alto Douro (UTAD). O meu muito obrigado pelo projeto e pela oportunidade de colaborar nos Serviços de Informática e Comunicações (SIC) e dra. Ana Rosa Pereira, pelos concelhos e pela ajuda técnica no desenvolvimento da tese. Um agradecimento em especial a toda equipa dos SIC pelo apoio no desenvolvimento desta dissertação (Eng. Alberto Vasconcelos, Manuel Marques, Carlos Costa, Miguel Monteiro, Armandino Rebelo, Ricardo Martins, Vítor Ledo e Eduardo Fraga).

No geral agradecer todos que contribuíram de forma direta ou indireta para o desenvolvimento da dissertação.

(8)
(9)

Resumo

As organizações atuais ao optarem pela transformação digital poderão antecipar as necessidades dos clientes e torná-los mais satisfeitos. Razão da proposta Transformação Digital do Ecossistema de Negócio com recurso ao Customer Support Chatbot (CSC), com recurso a Machine Learning (ML), que poderá garantir a filtragem de dados e conversão da informação em tempo útil.

Esta dissertação propõe dois casos de experimentação. O primeiro, uma arquitetura baseada em árvore de decisão que irá permitir interação e recolha de dados para o desenvolvimento de uma base de dados que poderá ser relevante para o desenvolvimento de um chatbot a longo prazo. Uma vez que atualmente os Serviços de Informática e Comunicações (SIC) não possuem um histórico significativo interativo para o desenvolvimento do chatbot. E o segundo experimento uma prova de conceito recorrendo a bases de dados públicas de desenvolvimento de chatbot. A metodologia para o alcance dos objetivos passou por uma abordagem Design

Behavioural Science (DBS) e Design Sciente (DS).

Assim, o primeiro experimento, como resposta a uma solicitação dos SIC, consistiu em desenvolver uma ferramenta de configuração da rede sem fios para orientar os utilizadores da UTAD. Como resultado a ferramenta consegue orientar os utilizadores mediante o seu vínculo com a UTAD, distinguindo visitantes e membros da UTAD. A estes dois utilizadores sugere as etapas necessárias para configuração da rede sem fios e ainda permite guardar a opinião dos utilizadores sobre a plataforma numa base de dados. Como forma da validação, a plataforma foi testada e validada pelos responsáveis dos SIC, sendo uma ferramenta que permite automatização do processo de configuração da rede sem fios.

O segundo experimento consistiu em testes de dois exemplos de ML numa visão de open

domain (cornell dialog corpus) e close domain (ubuntu dialog corpus), ambos implementados

na base do modelo seq2seq. No processo de estudo de viabilidade dos dois casos de chatbot mostraram aprendizagem, sendo que, o caso de close domain mostrou melhores resultados. Umas das conclusões tiradas através deste estudo de viabilidade, deve-se ao tipo de assunto que o chatbot responde, por exemplo, no caso de open domain responde a questões relacionados a filmes e questões genéricas e no close domain responde somente a questões técnicas de ubuntu. Portanto, no caso dos SIC seria adequada o desenvolvimento de uma solução chatbot Deep Learning (DL) em close domain para automatizar o atendimento de

(10)

questões relacionada com a configuração da rede sem fios, desde que exista uma base de dados adequada.

(11)

Abstract

The current organizations when choosing digital transformation can anticipate customer needs and become them more satisfied. That’s the reason for the proposal Digital transformation of the Business Ecosystem by Customer Support Chatbot (CSC), using Machine Learning (ML), which ensures data filtering and information conversion in a timely manner.

This dissertation proposes two cases of experimentation. The first, a specific architecture in the decision tree that will allow interaction and data capture for the development of a database that may be relevant to the development of a long-term chatbot. Since currently the SIC doesn’t have a significant history for the development of the chatbot. The second experiment is a recurring proof of concept from the public chatbot development databases. A methodology for achieving the objectives went through a Design Behavioral Science (DBS) and Design Science (DS) approach.

The first experiment was to develop a wireless network configuration platform to guide UTAD users on wireless network configuration procedures. As a result, the platform can guide users through their filiation with UTAD, distinguishing visitors from UTAD members. In these two users, it suggests the steps required for wireless network configuration and even allows to store platform interactions in a database. As a means of validation, the platform was tested and validated by the responsible of the SIC, being a strategy that automates the process of configuration of the wireless network.

The second experiment consisted of testing two examples of ML an open domain (Cornell dialog corpus) and close domain (Ubuntu dialog corpus), both were implemented based of the seq2seq model. In the process of the feasibility study, the two chatbot cases showed learning, and the close domain case showed better results. One of the conclusions drawn through this feasibility is due to the type of subject chatbot answers, for example, in the case of open domain answering questions related to movies, but also answering generic questions and in close domain cases of technical issues from ubuntu. Therefore, in the case of SIC, it would be appropriate to develop a Deep Domain (DL) chatbot solution in close domain to automate the handling of issues related to the configuration of the wireless network, as long as there is an adequate database.

(12)
(13)

Índice

Agradecimentos ... i Resumo ... iii Abstract ... v Índice ... vii Índice de tabelas ... ix Índice de figuras ... xi

Siglas e acrónimos ... xiii

1 Introdução ... 1 1.1 Motivação ... 2 1.2 Processo de Investigação ... 3 1.3. Estrutura da dissertação ... 3 2. Revisão bibliográfica ... 5 2.1 Transformação Digital ... 5 2.1.1 Chatbot ... 6

2.1.2 Customer Service Support (CSS) ... 6

2.1.3 Sistema de Tickets (ST) ... 7

2.2 Sistemas de Chatbot ... 7

2.2.1 Evolução dos chatbots ... 8

2.2.2 Inteligência artificial e machine learning ... 9

2.2.3 Comparação de ferramentas para desenvolvimento de chatbot ... 10

2.2.4 Natural Language Process (NLP) ... 13

2.3 Fundamentos de Deep Learning ... 14

2.3.1 Redes Neurais ... 14

2.3.2 Redes Neurais Convulsionais... 20

2.3.3 Redes Neurais Recorrentes ... 22

2.3.4 Problemas de Generalização ... 24

2.4 Arquiteturas de chatbot ... 25

2.4.1 Tipos de chatbots baseados em recuperação de dados versus em respostas ... 25

(14)

2.4.2 Chatbots na área de suporte ... 29

3 Os serviços de Informática e Comunicações ... 33

3.1. Estrutura dos SIC ... 33

3.2. Competências ... 34

3.3. Caraterização dos pedidos de suporte ... 35

3.4. Plataforma eletrónica de suporte ... 36

4 Problema e objetivos e Constrangimentos ... 40

4.1 Problema ... 40

4.2 Objetivos ... 43

4.3 Constrangimentos ... 44

5 Experimentos de estudo ... 45

5.1 Utilização de árvores de decisão ... 45

5.1.2 Contextualização ... 47

5.1.3 Requisitos Funcionais ... 47

5.1.4 Arquitetura ... 51

5.1.5 Implementação ... 52

5.2 Utilização de Chatbot DL ... 62

5.2.1 Bases de dados selecionadas ... 63

5.2.2 Experimento 1 – Base de dados cornell moveis dialog corpus ... 64

5.2.3 Experimento 2 – Base de dados Ubuntu Dialog corpus ... 77

6 Considerações Finais ... 84 6.1 Conclusão ... 85 6.2 Síntese da tese ... 85 6.3 Trabalho futuro ... 86 Referências bibliográficas ... 87 Anexos ... 92

(15)

Índice de tabelas

Tabela 1: Comparação de plataformas de desenvolvimento de chatbot ... 12

Tabela 2: Funções de utilizador ... 36

Tabela 3: Forma viável de atendimento ... 36

Tabela 4: Processo de classificação de pedido ... 37

Tabela 5: Reencaminhamento do pedido ... 37

Tabela 6: Flexibilidade do processo no fecho do pedido ... 38

Tabela 7: Gestão do relatório ... 38

Tabela 8: Feedback dos clientes no fecho do pedido ... 39

Tabela 9: Descrição dos problemas de acesso à rede... 46

Tabela 10: Exemplo de 3 interações (cornell movies dialog) ... 63

Tabela 11: Exemplo de 3 interações (ubuntu dialog corpus) ... 64

Tabela 12: Leitura dos dados antes da vectorização ... 64

Tabela 13: Split das palavras do ficheiro movie.txt ... 65

Tabela 14: processo de contagem de palavras no ficheiro ... 65

Tabela 15: Entrada do x (dados ainda em texto) ... 65

Tabela 16: Entrada do x (dados ainda em texto) ... 65

Tabela 17: teste e treino base de dados cornell dialog corpus ... 66

Tabela 18: Leitura de dados (ubuntu dialog corpus). ... 77

Tabela 19: Leitura do ficheiro. ... 78

Tabela 20: Contagem dos números de vezes que as palavras aparecem num ficheiro ubuntu.txt. ... 78

Tabela 21: Processo de conversão das palavras em um dicionário. ... 78

Tabela 22: Entrada do y (ubuntu dialog corpus). ... 78

(16)
(17)

Índice de figuras

Figura 1: Estrutura da dissertação ... 4

Figura 2: Classificação de NLP Fonte: adaptado em [36] ... 13

Figura 3: Função de ativação linear Fonte: [44] ... 16

Figura 4: Função de ativação Sigmoide Fonte: [44] ... 17

Figura 5: Função de ativação Tanh Fonte: [44] ... 17

Figura 6: Função de ativação Relu Fonte: [44] ... 18

Figura 7: Função linear LeakyRelu Fonte: [44] ... 18

Figura 8: Rede neural convolucional Fonte: Adaptado em [46] ... 20

Figura 9: Incorporação de palavras Adaptado de [48, p.] ... 22

Figura 10: Long Short-Term Memory (portas) Adaptado de [49] ... 23

Figura 11: Sequence to sequence encoder e decoder Adaptado de [51] ... 24

Figura 12: Exemplo de script da metrica Bleu [55] ... 27

Figura 13: Turing test Fonte: [23] ... 28

Figura 14: Organigrama dos Serviços de Informática e Comunicações ... 33

Figura 15: Página inicial dos SIC no processo de inserção de um pedido Fonte: plataforma eletrónica dos SIC41 Figura 16: Serviços mais solicitados nos SIC Fonte: Base de dados dos de tickets dos últimos cincos anos ... 42

Figura 17: Arquitetura de árvore de decisão para visitantes ... 49

Figura 18: Arquitetura de arvores de decisão de acesso à rede para docentes/não docentes e discentes ... 50

Figura 19: Proposta funcional de um chatbot a ser implementado a longo prazo... 52

Figura 20: Fluxo de implementação da ávore de decisão ... 53

Figura 21: Página inicial da ferramenta de configuração da rede sem fios... 53

Figura 22: Página do visitante com a opção de escolhas do visitante ... 54

Figura 23: Configuração da rede sem fios guest_utad através do voucher ... 55

Figura 24: Inserção do comentário após a configuração da rede sem fios ... 56

Figura 25: Status mensagem enviada... 57

Figura 26: Mensagem guardada na base de dados ... 57

Figura 27: Receção do comentário do utilizador no email contato. ... 57

Figura 28: Visitante sem voucher ... 57

Figura 29: guest_utad para descarregar o instalador de eduroam ... 58

Figura 30: Conetar a rede eduroam ... 59

Figura 31: Tabela para guardar dados ... 60

Figura 32: Erro default laravel ... 61

Figura 33: Teste da loss proposta no artigo de ([67]) ... 67

Figura 34: Loss do exemplo implementado em ([69]) ... 68

Figura 35: Accuracy e validação ([69]) ... 69

Figura 36: Processo de stripped da base de dados ... 69

(18)

Figura 38: Accuracy dos modelos treinados com outros parâmetros ... 72

Figura 39: Loss melhor modelo (cornell movies dialog) ... 75

Figura 40: Acc melhor modelo ... 76

Figura 41:Teste e treino base de dados ubuntu dialog corpus ... 79

Figura 42: Loss base de dados ubuntu dialog corpus ... 80

Figura 43:Accuracy base de dados ubuntu dialog corpus ... 80

(19)

Siglas e acrónimos

ADADELTA: Adaptive Learning Rate Method ADAGRAP: Adaptive gradient algorithm ADAM: Adaptive Moment Estimation AI: Artificial Intelligence

AIML: ARTIFICIAL Intelligence Markup Language

ASCII: American Standard Code for Information Interchange BLEU: Bilingual Evaluation Understudy

CPU: Central Processing Unity CSS: Customer Service Support DL: Deep Learning

DS: Design Science

DSB: Design Behavioural Science GPU: Graphical Processing Unity

MIT: Massachusetts Institute of Technology ML: Machine Learning

NLP: Natural Language Processing

RMSPROP: Root Mean Square Propagation RNN: Recurrent Neural Network

ROUGE: Recall Oriented Understand for Gisting Evaluation SI: Sistemas da Informação

(20)

SPSS: Statistical Package for Social Sciences STI: Sistemas e Tecnologias da Informação TI: Tecnologia da Informação

UTAD: Universidade de Trás-os-Montes e Alto Douro VLSI: Very Large-Scale Integration

(21)

1 Introdução

Este capítulo contextualiza todo o trabalho realizado, refere, também, as principais questões que motivaram a realização desta dissertação. O capítulo também inclui uma breve discussão sobre o processo de investigação, e termina com a apresentação da estrutura da dissertação. Uma organização em crescimento necessita de um sistema de resposta eficaz e eficiente que satisfaça as necessidades dos clientes, uma vez que, estes estão em constante procura de informação. A resposta eficaz às necessidades dos clientes garante satisfação e consequente fidelidade aos serviços fornecidos. De acordo com D’Silva, More, Kuriakose & Thakare, os

call centres são um método de atendimento que as vezes frustram os clientes pois ficam

questões por esclarecer [1]. Umas das soluções para minimizar estas frustrações e a gestão de tempo, é incluir interfaces conversacionais no atendimento aos clientes. Segundo Wallace, Oliveira e Vasquez & Omar, estas interfaces, começaram a ser utilizados em 1940, sendo na altura, sistemas com limitações na interação utilizando linguagem natural [2], [3] e [4]. A resposta a estas limitações, passou pelo desenvolvimento de interfaces com capacidade de interação com recurso ao Natural Language Processing (NLP), sendo este, complementado com surgimento de ferramentas, como por exemplo, a da Google, da Amazon e do Facebook [5].

Um dos grandes desafios no seio de uma organização é filtrar dados e convertê-los em informação útil. Oliveira, Marcondes, Malete e Galvão, defendem ser imprescindível desenvolver estratégias voltadas para o marketing de relacionamento e que contribuam como um diferencial para criar fidelidade aos clientes [6].

A proposta de transformação digital do ecossistema de negócio com recurso ao CSC, aliado ao ML, pretende sustentar a tese de que a filtragem de dados e conversão em informação útil, é fundamental para desenvolver a interação empresa-cliente e para o processo de tomada de decisão. A criação do elo digital (empresa- cliente) com recurso ao CSC, servirá de repositório de perguntas e sugestões dos clientes. Por sua vez, as empresas a curto prazo poderão gerar e compilar respostas às dúvidas dos clientes e até mesmo conceber novas estratégias a longo prazo.

A inclusão de ML na arquitetura de chatbot poderá facilitar a extração de regras automáticas previamente definidas a partir do histórico de dados, aprender o seu funcionamento e, por sua vez, permitir a criação do CSC. O CSC, em tempo útil, reunirá informação relevante que vai

(22)

ajudar a desenvolver a interação empresa-cliente que consequentemente auxiliará a empresa a se posicionar estrategicamente no mercado. A inclusão de ML para uma proposta de arquitetura de um sistema de chatbot, passará por desenvolver uma arquitetura de árvore de decisão que servirá de repositório de dados para o desenvolvimento de um chatbot inteligente a longo prazo.

1.1 Motivação

As organizações usam a tecnologia para o seu funcionamento, uma vez que, esta é uma mais valia no desenvolvimento das suas atividades. Para Amaral e Varajão, tendo em conta o fator globalização dos mercados, há necessidade de as organizações posicionaram-se estrategicamente a nível competitivo e ter um sistema de informação (SI) alinhado com o mercado [7].

Um exemplo de utilização estratégica de um chatbot numa organização é apresentado por Stachowicz & Amann. Estes autores, descrevem o processo de implementação de sistema de

chatbot na área da educação na Polónia. O chatbot foi implementado com o objetivo de

fornecer informação relacionada com as atividades da universidade aos alunos, detetar, descrever e corrigir falhas no sistema de comunicação. O sistema chatbot, neste caso de estudo, melhorou as atividades da universidade, assumindo um papel preponderante na resposta aos pedidos de suporte e orientação, uma vez que, com a interação os alunos passaram a obter informações relevantes em curto espaço de tempo [8].

As interfaces conversacionais baseadas em chatbots facilitam o desenvolvimento de atividades no seio das organizações e são também uma ferramenta de ajuda no processo de tomada de decisão. Por esta razão, propõe-se a transformação digital do ecossistema de negócios dos SIC-UTAD, com recurso a uma arquitetura de CSC que permita automatizar os serviços. Dada a falta de um histórico de dados nos SIC para que, no futuro, esta proposta se efetive, há que desenvolver uma arquitetura de árvore de decisão e sua implementação que permita a recolha de dados que, no futuro, servirão como base no desenvolvimento de um chatbot inteligente. A UTAD, como instituição de ensino superior de referência em Trás-os-Montes, tem de adotar estratégias que permitam conhecer cada vez melhor a comunidade académica. Por outro lado, existe a necessidade de posicionamento estratégico de reter e atrair cada vez mais estudantes. Este posicionamento estratégico, pode ser obtido através melhoria da interação

(23)

SIC-atempado aos pedidos de suporte efetuados pelos estudantes para resolução de problemas relacionados com as Tecnologias da Informação e Comunicação (TIC). E ainda esta proposta, poderá ser relevante na diminuição das atividades repetitivas do serviço de suporte, através da automatização dos serviços prestados.

1.2 Processo de Investigação

Neste capítulo são apresentados e caraterizados os métodos que orientam a dissertação. De acordo com Hevner et al., [9] nos estudos de Sistemas de Informação (SI) podem-se encontrar duas abordagens, a Design Behavioural Science (DBS) e a Design Science (DS). A DBS desenvolve e verifica teorias que explicam o comportamento organizacional. A DS enquadra-se na área de engenharia e ciências artificiais. E é uma etapa de interação entre os utilizadores com o pessoal de gestão de software e validação. Para Hevner et al., as duas abordagens procuram perceber o comportamento organizacional, razão pela qual, Amaral & Varajão ressalvam a importância de envolvimento de toda estrutura organizacional no desenvolvimento de software. E ter-se em conta a informação e sistemas de informação. Ambas abordagens (DBS e DS) são etapas que se complementam, pois uma trata de formular a teoria e a outra de a colocar em prática. No presente estudo foi aplicada a abordagem de DBS aos colaboradores dos SIC para perceber o funcionamento da plataforma eletrónica de suporte e DS no desenvolvimento da parte prática. De acordo com Hevner et al. a metodologia de DS, possui as seguintes etapas:

Em síntese o processo de investigação passou por duas etapas uma referente a revisão bibliográfica sobre o estudo e por último os casos de estudo, sendo a proposta de arquitetura do chatbot dos SIC baseada em árvore de decisão, sua implementação e casos de uso de chatbots.

1.3. Estrutura da dissertação

Esta secção apresenta sucintamente a organização e o conteúdo do presente trabalho. Os capítulos estão organizados seguindo um fio condutor, estruturados de acordo com a Figura 1 seguinte.

(24)

Figura 1: Estrutura da dissertação

No primeiro capítulo é feita uma breve síntese de todo o projeto. Inicia-se o capítulo com uma contextualização do tema a ser abordado. Nesta secção são ainda apresentados os objetivos a alcançar, no presente e para o futuro. Ainda nesta secção apresentam-se as metodologias de investigação utilizadas para a prossecução dos objetivos a alcançar. E fatores motivadores do trabalho realizado, caracterizando o problema para cuja resolução se pretende contribuir. No segundo capítulo é feita uma revisão bibliográfica, de conceitos e definições mais comuns relacionados com o tema da dissertação.

No terceiro capítulo é caraterizado os SIC, local que serviu de base da presente dissertação; E ainda se lista os objetivos da tese, apresentando-se o problema, objetivos e os constrangimentos tidos no decurso da dissertação. No quinto capítulo apresenta-se a proposta de solução, referente as especificações que sistema deve ter. Por fim, no sexto capítulo, são apresentadas as considerações finais. Este capítulo inicia com uma nova síntese do trabalho desenvolvido, seguindo-se a discussão dos resultados alcançados, com especial destaque nos seus principais contributos para os SIC. São também identificadas oportunidades e necessidades de trabalhos futuros.

1. Introdução

2. Revisão Bibliográfica

3. OS SIC

4.Objetivos

5.Proposta de solução

6. Considerações Finais

(25)

2. Revisão bibliográfica

As empresas, no seu esforço de atualização, têm vindo a substituir os sistemas legados por novos sistemas, ou seja, a implementar o seu processo de transformação digital. Dentro destes novos sistemas, encontram-se os chatbots com inteligência artificial. A utilização destes sistemas permite melhorar a interação dos sistemas com os utilizadores.

Considerou-se importante, através de uma revisão bibliográfica, explorar alguns destes conceitos. Assim, este capítulo inicia com apresentação de várias formas de transformação digital, nomeadamente, chatbots, customer service support e sistemas de tickect. Segue-se a discussão sobre sistemas de chatbot, desde a sua evolução dos chatbot, inteligência artificial e ML e ferramentas para desenvolvimentos de chatbot. depois, são apresentados alguns fundamentos de DL, desde redes neurais, redes neurais convulsionais, redes neurais recorrentes, problemas de generalização e arquiteturas de chatbots, tipos de chatbot na área de DL, métricas para análise da performance de chatbot e por último, resumo de artigos sobre

chatbot na área de CSS.

2.1 Transformação Digital

A transformação digital é um processo de inovação das arquiteturas das organizações vigentes num contexto organizacional. Esta, não implica uma mudança radical, apenas passa por trazer uma inovação do sistema de informação em vigor. Stolterman & Fords consideram transformação digital como uma mudança que a tecnologia digital acrescenta nas atividades organizacionais [10]. Para Editors a transformação digital passa por uma inovação que estimula mudanças significativas nos domínios profissionais e do conhecimento [11]

A transformação digital passa pelo planeamento de sistemas de informação (PSI) com base nas seguintes etapas [7]:

• Atividades preliminares: motivações da realização do estudo; • Preparação do estudo;

• Início formal de estudo: análise da informação recolhida e processamento de dados; • Definição dos processos da organização;

• Identificação dos requisitos de dados: etapas referentes aos sectores organizacionais e classes de dados;

(26)

• Arquitetura de informação: classes de dados e processos;

• Análise do apoio atual do SI e dos processos: análise do sistema atual, suas aplicações e o processo de atualização dos dados atuais;

• Obtenção das visões individuais; • Sistemas da informação e conclusões;

• Determinação das prioridades de implementação; • Análise da gestão de informação;

• Desenvolvimento de recomendações; • Documentação e comunicação de resultados.

2.1.1 Chatbot

As organizações estão munidas de interfaces conversacionais no desenvolvimento das suas atividades do dia a dia no sentido de facilitar a interação com os clientes. Segundo Radlinsk. et al, estas interfaces, são agentes conversacionais com capacidade de interagir com utilizadores e gerar respostas [12]. Esta interação é baseada em texto ou voz como sugere Zamora [13]. Acrescentam Androutsopoulou, Karacapilidis, Loukids & Charalabidis que, para além da capacidade de interação, estas interfaces são capazes de compreender o ambiente envolvente e tomar decisões [14]. Um exemplo de interfaces conversacionais foi o chatbot implementado no setor público com o objetivo de gerar respostas a questões básicas dos cidadãos tais como: orientação no preenchimento de formulários e esclarecimento de dúvidas sobre documentos legais referentes a administração [14].

2.1.2 Customer Service Support (CSS)

Segundo Gel et. al, o Customer Service Support (CSS) é um mecanismo de resposta às dúvidas dos clientes por parte das organizações que garante o acompanhamento adequado aos clientes [16].

A falta de feedback atempado contribui para a insatisfação dos clientes e consequente perda de competitividade das organizações. Singh et. al. refere que as empresas emergentes estão potencialmente expostas à falta de competitividade por não possuírem mão de obra especializada para responder às questões técnicas. No entanto, a inclusão de sistemas de

chatbot é uma mais valia para responder a falta de feedback atempado nas pequenas, médias e

(27)

aumento dos lucros e reduz os custos. Com estes benefícios, a transformação digital torna-se uma ferramenta fundamental no CSS [15].

Para Androutsopoulou et al., & Jacobs, um sistema de CSS é implementado num contexto organizacional tendo em conta os seguintes objetivos [14] [16]:

• Gerar respostas às dúvidas dos clientes;

• Gerar informação para o processo de tomada de decisão; • Melhorar a prestação dos serviços de atendimento; • Perceber a satisfação dos clientes;

• Criar um elo de ligação entre a organização e os clientes.

2.1.3 Sistema de Tickets (ST)

Um sistema de tickets é uma técnica aplicada ao atendimento aos clientes que permite catalogar os pedidos de suporte. Este tipo de sistemas, facilita a gestão e organização do atendimento e tem ainda a capacidade de gerar estatísticas.

Para Get et, al., os sistemas de tickets são o primeiro passo para uma gestão eficiente dos serviços, sendo responsáveis pela descrição dos problemas reportados pelos clientes. Através de um ticket, o pedido é encaminhado ao sector responsável pelo suporte. Estes sistemas, facilitam a gestão dos pedidos de suporte através de registos em base de dados com descrição textual de problemas e soluções. Para Werner et al., desta forma, os tickets funcionam como um meio de gestão de clientes tendo em conta o pedido feito. Além disso, constituem artefactos que guardam emails trocados entre os clientes e várias entidades. Os tickets têm a vantagem de ficarem guardados numa base de dados por um longo período de tempo [17].

2.2 Sistemas de Chatbot

Os chatbots são sistemas computacionais desenhados para produzir conversações por voz ou por texto que simulem, de forma convincente, a forma como os humanos se comportariam conversacionalmente. Segundo Vasconcelos et, al. e Wu, Li, Wu & Zhou no desenvolvimento de interfaces conversacionais encontra-se duas orientações [18] [19].

• Interfaces de interação orientados a tarefas/domínio fechado; • Interfaces de interação sem orientação a tarefas/domínios abertos;

(28)

Por outro lado, Lapan , sugere mais duas interfaces [20]:

• Interfaces baseados em recuperação de dados na base do índice pré construído; • Interfaces baseados em gerar textos.

Para as interfaces de recuperação de dados citadas por Lapan são eficazes quando desenvolvidos com Artificial Intelligence (AI) e baseiam-se nos seguintes princípios [21]:

• Compreensão da linguagem e comandos;

• Aprendizagem na interação com os utilizadores;

• Capacidade de guardar e categorizar a informação na interação; • Acesso a informação e validação do grau de importância.

2.2.1 Evolução dos chatbots

A primeira referência aos chatbots data de 1940 e, desde aí, estão em constante evolução, tendo sido implementados em áreas de educação, saúde, e-commerce, entre outros, para melhorar a prestação dos serviços. Segundo Wallace (2014), Oliveira (2017) e Omar & Vasquez (2018), a evolução ao longo dos anos dos chatbots pode ser apresentada da seguinte forma [2] [3] [4]: • 1940: eu Robot desenvolvido por Isaac Asimov consistiu numa serie de histórias sobre

robots inteligentes com capacidade de interação;

• 1950: teste de Turing, desenvolvido por Alan Turing, consistiu em verificar a capacidade da máquina em mostrar comportamento semelhante a um ser humano com recurso a AI. Segundo Rusell , para o sistema passar no teste, teria de possuir NLP, representação de conhecimento e reconhecimento automático [2];

• 1966: chatbot Eliza desenvolvido por Joseph Weizenbaum, com objetivo de simular um psicólogo utilizando frases dos utilizadores para dar seguimento as consultas. O sistema usava patterns (padrões) em NLP que facilitavam a perceção de computadores a linguagem humana [20];

• 1972: chatbot Parry. de acordo com Wei et al., foi um sistema desenvolvido por Kenneth Colby na Universidade de Standford nos Estados Unidos da América. Consistia em simular uma pessoa com esquizofrenia paranoide [22];

• 1988: chatbot Jabberwacky desenvolvido por Rollo Carpenter, com objetivo de simular uma conversa natural, de uma forma entretida e humorística;

(29)

• 1995: chatbot Alice: desenvolvido na base da AI Markup Language (AIML). Permitia aos utilizadores criarem sistemas com linguagem em tags1 iguais ao padrão. Extensible

Markup Language (XML). Para interação utilizava padrões heurísticos de

reconhecimento de regras no processo de entrada de dados. Por outro lado, para se testar a coerência da interação aplicou-se o teste de Turing2. Por conseguinte apresentou falhas na interação, uma vez que mostrava aspetos mecânicos em conversas curtas. Devido as falhas apresentadas durante o teste de Turing, iniciam investigações de melhoramento e como resultado surgem sistemas baseado em voz. Um exemplo do resultado da investigação é interface conversacional SIRI da Apple[3]. E posteriormente o surgimento de ferramentas de desenvolvimento de chatbot como: Tbot, Amazon Echo (Amazon Developer, 2014), Google Allo (Google, 2016), Google Home (Google, 2016), IBM Watson (IBM, 2011), Microsoft Cortana (Microsoft, 2014) [22].

2.2.2 Inteligência artificial e machine learning

A AI surgiu por volta de 1995, altura em que, segundo Griffey et al., John McCarthy iniciou a sua discussão. Os sistemas propostos na altura consistiam num programa de computador que tomava decisões e julgamentos que seriam difíceis para os seres humanos. Estes sistema, consistiam também no reconhecimento de objetos com base em fotografias e na compreensão de uma passagem de texto longa [24].

Os sistemas de AI que incluem ML têm a vantagem de serem programados sem intervenção humana direta (Griffey et al., Pratt , Stachowicz-Stanusc & Amann e Russell referem que, dada a capacidade de sistemas desenvolvidos pela AI funcionarem de forma autónoma, estes são adequados a áreas de aplicação como por exemplo diagnóstico, assistência, planeamento e ainda são um recurso fiável ao apoio de CSS, uma vez que, possui a capacidade de automatização do processo de atividade [21] [8] [25].

Segundo Winston a AI é uma área da ciência da computação com capacidade de simular o comportamento humano no sentido de perceber, raciocinar e agir [26]:

• Como engenharia, procura resolver os problemas reais;

1 Palavra chave associado a uma informação [2].

(30)

• Aplicações de AI devem ser avaliadas na base dos conceitos das tarefas conforme os programa e princípios;

• A AI orienta-se no processo de criação de novas oportunidades de negócios.

A área do ML é a subárea da AI responsável pela aprendizagem da máquina. Esta é base para vários sistemas, inclusive para chatbots, uma vez que permite melhorar a comunicação entre humanos e máquinas ([15].

DL é uma parte especifica de ML direcionada a gestão de problemas com recursos a algoritmos. A seguir apresenta-se exemplos intuitivos de tarefas, medidas de desempenho e experiências que podem ser usadas para desenvolver algoritmos de ML [27].

• Classificação: reconhecimento de objetos e interação entrada e saída; • Regressão: através de uma entrada, o algoritmo faz a previsão da saída;

• Transcrição: o sistema de ML observa uma representação não estruturada de dados e transcreve a mesma de forma discreta ou através de formulário textual;

• Tradução por máquina: sequência de símbolos numa determinada linguagem traduzida para outra;

• Estrutura de saída: inclui tarefas de transcrição e tradução;

• Deteção de anomalia: com recurso a um programa faz-se uma serie de eventos, no sentido de detetar-se uma atividade incomum;

• Síntese e amostragem: análise de uma tarefa com recurso a um algoritmo de aprendizagem. Bem como, uma solicitação para gerar novos exemplos semelhantes de dados de treinamento;

• Classificação de dados ocultos: o algoritmo faz a previsão dos valores intermediários da entrada.

2.2.3 Comparação de ferramentas para desenvolvimento de chatbot

No capítulo da evolução dos chatbots refere-se sobre o estado atual de ferramentas de desenvolvimento de interfaces conversacionais. Neste subcapítulo far-se-á uma comparação das ferramentas com base nos seguintes critérios: nome da ferramenta, open-source, documentação, partilha de código com a comunidade, desenvolvimento de outras aplicações para além de chatbot e integração no Messenger. Para comparação foram consideradas ferramentas de Wit.Ai, Botkit Framework, Api. AI/Dialoglow, Chatfuel, IBM Watson,

(31)

Microsoft Luis, Amazon Lex, Tensorflow, Keras, Microsoft Cognitve, Pytorch e Theano. Mais detalhes pode se ver na Tabela 1.

(32)

Tabela 1: Comparação de plataformas de desenvolvimento de chatbot Plataforma Linguagem Open

Source

Documentação Partilha com comunidade

Desenvolvimento de outras aplicações além do chatbot

Integração com o Facebook

(chatbot)

Fonte

WIT.AI IOS, Androind, Web, Node.js, Raspberry Pi, Ruby, Python, C e

Rust.

Sim Sim Sim SIM SIM [28],[29],

[30]

Botkit Framework

Node.js Sim Sim Sim Sim Sim [31]

API.AI (2010) Node.Js, phyton, java, go, ruby, c# e php

Sim Sim Sim Sim Sim [31]

Chatfuel Node Js Sim Sim Sim Não Sim [32]

IBM Watson DeepQA, Hadoop, Apache, phyton, ruby, node, java, .net, salesforce,

unity e switft

Sim Sim Sim Sim Sim [31]

Microsoft LUIS .NET, java, node, phyton, ruby, php, xamarin, android, ios, swift e

Windows

Sim Sim Sim Sim Sim [31]

Amazon Lex java, JavaScript, Python, CLI, .NET, Ruby on Rails, PHP, Go e

Cpp

Sim Sim Sim Não sim [31]

TensorFlow Phyton e C++ Sim Sim Sim Sim Não [28]

Keras Phyton Sim Sim Sim Sim Não [28]

Microsoft Cognitive Toolkit

Phyton e C++ Sim Sim Sim Sim Não [28],[33]

Pytorch Phyton e C++ Sim Sim Sim Sim Não [28],[34]

(33)

2.2.4 Natural Language Process (NLP)

Para Liddy (2001), define NLP como uma técnica computacional de análise e representação de textos que ocorrem em vários níveis linguísticos [35]. Com integração desta técnica nos sistemas computacionais, verificaram-se melhorias nas seguintes áreas:

• Tradução por máquina, categorização e extração da informação;

• Técnicas de síntese, medicina, perguntas e respostas (QA), referência de resolução e análise de discurso;

• Segmentação morfológica, reconhecimento da entidade nomeada e reconhecimento ótico de caracteres [36].

Segundo Khurana, et al., os níveis da arquitetura do NLP incluem o objetivo de comunicação e o conhecimento de base. Os NLP são classificados em duas vertentes (ver Figura 2) [36]:

• Compreensão da linguagem natural: fonologia morfologia sintaxe e semântica;

• Geração da linguagem natural: produção de texto com um significado interno representativo.

(34)

2.3 Fundamentos de Deep Learning 2.3.1 Redes Neurais

Para Schmidhuber, as redes neurais são processadores conectados por neurónios. Cada neurónio possui um valor real de ativação [37]. Por outro lado, têm a capacidade de aprender e representar dados através do treino [38].

As redes neurais são compostas por camadas, destacando-se: a camada de entrada, responsável pela receção dos dados; as camadas intermediárias, responsável pela receção de não exposição de dados; e a camada de saída: output da solução do problema, (Figura 3):

Figura 4: Modelo de rede neural Fonte [39]:

Estas redes são considerados algoritmos de aproximação universal e mapeiam as suas entrada-saída através de aprendizagem supervisionada [40].

De uma forma geral pode dizer-se que a rede aprende e funciona da seguinte forma: a rede possui um conjunto de valores (designados por pesos) em cada camada onde é armazenado o conhecimento aprendido. Quando a rede é inicializada, não tem conhecimento, pelo que estes valores são aleatórios. Como consequência, quando uma entrada é apresentada à rede, a saída será provavelmente a não pretendida.

Na aprendizagem supervisionada, é utilizada uma função de perda (loss funciton) em que tendera para zero quanto mais a previsão da rede for próxima do valor de saída pretendido. Depois, para a

(35)

por backprogagation) utilizando um optimizador. Este irá alterar os valores dos pesos de forma a obter valores da função de loss mais pequenos e desta forma aumentar o conhecimento da rede. A camada de entrada da rede é condicionada pelo número de valores de entrada, cada nó recebe um número de entrada e a camada tem um número de nós igual ao número de valores de entrada [41].

A camada de saída depende do problema para o qual a rede é utilizada. Pode ser para problemas de regressão onde se preveem valores de variáveis contínuas [42].

Quando a regressão apenas tem uma variável de saída designa-se por “regressão simples”, ou “regressão multivariada” quando tem várias variáveis de saída. Nos casos de regressão utiliza-se como função de ativação a identidade. Pode ainda ser utilizada para problemas de classificação binária e multiclasse: na classificação binária o modelo termina com uma função de ativação “sigmoide”; no caso da classificação multiclasse o modelo termina com a função de ativação “softmax” como defende Brownlee [38].

Camadas dense

Nas redes neurais são utilizadas camadas de percentron de multicamadas ou camada “dense”, em que cada nó (percentron) calcula uma combinação linear dos valores dos nós anteriores com os valores dos pesos e aplica uma função de ativação.

Para Brownlee (2017b) os percentrons são percursores das redes neurais artificiais com objetivo de investigar a aplicabilidade dos modelos de cérebros biológicos na resolução de tarefas complexas. Os percentrons desenvolvem algoritmos robustos e estruturais de dados, visto que, têm capacidade de aprender, representar dados e treinar variáveis.

Segundo Simon, os percentrons usam a função de retro propagação (backprogation) baseada no acompanhamento da rede para trás e para frente sempre a procura do erro. Nesta etapa ocorre dois processos: O Momentum: atualização do peso anterior para que continue a mudar de direção mesmo no caso de menos erros; e o decréscimo da taxa de aprendizagem (SGD): no sentido de permitir que a rede faça alterações nos pesos no início e pequenas alterações nas atualizações de treinamento [40].

(36)

Funções de ativação

As funções de ativação introduzem não linearidades à combinação linear das entradas com os pesos da camada. Seguem-se as funções de ativação mais utilizadas [43]:

Função binaria: classificador binário que apresenta duas condições, um sim ou não. Além disso, possui um gradiente da função da etapa zero.

Função linear: solução para o gradiente zero constante, uma vez que, não depende do valor de entrada. Desta forma, ao alterar-se o valor x (entrada) não se altera a curva da aprendizagem. Desde modo, a aplicação do retro propagação terá a mesma saída. [44] (ver Figura 3).

Figura 3: Função de ativação linear Fonte: [44]

Função Sigmoide: tem uma saída não constante e apresenta valores positivos que variam de (0 a 1) e a curva de aprendizagem é sob forma de um S. A função tem limitações por ter números positivos, para tal, usa a função Tanh apresenta números simétricos. A rede aprende quando gradiente afasta-se do zero [44] (ver Figura 4).

(37)

Figura 4: Função de ativação Sigmoide Fonte: [44]

Função Tanh: é uma função não linear com intervalos simétricos (-1 e 1) e com a saída centrada no zero. Esta, enfrenta problemas de vanishing gradient (VG)3: [44] (ver Figura 6).

Figura 5: Função de ativação Tanh Fonte: [44]

Função Relu: é uma função não linear com técnicas de retro propagação. Esta função, não ativa todos os neurónios em simultâneo. Além disso, é uma função que aprende melhor em redes com muitas camadas e aprende sem pré-treino não supervisionado. Por outro lado, é uma solução para problemas de VG, envolvendo operações matemáticas simples e é usada em camadas

3Problemas que surgem no processo de treino de redes neurais artificias com recurso a métodos de gradiente e retro propagação (“Vanishing

(38)

intermediárias. Por exemplo, em ativações da região de (X<0) de relu o gradiente será 0 pois os pesos não são atualizados durante a descida [44] (Ver Figura 6).

Figura 6: Função de ativação Relu Fonte: [44]

Função LeakyRelu: avalia o desempenho dos neurónios e busca razões de falha na função de ativação. É considerada uma função variante do Relu, onde o valor Z em vez de 0 é reduzido α = 0,01. E esta função, não é usada em classificações complexas [44] (Ver Figura 7).

Figura 7: Função linear LeakyRelu Fonte: [44]

Função softmax: classifica às camadas tornando às saídas em classes entre valores de 0 a 1 e, por conseguinte, divide pela soma. Além disso, faz o cálculo da distribuição das probabilidades de

(39)

Optimizadores

A escolha do algoritmo de otimização para uma rede neural, pode implicar diferença entre bons resultados em minutos, horas e dias [38]. Dentro dos vários métodos disponíveis destacam-se quatro atualmente mais utilizados:

Adaptive Moment Estimation (Adam): é considerado uma extensão de descida estocástica do gradiente, sendo atualmente aplicado em áreas de visão por computador e NLP. Desenvolvido por Diederik Kingma, da OpenAI, e Jimmy Ba, da Universidade de Toronto. Ao aplicar-se o algoritmo de otimização de Adam, traz a seguintes vantagens:

• Fácil de implementar;

• Computacionalmente eficiente;

• Necessidade de poucos requisitos de memória;

• Adequado para problemas complexos em termos de dados e ou parâmetros; • Adequado para problemas com gradientes muitos esparsos;

• Hiper-parâmetros têm interpretação intuitiva e geralmente requerem pouca sintonia [38].

Adaptive gradient algorithm (Adagrap): é um algoritmo para otimização baseada em gradiente. Este, adapta a taxa de aprendizado aos parâmetros, realizando atualizações maiores para atualizações não frequentes e menores para parâmetros frequentes. Por esta capacidade de adaptar a taxa de aprendizagem, elimina a necessidade de ajusto manual da taxa de aprendizagem, uma vez que, a maioria das implementações usa um valor padrão de 0,01. Pela capacidade de adaptar a taxa de aprendizagem, é adequado para lidar com dados esparsos [45]. E ainda possui a vantagem de acumular gradientes quadrados no denominador, sendo todos os termos adicionados positivos. O fato de os termos serem positivos faz com que a soma acumulada cresça continuamente durante o processo de treino, e consequentemente learning rate diminua.

Adaptive Learning Rate Method (Adadelta): é considerada uma extensão de Adagrap, com o objetivo de reduzir a agressividade monótona descrente da taxa de aprendizagem. Entretanto, em vez de acumular todos os gradientes anteriores, restringe-as num tamanho fixo [45].

Root Mean Square Propogation (RMSPROP): este tipo de optimizador lida com atualização da taxa de parâmetros de forma decrescente e automática. No processo de atualização dos

(40)

parâmetros atribui uma taxa de aprendizagem diferente por cada parâmetro o que faz com que converge melhor.

2.3.2 Redes Neurais Convulsionais

As redes convulsionais são rede neurais em que foram introduzidas novas camadas, nomeadamente a camadas em que são efetuadas convoluções. Segundo Brownlee,[28] estas são caraterizadas por preservar a estrutura do problema e desenvolvidas para o reconhecimentos de padrões.

Da mesma maneira que refere que nas redes neurais um erro de previsão na saída de dados implica a atualização de pesos. No entanto estas camadas têm menos parâmetros (pesos) para aprendizagem e a operação convolução permite encontrar padrões nas camadas anteriores. Estas redes são úteis na resolução de problemas complexos de visão por computador como processamento de linguagem natural. A Figura 8 apresenta a estrutura geral de uma rede convolucional:

Figura 8: Rede neural convolucional Fonte: Adaptado em [46]

Aos dados de entradas são aplicados uma (ou mais vezes) grupos de operações de convoluções e agrupamento (pooling), que resultam na extração de um mapa características. Finalmente são utilizadas camadas totalmente conectadas para calcular a saída.

Camadas convulsionais: dividem-se em filtros e características de mapas. Os filtros, fazem parte dos neurónios das camadas, entradas ponderadas e do valor de saída. Por outro lado, têm um

(41)

camadas convulsionais recebem a entrada das caraterísticas da camada anterior. E as características do mapa são o filtro aplicado na camada anterior. Assim sendo, move-se cada pixel que vai ativando o neurónio em cada posição e por conseguinte são colhidas as caraterísticas do mapa de saída. Ainda nesta camada aplica-se os passos (stride) que ocorre quando o campo recetivo, é movido por um pixel de ativação, no sentido de sobrepor os valores de entrada. Além dos passos, nas camadas convulsionais existem os blocos densos que responde pela conexão das camadas [47]. Camadas agrupadas (pooling): analisam as caraterísticas dos mapas das camadas anteriores. Por conseguinte, seguem uma sequência de uma ou mais camadas convulsionais com objetivo de consolidar as características da aprendizagem e os expressos dos mapas da camada anterior. As camadas convulsionais generalizam as características das representações e reduzem a sobrecarga dos dados no treinamento do modelo, pois possuem um campo recetivo menor que camadas convulsionais.

Camadas totalmente conectadas (dense): são camadas com funções de ativação linear e softmax, com objetivo de gerar probabilidades nas previsões de classe (usadas nas redes neurais). As camadas totalmente conectadas, são usadas no final da rede após a extração e consolidação nas camadas anteriores e é usada para criar combinações não-lineares de características e para previsões de rede.

Camada de normalização: dimensiona as entradas das saídas para terem um valor médio próximo do zero e um desvio padrão de unidade. Para facilitar o treinamento e ter mais resiliência.

Quando os dados de entrada são textos, é necessário fazer uma pré-preparação designada por Incorporação de Palavras (Word embeding). Esta operação é feita numa camada com o mesmo nome.

word embedding/word2vec: são um método moderno de construção de blocos para representar uma sequência de linguagem através de redes neurais. As redes word2vec permite o mapeamento de todas as palavras num único vocabulário dentro de um comprimento fixo de um vetor. Esta capacidade de mapeamento, faz com que a técnica seja considerada umas das melhores técnicas de NLP, pela capacidade de: representar palavras, carateres e outros tipos de objetos na mesma sequência [20] (ver a Figura 9).

(42)

Figura 9: Incorporação de palavras Adaptado de [48, p.]

2.3.3 Redes Neurais Recorrentes

As redes recorrentes são projetadas para resolver problemas sequências em conexões recorrentes com capacidade de adicionar memória na rede [28]. Embora sejam solução para resolver problemas sequencias, são conhecidos pela incapacidade de resolver problemas com maior complexidade. Por exemplo, quando adiciona uma nova informação na rede, era suposto reaproveitar a informação relevante, mas acontece o contrário, esta transforma toda informação existente através de uma função. O transformar, implica a modificação de toda informação existente. Por enfrentar estes tipos de problemas surge redes neurais para análise e processamento de texto desde LSTM e a arquitetura Seq2Seq. Estas são utilizadas em aplicações como de NLP. Redes Long SHORT-TERM Memory (LSTM)

Uma rede neural LSTM é treinada na base de retro propagação. Esta técnica, permite resolver problemas de gradientes, e desenvolver redes recorrentes empilhadas na gestão de problemas sequências. Um exemplo prático é o fato das LSTM terem sido consideradas como redes sucedidas em aplicações de reconhecimento de escrito, fala, geração de texto, tradução automática, legenda de imagens e atualmente em interfaces conversacionais [27].Por outro lado, as LSTM têm blocos conectados nas camadas. Estes blocos, tornam as redes mais inteligentes comparados aos neurónios clássicos [28]. E estas redes, surgem como solução de problemas das redes recorrentes, uma vez que, fazem pequenas modificações nas informações, por possuir mecanismos de estados

(43)

da célula, estes, permitem selecionar ou esquecer o estado das informações. Estes estados, podem ser divididos em três portas (ver na Figura 10):

Figura 10: Long Short-Term Memory (portas) Adaptado de [49]

• Porta omissa: descreve a informação que será descartada. Ou melhor, responde por retirar as informações do estado da célula. Um exemplo prático é da função sigmoide, que gera um vetor com dois valores (0 e 1), posteriormente decide sobre o valor do vetor. Caso o valor escolhido seja 0, significa que a porta omissa deseja esquecer o estado da célula completamente e 1 significa que a porta quer lembrar de toda informação.

• Porta de entrada: decide condicionalmente quais os dados de entrada que serão atualizados. Esta condição é decidida na base de três etapas, quais os valores serão adicionados ao estado da célula com recurso a função sigmoide, segundo um vetor com todos os valores possíveis com recurso a função tanh e por fim adiciona informações relevantes através do estado da célula.

• Porta de saída: responde pelos dados de saída, ou seja, seleciona as informações úteis do estado atual da célula.

Sequence to Sequence

Encoder-decoder/seq2seq têm origem nas traduções de máquina. As seq2seq usam as redes

recorrentes para sequências de entrada e codifica estas, no tamanho fixo representativo denominado decodificador. Além de aplicação das redes seq2seq em máquinas, podem ser usadas em áreas de som, processamento, anotação fotográfica, captura de vídeo e etc. Acrescentam Vinyals & Le , que as redes seq2seq tem um nó gerado pelo decodificador que produz a saída de dados [50] (ver Figura 11).

(44)

Figura 11: Sequence to sequence encoder e decoder Adaptado de [51]

Na Figura 11, temos um exemplo de modelo seq2seq com um enconder e decoder, com a técnica de word embedding. Em primeiro lugar no encoder, assiste três momentos antes de enviar a frase

how are you? ao decoder. O GO (início da entrada da frase), PAD (comprimento da frase,

obedecendo o limite pré-estabelecido nos parâmetros, EOS (final da frase). Desta maneira, a frase é transmitida ao decoder que gera uma saída pretendida.

2.3.4 Problemas de Generalização

No treino de redes neurais ocorrem frequentemente problemas de não generalização (desempenho do modelo treinados nos dados nunca antes visto) designados comummente por overfitting, sendo uma das soluções de otimização que refere-se ao processo de ajustar os modelos no sentido de ter melhor performance no treino de dados [41]. A seguir apresenta-se técnicas para combater o

overfitting:

Custo de entropia cruzada: acelera a aprendizagem através do custo quadrático. O custo quadrático faz com que a aprendizagem seja mais lenta. No custo de entropia cruzada quanto maior o erro melhor é aprendizagem. Dessa forma, o custo de entropia cruzada é usado como indicador de erro quando se quantificam às diferenças na distribuição de probabilidade [52].

Redes reguladoras: desenvolvem modelos de padrões de dados de treino resistentes, individuais e gerais com capacidade de aprendizagem[52]. Além disso, existem duas abordagens reguladores a regulação L1, onde os pesos diminuem em quantidade constante para 0 e a regulação L2, onde

(45)

Dropout: é uma técnica que modifica a rede através da alteração dos neurónios das camadas intermediárias sem modificar as camadas de entrada e saída. A taxa de dropout usa híper parâmetros4 ajustáveis para medir o desempenho entre dois valores, desde 0,2 e 0.5 durante o treino [44].

Treinar o modelo com mais dados: treina o modelo com mais dados propicio-o a generalizar melhor [41]. Caso esta técnica não se adeque, a modulação da quantidade de informações que modelo tem permissão para guardar, seria uma solução. Uma vez que, o processo de otimização foca nos padrões mais elevadas, sendo que, pode generalizar melhor.

Redução do tamanho da rede: processo de reduzir os parâmetros do modelo (número de camadas bem como, o numero de unidades por camada) [41].

2.4 Arquiteturas de chatbot

Os chatbots desenvolvidos na base de DL, possuem diversidades de arquiteturas mediante o seu objetivo. Nesta secção discutem-se as arquiteturas de desenvolvimento de chatbot, as técnicas de avaliação e por último, artigos na área de desenvolvimento de chatbot de suporte

2.4.1 Tipos de chatbots baseados em recuperação de dados versus em respostas

Os modelos baseados em recuperação de respostas funcionam na base de uma taxionomia de um

dataset predefinido. Visto que, só conseguem gerar respostas de assuntos que existem no seu dataset através de respostas candidatas [53]. Por isso, a integração de DL, em modelos de género

visa melhorar a capacidade de precisão das respostas candidatas [54].

Pelo contrário, os modelos baseados em gerar respostas, não se limitam a um dataset predefinido. Assim, conseguem interagir e responder questões além do seu dataset. Umas das grandes dificuldades deste tipo de modelo, é o treino, visto que, que exigem dados significativos e “n” treinos para que aprendam a responder a questões coerentes. [53].

4Propriedades de um modelo relacionado com a taxa de aprendizagem ou melhor inclui o fator da complexidade do modelo, por exemplo o

(46)

2.4.2 Métricas para análise da performance de chatbot

A análise de performance de um modelo chatbot avalia a forma como o sistema desenvolvido consegue cumprir com a tarefa estabelecida. Métricas como, BLEU, Teste de Turing, ROUGE e

Perplexity são um indicador de que a tarefa foi cumprida. Contudo, autores como Britz ([53] e

Young et al., [54] defende que os testes humanos são os melhores, uma vez que, oferece mais precisão no teste.

Bilingual Evaluation Understudy (BLEU)

Bilingual Evaluation Understudy (BLEU) é uma métrica que avalia grau de semelhança entre duas frases (a de entrada e saída) e atribui um score. Esta métrica, foi desenvolvida por kishore Papineni com o objetivo de avaliar previsões feitas pelos sistemas de tradução automática. Atualmente é aplicado em modelos de interfaces conversacionais.

Para avaliação esta métrica baseia-se em pontuações (uma correspondência perfeita quando obtém uma pontuação 1.0 e imperfeita 0.0) [55]. O processo de avaliação, é rápido e flexível de calcular; fácil de interpretar; independente da linguagem; e relacionado com avaliação humana.

A avaliação da correspondência perfeita e imperfeita é baseada da seguinte forma:

• Conta n-gramas (subsequência de n elementos de uma determinada sequência de frase) que corresponde a uma tradução candidata para n-gramas de texto de referência;

• Faz a comparação de n-gramas de uma entrada e compara com o número de correspondências.

Um exemplo do cálculo do BLEU, pode ser visto pelo seguinte script da Figura 12.

1. from nltk.translate.bleu_score import sentence_bleu; 2. reference = [['this', 'is', 'a', 'test'], ['this', 'is' 'test']]; 3. candidate = ['this', 'is', 'a', 'test'];

4. score = sentence_bleu (reference, candidate; 5. print(score)

(47)

Figura 12: Exemplo de script da metrica Bleu [55]

No script acima, se exemplifica como a métrica Bleu atribui o score. Onde se tem a frase referência, e a candidata, e no final atribui-se um score de quão o modelo teve previsão pretendida. Dessa forma, a pontuação 1.0, significa uma correspondência perfeita. Este exemplo equipara-se a seguinte da equação (1):

P=

𝑚

𝑤𝑡

Onde o m é o número de palavras do candidato e wt o número total de palavras no candidato.

Perplexidade

A perplexidade (perplexity) mede quão bem a distribuição de probabilidade aprendida das palavras corresponde à do texto de entrada [58]. A perplexidade é calculada através da equação (2):

2𝐻(𝑃) = 2 − ∑𝜘 𝑃(𝜘)𝑙𝑜𝑔2𝑝(𝜘)

Onde H(p) corresponde a distribuição da entropia da probabilidade e x uma variável aleatória em todos os eventos possíveis. Assim, um valor baixo de perplexidade entre a saída da rede e o ground

truth significa uma maior probabilidade.

Teste de Turing

O teste de Turing (secção da evolução de chatbot) é utilizado para avaliar a capacidade de um

chatbot exibir comportamento inteligente equivalente a um ser humano, ou indistinguível deste.

Para isso, convidam-se um conjunto de pessoas a interagir com o chatbot e é-lhes pedido que avaliem quão real lhes parece interação com um rating dentro de um determinado intervalo predefinido [25]. Um exemplo prático, um utilizador faz perguntas a duas entidades (computador e um humano), com recurso a um teclado. O papel da pessoa é distinguir qual dos dois é um ser humano. Caso tenha dificuldade em distinguir o ser humano do computador, conclui se que o computador passou no teste de Turing, mas detalhes pode se ver Figura 13.

(48)

Entretanto, o utilizador c vai interagindo com o utilizador A e B, com objetivo de perceber qual destes, tem o comportamento diferente do ser humano. Nas interações são feitas questões referentes a passatempos e ainda de cultura geral [23].

Figura 13: Turing test Fonte: [23]

Recall Oriented Understudy for Gisting Evaluation (ROUGE)

O Recall Oriented Understudy for Gisting Evaluation (ROUGE) é um conjunto de métricas utilizadas em sistemas de recuperação de dados. O ROUGE estende a métrica recall usada para avaliação sumária que representa a quantidade total de instâncias relevantes num universo, que foram recuperadas relativamente às que existem nesse universo [56].

O ROUGE, podem dividir em Rouge-1 (referente as sobreposições de cada palavra entre resumos de sistemas e resumos de referência) e Rouge-2 (refere a sobreposição de conjuntos de palavras):

• ROUGE-N: conta todos os n gramas em todos os resumos de referência, e tenta se prever quantos n gramas existem no resumo do candidato.

• ROUGE-L: baseia-se nas estatísticas de ocorrências mais longa que corresponde a subsequência comum. Entretanto, para o cálculo da ocorrência usa-se o recall e F correspondente a média dos valores de precisão do recall.

• ROUGE-W: investiga o tamanho de correspondência consecutivas, além da subsequência comum mais longa;

(49)

• ROUGE S: par de palavras na ordem das sequências permitindo encontrar falhas arbitrárias.

2.4.2 Chatbots na área de suporte

Na presente secção apresentam-se três artigos sobre chatbots na área de suporte. A escolha deve-se ao fato de querer deve-se apredeve-sentar as diferentes formas de dedeve-senvolvimento de chatbots na área de suporte.

Lowe, Pow, Serban, Pineau propõem o desenvolvimento de um sistema de diálogo em interação em várias voltas baseado na classificação da melhor resposta (chatbot baseado em recuperação de dados). Para tal, usou-se uma base de dados Ubuntu Dialogue Corpus, com cerca de um milhão de conversas de duas pessoas, com as seguintes caraterísticas [57]:

• Interações de apoio técnico na área de ubuntu; • Interação dinâmica;

• Grande quantidade de dados;

• Interações de mesmo tópico baseadas em texto e domínio específico [57]. Para preparação de dados foram usadas as seguintes técnicas:

• Frequency-inverse document (número de ocorrências de palavras num ficheiro);

• Divisão das mensagens da base de dados em quatro tuplas (tempo, emissor, recetor e interações);

• Identificação recetor/destinatário: dicionário de utilizadores atuais e dos dias anteriores e

stops words;

• Criação de interações: seleção de respostas recentes, e as antigas são descartadas;

• Casos especiais e limitações: as interações entre dois utilizadores se durarem várias horas são consideradas uma conversa;

• Desenvolvimento de triplos por diálogo (contexto resposta e sinalizador), baseada na técnica booleana para se perceber se a resposta foi próxima ou não da pretendida.

Para o desenvolvimento do sistema de diálogo, utilizaram-se dois modelos: primeiro foi utilizada o modelo RNN (sendo definida com 1 camada intermediária com 50 neurónios), e treinada com o optimizador Adam. Ainda foi utilizada foi o modelo LSTM para modelar dependências de longo

(50)

prazo. Visto que, é uma solução para superar problemas de Vanish Gradiente das RNN. Nas LSTM foram definidas 200 camadas intermediárias, sendo o único parâmetro alterado comparado com a RNN.

Para avaliação foi usada a métrica recall (reconhecida em sistemas de classificação de respostas de DL. Baseada na quantidade de respostas relevantes recuperados numa instância de compreensão e medida de relevância). Com a métrica obteve-se os seguintes resultados: TF-IDF (65.9%), RNN (76.8%) e LSTM (87.8%) no intervalo de 1/2. Nos três modelos, constatou-se pela métrica de avaliação que as LSTM superam as restantes arquiteturas. E ainda que o TF-IDF supera o RNN no caso do Recall@1 para a classificação 1 em 10.

Aalipour, Kumar, Aditham, Nguyen & Sood propõem um chatbot na área de suporte de hardware e software com objetivo de fornecer apoio técnico aos clientes. Diante disso desenvolveu-se um sumarizador (condensar tickects) e um sistema de diálogo [58].

Para a preparação de dados usou-se uma base de dados interna da empresa da equipa responsável pelo suporte, com 19 características com a descrição de problemas. A análise da base de dados passou pelas seguintes etapas:

• Técnicas de expressões regulares para capturar e normalizar os padrões necessários; • Remoção de todos os carateres especiais com valores em American Standard Code for

Information Interchange (ASCII);

• Remoção de pontuações;

• Lowercasinf (conversão de palavras em letras minúsculas), stemming (reduzir cada palavra à sua raiz ou base) e stopwords (palavras mais comuns no texto).

• Ignorar todos os casos que não possuem o inglês como idioma; • Técnica de criação de tags e um vocabulário com um range de 1 e -1.

O desenvolvimento baseou-se na arquitetura de redes recorrentes bidirecional LSTM, umas das razões da escolha do modelo, deve ao fato da sequência ser processada de trás bem como para a frente. Neste modelo, inclui a camada de atenção, esta é relevante, por colocar ênfase nas partes da entrada que recebe as informações e por fim um optimizador Adam.

Imagem

Figura 1: Estrutura da dissertação
Figura 4: Modelo de rede neural Fonte [39]:
Figura 3: Função de ativação linear Fonte: [44]
Figura 4: Função de ativação Sigmoide Fonte: [44]
+7

Referências

Documentos relacionados