10 perguntas a fazer antes de iniciar um projeto de aprendizagem automática

10 perguntas a fazer antes de iniciar um projeto de aprendizagem automática

    Mais de 80% dos projectos de ciência de dados não passam dos testes para a produção. Se toda a gente está a iniciar um projeto de aprendizagem automática, onde é que está a correr mal? Não há dúvida de que as soluções de aprendizagem automática aumentam a eficiência para aqueles que estão na atividade de recolha ou análise de grandes quantidades de dados. Mas, muitas vezes, a ideia ameaçadora de como implementar um projeto deste tipo impede-nos de o fazer. 

Então, como é que se começa a abordar uma tarefa destas? Da mesma forma que se come um elefante - dentada a dentada. Através da minha experiência a liderar a minha equipa na construção de uma plataforma de IA padrão (Barra de ferramentas do Chrome da Skim AI) e soluções personalizadas, identifiquei as 10 perguntas a fazer antes de iniciar um projeto de aprendizagem automática. Com estas 10 perguntas respondidas, terá uma base clara de como abordar o projeto.

Perguntas a fazer antes de iniciar um projeto de aprendizagem automática:

        

1) Qual é o problema central e o objetivo do projeto?

Existem várias respostas válidas para esta pergunta, por isso vamos analisá-la em pormenor. Em primeiro lugar, identifique o objetivo geral: precisa de extrair informações ou de classificar informações? 

 

Em seguida, identifique o nível de pormenor a que isto deve ser executado. Por exemplo, o modelo deve ser analisado ao nível da frase ou ao nível de todo o documento. Ou precisa de algo personalizado, como um subconjunto de frases num parágrafo, que pode não ser ideal para implementar com elevada precisão?

2) Que métricas serão utilizadas para avaliar o sucesso do projeto e com que limiar(es)?

    

Determinar os resultados quantitativos desejados. Talvez queira aumentar a quantidade de dados que são classificados com a extração automática de dados. Neste caso, deve indicar em que quantidade. Ou talvez pretenda aumentar a quantidade de dados que rotula coletivamente como uma empresa ou ser capaz de fazer uma previsão com um determinado nível de precisão. Seja qual for o objetivo, torne-o claro e estabeleça métricas mensuráveis.

3) De que quantidade de dados dispomos para começar?

Idealmente, o ideal é ter dois a cinco mil pontos de dados para começar cada categoria de classificação. É vantajoso ter mais cinquenta a cem mil peças de texto em bruto não rotulado, artigos ou equivalente para utilizar como uma camada no seu modelo. Se estivesse a construir um classificador de sentimentos ou outro classificador para menções de um produto em dados de notícias, seria bom ter algumas centenas de milhares de notícias que mencionam produtos e a indústria para a qual está a construir o modelo, mesmo que esses artigos não estejam rotulados.

4) Que quantidade de dados pode ser rotulada antes do início do projeto e que quantidade pode ser gerada por mês?

Como mencionado na pergunta 3, o número mínimo de pontos de dados necessários é de 5.000 por categoria para desenvolver um modelo que forneça resultados próximos da precisão humana. Para criar um calendário realista, deve considerar quanto tempo demoraria a etiquetar esse primeiro conjunto manualmente.

5) Que grau de subjetividade está envolvido na rotulagem pelos anotadores humanos?

Sobre a metodologia:

Por vezes, é necessário simplificar o sistema para implementar um modelo de aprendizagem automática útil. Muitas vezes, a razão para tal é o facto de simplesmente não ter dados suficientes para construir um modelo com precisão de nível humano para distinguir entre categorias.

 

A sua metodologia é fácil de compreender por um ser humano? As suas categorias de classificação são distintas e têm algumas diferenças de vocabulário entre categorias, ou é difícil distinguir devido à subjetividade e à incapacidade de definir regras com certeza.

 

