Modelo de idioma -Language model

Um modelo de linguagem é uma distribuição de probabilidade sobre sequências de palavras. Dada tal sequência de comprimento m , um modelo de linguagem atribui uma probabilidade a toda a sequência. Modelos de linguagem geram probabilidades treinando em corpora de texto em um ou vários idiomas. Dado que as linguagens podem ser usadas para expressar uma variedade infinita de sentenças válidas (a propriedade do infinito digital ), a modelagem de linguagem enfrenta o problema de atribuir probabilidades diferentes de zero a sequências linguisticamente válidas que podem nunca ser encontradas nos dados de treinamento. Várias abordagens de modelagem foram projetadas para superar esse problema, como aplicar a suposição de Markovou usando arquiteturas neurais como redes neurais recorrentes ou transformadores .

Os modelos de linguagem são úteis para uma variedade de problemas em linguística computacional ; desde aplicações iniciais em reconhecimento de fala para garantir que sequências de palavras sem sentido (ou seja, de baixa probabilidade) não sejam previstas, até um uso mais amplo em tradução automática (por exemplo, pontuação de traduções candidatas), geração de linguagem natural (gerando mais texto semelhante ao humano), parte de marcação de fala , análise sintática , reconhecimento óptico de caracteres , reconhecimento de escrita manual , indução gramatical , recuperação de informações e outras aplicações.

Os modelos de linguagem são usados ​​na recuperação de informações no modelo de probabilidade de consulta . Lá, um modelo de idioma separado é associado a cada documento em uma coleção. Os documentos são classificados com base na probabilidade da consulta Q no modelo de linguagem do documento : . Comumente, o modelo de linguagem unigram é usado para essa finalidade.

Tipos de modelo

Unigrama

Um modelo de unigrama pode ser tratado como a combinação de vários autômatos finitos de um estado . Ele assume que as probabilidades de tokens em uma sequência são independentes, por exemplo:

Nesse modelo, a probabilidade de cada palavra depende apenas da probabilidade dessa palavra no documento, então temos apenas autômatos finitos de um estado como unidades. O próprio autômato tem uma distribuição de probabilidade sobre todo o vocabulário do modelo, somando 1. A seguir, uma ilustração de um modelo de unigrama de um documento.

Termos Probabilidade no documento
uma 0,1
mundo 0,2
gosta 0,05
nós 0,05
compartilhar 0,3
... ...

A probabilidade gerada para uma consulta específica é calculada como

Diferentes documentos têm modelos de unigrama, com diferentes probabilidades de acerto de palavras nele. As distribuições de probabilidade de diferentes documentos são usadas para gerar probabilidades de acerto para cada consulta. Os documentos podem ser classificados para uma consulta de acordo com as probabilidades. Exemplo de modelos de unigrama de dois documentos:

Termos Probabilidade em Doc1 Probabilidade no Doc2
uma 0,1 0,3
mundo 0,2 0,1
gosta 0,05 0,03
nós 0,05 0,02
compartilhar 0,3 0,2
... ... ...

Em contextos de recuperação de informações, os modelos de linguagem de unigrama são frequentemente suavizados para evitar instâncias em que P (termo) = 0. Uma abordagem comum é gerar um modelo de máxima verossimilhança para toda a coleção e interpolar linearmente o modelo de coleção com um modelo de máxima verossimilhança para cada documento para suavizar o modelo.

n-grama

Em um modelo n - gram, a probabilidade de observar a sentença é aproximada como

Assume-se que a probabilidade de observar a i - ésima palavra w i no histórico de contexto das i  − 1 palavras precedentes pode ser aproximada pela probabilidade de observá-la no histórico de contexto encurtado das n  − 1 palavras precedentes ( n ª ordem propriedade de Markov ). Para esclarecer, para n=3 e i=2 temos .

A probabilidade condicional pode ser calculada a partir de contagens de frequência do modelo de n -gramas:

