FastText é uma biblioteca de código aberto desenvolvida pela Facebook AI Research (FAIR) para aprender representações de palavras e realizar classificação de texto. Foi publicamente lançada em 2016. A biblioteca combina técnicas de aprendizado de máquina com foco em eficiência computacional, tornando-a adequada para tarefas de processamento de linguagem natural em larga escala. Seu repositório no GitHub foi arquivado em 19 de março de 2024, indicando o fim do desenvolvimento ativo, embora o código-fonte e os modelos pré-treinados permaneçam disponíveis.
Representações de palavras
O FastText baseia-se no modelo skip-gram usado no word2vec, mas também leva em conta a estrutura interna das palavras. Em vez de aprender uma representação para cada palavra apenas como um todo, ele representa palavras usando n-gramas de caracteres. Palavras que compartilham sequências de caracteres podem, portanto, compartilhar parte das mesmas informações aprendidas.
Esse uso de informações de subpalavras é particularmente útil para palavras raras e idiomas com formação complexa de palavras, e também permite que o fastText construa representações para palavras que não foram vistas durante o treinamento. A Facebook AI Research posteriormente lançou vetores fastText pré-treinados para muitos idiomas, incluindo uma coleção para 157 línguas treinada em Common Crawl e Wikipedia. Esses vetores foram amplamente adotados em aplicações downstream, como classificadores de aprendizado de máquina e tarefas de similaridade semântica.
Classificação de texto
O FastText também pode ser usado para classificação supervisionada de texto. Ele combina informações das palavras e n-gramas de palavras em um texto para prever um rótulo de classe. O método foi projetado para ser computacionalmente eficiente e, em sua avaliação original, alcançou precisão comparável a vários modelos contemporâneos de aprendizado profundo, enquanto treinava e fazia previsões muito mais rapidamente. O modo supervisionado usa um softmax hierárquico para lidar com grandes conjuntos de rótulos de forma eficiente, tornando-o prático para tarefas como análise de sentimentos e marcação de documentos.
Arquitetura e treinamento
O modelo central é uma rede neural rasa com uma única camada oculta, o que contrasta com arquiteturas mais profundas comuns no aprendizado profundo moderno. No modo não supervisionado, cada palavra é representada como a soma de seus vetores de n-gramas de caracteres mais um vetor opcional de palavra inteira. No modo supervisionado, o texto de entrada é incorporado como a média de seus vetores de palavras, que é então alimentado por um classificador linear. O treinamento é realizado com descida de gradiente estocástica e amostragem negativa, o que reduz o custo computacional. Essa simplicidade permite que o fastText escale para bilhões de palavras em uma única máquina em poucos minutos.
Legado e influência
O FastText influenciou desenvolvimentos posteriores em representação e classificação de texto, particularmente em cenários com recursos computacionais limitados. Sua abordagem de subpalavras informou pesquisas sobre idiomas morfologicamente ricos e tratamento de palavras fora do vocabulário, e permanece como uma linha de base comum para avaliar modelos mais complexos, como modelos de linguagem de grande escala. O repositório arquivado e os vetores pré-treinados lançados continuam sendo usados por pesquisadores e profissionais na academia e na indústria, inclusive em plataformas de nuvem como Amazon Web Services e Google Cloud para pipelines personalizados de inteligência artificial.
Ver também
- Word2vec (conceito relacionado, não na lista fornecida, mas mencionado como texto)
- Word2vec
- GloVe
- Rede neural (aprendizado de máquina)
- Processamento de linguagem natural