Se um humano não consegue tomar uma decisão num segundo ou dois, uma máquina vai ter um problema. Algumas equipas atenuam esta situação criando uma categoria de classificação "mista" e assinalam a categoria para revisão por um analista, da mesma forma que, quando um Tesla não sabe o que fazer numa situação confusa, pede ao condutor que assuma o controlo do volante.

6) Que metadados estarão disponíveis para cada documento?

    

É útil determinar as informações que poderá recolher de cada documento da sua base de dados. Estas podem incluir coisas como o autor, a data, a hora, a secção do jornal, o local, a fonte, a categoria ou as entidades envolvidas (entre muitas outras coisas).

7) É possível ter acesso a listas de entidades que vamos encontrar?

A maioria dos projectos de extração de dados pretende extrair facilmente as entidades (pessoas, locais e coisas) de um texto. Muitas empresas pretendem mapear esses dados para um determinado cliente ou apresentar análises ao nível da entidade a um utilizador final (provavelmente um cliente ou consumidor). Se precisar de fazer corresponder uma entidade do texto a uma entidade da sua base de dados, é útil escrever as correspondências desejadas.

 

Além disso, se já tiver entidades rotuladas no texto, a construção de um modelo para extrair entidades do novo texto terá um elevado nível de precisão. Este é especialmente o caso se o objetivo for rotular todas as variações de uma entidade única e unificada (por exemplo, fazer corresponder "Facebook", "WhatsApp" e "Instagram" ao seu símbolo de acções partilhado "FB"). A criação de uma lista principal de entidades também é útil se existirem várias formas de encontrar uma entidade mencionada no texto que depois é necessário apresentar numa interface de front-end virada para o cliente, como um painel de BI.

8) Há alguma coisa que possamos fazer para ajudar a acelerar o processo de recolha de dados/rotulagem?

    

Os dados são uma vantagem competitiva que lhe permite criar modelos. Deve considerar a possibilidade de desenvolver esta capacidade internamente ou em regime de subcontratação para permitir os seus projectos futuros.

 

Se não tiver uma equipa interna, considere a possibilidade de subcontratar as suas necessidades de recolha de dados a empresas na Índia ou na Europa de Leste. Estas empresas praticam preços muito competitivos, que podem variar entre 500 e 1000 euros por mês para um coletor de dados, dependendo do grau de sofisticação do seu sistema de etiquetagem.

9) Existem dados não etiquetados do mesmo domínio ou dados etiquetados que não estejam relacionados com a tarefa de previsão do piloto?

    

Por exemplo, há muitos dados ainda por rotular que estão armazenados na base de dados, para este problema específico ou para outros documentos específicos do domínio para os quais criaremos modelos no futuro?

 

Se assim for, pode construir ou adaptar vários modelos linguísticos para aumentar o desempenho da maioria das soluções. Isto porque mesmo os dados não rotulados são úteis para os modelos de aprendizagem automática extraírem significado das relações que já existem no texto não rotulado.

10) Existe alguma base de dados conhecida do texto específico do domínio que partilhe vocabulário (e entidades) semelhante?

    

Pela mesma razão acima referida, os dados específicos de um domínio são muito úteis para o ML/NLP. Muitas vezes, alguém ou algum fornecedor de dados terá o que é necessário para começar, por vezes gratuitamente. Muitos projectos de investigação consideram a possibilidade de partilhar os seus conjuntos de dados, muitas vezes para utilização não comercial. Basta enviar-lhes um e-mail. Veja o que seria necessário para obter acesso em termos de custos e se existem API. 

 

O Google, o Facebook, os governos, os fornecedores de dados de mercado, os projectos de investigação e outros podem ajudá-lo a semear o seu conjunto de dados inicial com dados que disponibilizam à comunidade. Muitas vezes, ter um conjunto de dados tão grande aumenta a sua capacidade de obter mais dos seus modelos, mesmo que tenha menos dados rotulados.

Vamos discutir a sua ideia

    Publicações relacionadas

    Pronto para impulsionar o seu negócio

    VAMOS
    TALK
    pt_PTPortuguês