Os termos modelos de linguagem bigrama e trigrama denotam modelos n -grama com n  = 2 e n  = 3, respectivamente.

Normalmente, as probabilidades do modelo de n -gramas não são derivadas diretamente das contagens de frequência, porque os modelos derivados dessa maneira têm problemas graves quando confrontados com quaisquer n -gramas que não tenham sido explicitamente vistos antes. Em vez disso, alguma forma de suavização é necessária, atribuindo parte da massa de probabilidade total a palavras não vistas ou n - gramas. Vários métodos são usados, desde simples suavização "add-one" (atribuir uma contagem de 1 a n -gramas não vistos, como um prior não informativo ) a modelos mais sofisticados, como descontos de Good-Turing ou modelos de back-off .

Bidirecional

As representações bidirecionais condicionam o pré e o pós-contexto (por exemplo, palavras) em todas as camadas.

Exemplo

Em um modelo de linguagem bigrama ( n  = 2), a probabilidade da frase eu vi a casa vermelha é aproximada como

enquanto em um modelo de linguagem trigrama ( n  = 3), a aproximação é

Observe que o contexto dos primeiros n  – 1 n -gramas é preenchido com marcadores de início de frase, normalmente denotados por <s>.

Além disso, sem um marcador de final de frase, a probabilidade de uma sequência não gramatical *Vi o seria sempre maior do que a da frase mais longa que vi a casa vermelha.

Exponencial

Os modelos de linguagem de entropia máxima codificam a relação entre uma palavra e o histórico de n-gramas usando funções de recursos. A equação é

onde é a função de partição , é o vetor de parâmetros e é a função de recurso. No caso mais simples, a função característica é apenas um indicador da presença de um certo n-grama. É útil usar uma prévia ou alguma forma de regularização.

O modelo log-bilinear é outro exemplo de um modelo de linguagem exponencial.

Rede neural

Modelos de linguagem neural (ou modelos de linguagem de espaço contínuo ) usam representações contínuas ou incorporações de palavras para fazer suas previsões. Esses modelos fazem uso de redes neurais .

Embeddings de espaço contínuo ajudam a aliviar a maldição da dimensionalidade na modelagem de linguagem: à medida que os modelos de linguagem são treinados em textos cada vez maiores, o número de palavras únicas (o vocabulário) aumenta. O número de sequências possíveis de palavras aumenta exponencialmente com o tamanho do vocabulário, causando um problema de esparsidade de dados devido ao número exponencial de sequências. Assim, as estatísticas são necessárias para estimar adequadamente as probabilidades. As redes neurais evitam esse problema ao representar palavras de forma distribuída , como combinações não lineares de pesos em uma rede neural. Uma descrição alternativa é que uma rede neural se aproxima da função da linguagem. A arquitetura da rede neural pode ser feed-forward ou recorrente , e enquanto a primeira é mais simples, a segunda é mais comum.

Normalmente, os modelos de linguagem de rede neural são construídos e treinados como classificadores probabilísticos que aprendem a prever uma distribuição de probabilidade

.

Ou seja, a rede é treinada para prever uma distribuição de probabilidade sobre o vocabulário, dado algum contexto linguístico. Isso é feito usando algoritmos de treinamento de rede neural padrão, como gradiente descendente estocástico com retropropagação . O contexto pode ser uma janela de tamanho fixo de palavras anteriores, para que a rede preveja

de um vetor de características representando as k palavras anteriores. Outra opção é usar palavras "futuras" e "passadas" como características, de modo que a probabilidade estimada seja

.

Isso é chamado de modelo de saco de palavras . Quando os vetores de recursos para as palavras no contexto são combinados por uma operação contínua, esse modelo é chamado de arquitetura contínua de bag-of-words (CBOW).

Uma terceira opção que treina mais devagar que o CBOW, mas tem um desempenho um pouco melhor, é inverter o problema anterior e fazer uma rede neural aprender o contexto, dada uma palavra. Mais formalmente, dada uma sequência de palavras de treinamento , maximiza-se a probabilidade logarítmica média

