Propostas com alunos

DEI - FCTUC
Gerado a 2024-04-27 18:24:45 (Europe/Lisbon).
Voltar

Titulo Estágio

Assistentes virtuais dinâmicos

Áreas de especialidade

Sistemas Inteligentes

Local do Estágio

DEI / CISUC

Enquadramento

As redes sociais têm uma importância crescente para o mundo empresarial, tanto para pequenas empresas, que dependem dessa forma de divulgação e contacto, como para grandes empresas que usam amplamente estas redes para se definirem e se imporem num mundo global. Este tipo de dinâmica exige, em qualquer contexto, um esforço muito relevante de recursos humanos e financeiros. A manutenção de sites atualizados e a gestão da relação com os clientes/utilizadores exige um esforço constante. A variedade de redes disponíveis, e.g. Facebook, Twitter, Instagram, Youtube, torna ainda mais complicada esta garantia de disponibilidade. Neste contexto surgiu o conceito de bot, sistemas de software automáticos, programados para a realização (e aprendizagem) de determinadas funções que interagem com as redes sociais e os seus utilizadores de uma forma semelhante a uma pessoa.
Inicialmente, os bots apresentavam características muito básicas, sendo facilmente identificados/detetados pelos utilizadores. Entretanto, houve uma grande evolução e é cada vez mais normal sermos influenciados por um bot, ou mesmo interagir com um bot sem termos a percepção completa da situação.

Existem várias soluções no mercado para o desenvolvimento de bots, quer de conversação (e.g., DialogFlow, Luis, Rasa) que respondem a perguntas de acordo com intenções e entidades referidas, quer para contribuir com informação em redes específicas (e.g. Twitter, Facebook). Apesar de fáceis de configurar, estas soluções apresentam duas grandes limitações: (i) implicam uma grande quantidade de trabalho manual na criação de dados de treino, trabalho que tem de se repetir para cada bot / cliente; (ii) não apresentam uma grande flexibilidade ao nível das ferramentas de suporte que permitem o (pré-)processamento da informação.

O processo de construção de um bot passa pela definição de um contexto de funcionamento e pela definição de objetivos específicos. De forma a contornar as limitações da soluções anteriores, será necessário tirar partido, por um lado, de modelos que já oferecem um vasto conhecimento da língua e, por outro, de técnicas de Machine Learning que permitam que o sistema se vá adaptando ao domínio.
Entre os primeiros incluem-se modelos de linguagem poderosos, baseados em redes neuronais profundas e treinados em grandes quantidades de texto (e.g., BERT). Esses modelos têm uma grande capacidade de representar palavras / sentidos e frases e podem ser usados em várias tarefas de processamento da língua, incluindo no cálculo de similaridade semântica entre dois fragmentos de texto. Apesar de ser comum a utilização de modelos pré-treinados, é também possível ajustar esses modelos a diferentes tarefas ou cenários de utilização (fine-tuning). Por outro lado, para que estes modelos se possam ir adaptando ao domínio alvo, faz sentido pensar em técnicas de reinforcement learning com base no feedback humano, cujos resultados podem, por exemplo, até ser utilizados no fine-tuning.

Objetivo

Este trabalho tem como principal objetivo explorar técnicas de Processamento de Linguagem Natural (PLN) e Machine Learning (ML) no desenvolvimento de bots flexíveis, que se adaptem facilmente a diferentes domínios e cenários de aplicação, com o mínimo de configurações manuais e treino específico possível.

Idealmente, o sistema desenvolvido deverá funcionar sobre uma base com conhecimento do domínio em que ele irá operar. Aí podem incluir-se perguntas a que o sistema deve conseguir responder, em linguagem natural (e.g., FAQs), bem como as respetivas respostas, ou formas de as obter, por exemplo, através de uma query SQL. Ao alterar a base de conhecimento, o sistema deve continuar a funcionar com um desempenho aceitável, mas num novo domínio.