onde k , o tamanho do contexto de treinamento, pode ser uma função da palavra central . Isso é chamado de modelo de linguagem skip-gram . Os modelos Bag-of-words e Skip-gram são a base do programa word2vec .

Em vez de usar modelos de linguagem de rede neural para produzir probabilidades reais, é comum usar a representação distribuída codificada nas camadas "ocultas" das redes como representações de palavras; cada palavra é então mapeada em um vetor real n -dimensional chamado word embedding , onde n é o tamanho da camada imediatamente antes da camada de saída. As representações em modelos skip-gram têm a característica distinta de modelar relações semânticas entre palavras como combinações lineares , capturando uma forma de composicionalidade . Por exemplo, em alguns desses modelos, se v é a função que mapeia uma palavra w para sua representação vetorial n -d, então

onde ≈ é preciso estipulando que seu lado direito deve ser o vizinho mais próximo do valor do lado esquerdo.

Outro

Um modelo de linguagem posicional avalia a probabilidade de determinadas palavras ocorrerem próximas umas das outras em um texto, não necessariamente imediatamente adjacentes. Da mesma forma, os modelos bag-of-concepts aproveitam a semântica associada a expressões de várias palavras, como buy_christmas_present , mesmo quando são usadas em frases ricas em informações como "hoje comprei muitos presentes de Natal muito legais".

Apesar dos sucessos limitados no uso de redes neurais, os autores reconhecem a necessidade de outras técnicas ao modelar linguagens de sinais.

Avaliação e Benchmarks

A avaliação da qualidade dos modelos de linguagem é feita principalmente por comparação com benchmarks de amostra criados por humanos, criados a partir de tarefas típicas orientadas a linguagem. Outros testes de qualidade menos estabelecidos examinam o caráter intrínseco de um modelo de linguagem ou comparam dois desses modelos. Uma vez que os modelos de linguagem são tipicamente destinados a serem dinâmicos e aprenderem com os dados que veem, alguns modelos propostos investigam a taxa de aprendizado, por exemplo, através da inspeção de curvas de aprendizado.

Vários conjuntos de dados foram desenvolvidos para serem usados ​​para avaliar sistemas de processamento de linguagem. Esses incluem:

  • Corpus de Aceitabilidade Linguística
  • Referência de COLA
  • Corpus de paráfrases de pesquisa da Microsoft
  • Inferência de linguagem natural de vários gêneros
  • Pergunta Inferência de linguagem natural
  • Pares de perguntas do Quora
  • Reconhecendo o envolvimento textual
  • Referência de semelhança textual semântica
  • Teste de resposta a perguntas SQUAD
  • Stanford Sentiment Treebank
  • Winograd NLI

Crítica

Embora os modelos de linguagem contemporâneos, como o GPT-2, possam corresponder ao desempenho humano em algumas tarefas, não está claro que sejam modelos cognitivos plausíveis . Por exemplo, redes neurais recorrentes demonstraram aprender padrões que os humanos não aprendem e falham em aprender padrões que os humanos aprendem.

Veja também

Notas

Referências

Citações

Fontes

  • JM Ponte e WB Croft (1998). "Uma abordagem de modelagem de linguagem para recuperação de informações". Pesquisa e Desenvolvimento em Recuperação de Informação . págs. 275-281. CiteSeerX  10.1.1.117.4237 .{{cite conference}}: CS1 maint: usa o parâmetro de autores ( link )
  • F Song e WB Croft (1999). "Um modelo de linguagem geral para recuperação de informações". Pesquisa e Desenvolvimento em Recuperação de Informação . pp. 279-280. CiteSeerX  10.1.1.21.6467 .{{cite conference}}: CS1 maint: usa o parâmetro de autores ( link )
  • Chen, Stanley; Joshua Goodman (1998). Um estudo empírico de técnicas de suavização para modelagem de linguagem (relatório técnico). Universidade de Harvard. CiteSeerX  10.1.1.131.5458 .