Para tornar isto possível, o sistema deve ter à partida acesso a um conjunto de ferramentas e / ou recursos que o permitam processar e interpretar linguagem natural, ainda que genericamente. Isto pode conseguir-se através da inclusão de modelos de análise semântica ou cálculo de similaridade semântica textual, treinados em grandes quantidades de texto. Em especial, interessa explorar modelos de linguagem poderosos, baseados em redes neuronais profundas (e.g., BERT). Apesar do treino destes modelos precisar de muitos recursos e tempo, há versões pré-treinadas disponíveis para a comunidade, que podem servir de base. Pode justificar-se ainda a exploração de técnicas ligadas aos interfaces em linguagem natural para bases de dados, ou técnicas de semantic parsing para formalizar o texto numa representação humanamente interpretável (e.g., AMR).

Enquanto os modelos anteriores fornecerão uma capacidade inicial ao sistema de lidar com linguagem natural, cada domínio ou cenário de aplicação terá as suas especificidades. Para isso, é importante que, à medida que seja utilizado, o sistema se consiga ir adaptando, por exemplo, com base no feedback dos utilizadores. Aqui fará sentido considerar a aplicação de técnicas de reinforcement learning.

Até chegar a um sistema com as caraterísticas desejadas, será necessário começar por analisar em maior detalhe as limitações das soluções atuais para a criação de chatbots, e perceber como podemos tirar partido de modelos de linguagem e outros para ultrapassar alguns desses problemas. Depois de uma familiarização com as áreas de PLN e ML, incluindo um levantamento de ferramentas que possam ser úteis ao desenvolvimento do projeto, será importante definir os cenários de estudo, o que vai incluir a identificação dos dados a utilizar na experimentação (e.g., coleções de perguntas e respostas, bases de dados) e outros dados acerca dos domínios alvo que possam ser utilizados para ajustar os modelos genéricos (fine-tuning).
Finalmente, será importante definir as métricas a aplicar na avaliação dos resultados obtidos e ainda integrar as melhores abordagens numa prova de conceito com a qual seja possível interagir em linguagem natural e obter respostas a perguntas acerca de um caso de estudo.

As principais conclusões deste trabalho devem ser documentadas na dissertação de mestrado e ainda num artigo científico, a enviar para uma conferência na área de Processamento de Linguagem Natural ou Inteligência Artificial.

Plano de Trabalhos - Semestre 1

- Revisão da literatura.
- Identificação de técnicas de criação de chatbots bem como das suas aplicações e limitações.
- Levantamento de ferramentas para o desenvolvimento de bots.
- Definição de cenários de estudo, incluindo benchmarks.
- Propostas de adaptação às técnicas identificadas / de novas técnicas mais adequadas ao objetivo.
- Elaboração da proposta de dissertação.

Plano de Trabalhos - Semestre 2

- Implementação das abordagens propostas.
- Experimentação e avaliação das abordagens propostas nos cenários definidos.
- Integração de numa prova de conceito.
- Elaboração da dissertação de mestrado.
- Escrita de artigo científico.

Condições

O local de trabalho será num laboratório do CISUC, no DEI, onde haverá um acompanhamento regular por parte dos orientadores.
Este trabalho pode vir a ser integrado num projecto de investigação P2020 em co-promoção que visa o desenvolvimento de tecnologias de orientação automática do fluxo de diálogos. Nesse caso, o estudante poderá candidatar-se a uma bolsa de investigação para licenciado durante um período entre 6 a 12 meses, no valor de 798€ / mês.

Observações

Durante a fase de candidatura, dúvidas relacionadas com esta proposta, nomeadamente acerca dos objectivos e condições, devem ser esclarecidas com os orientadores, através de e-mail (catarina@dei.uc.pt e hroliv@dei.uc.pt) ou de uma reunião presencial, a marcar após um contacto por e-mail.

Orientador

Catarina Silva e Hugo Gonçalo Oliveira
catarina@dei.uc.pt 📩