Entendendo a aritmética de incorporação de palavras: Por que não há uma resposta única para “Rei – homem + mulher =?”

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


[Esteartigofoipublicadopelaprimeiravezem[Thisarticlewasfirstpublishedon R – Dados Modernos, e gentilmente contribuiu para os R-blogueiros]. (Você pode relatar um problema sobre o conteúdo desta página aqui)


Deseja compartilhar seu conteúdo com R-blogueiros? clique aqui se você tiver um blog ou aqui se não tiver.

Representar palavras em formato numérico tem sido um primeiro e desafiador e importante passo na construção de qualquer tipo de sistema de aprendizado de máquina (ML) para processamento de linguagem natural, seja para modelar sentimentos de mídias sociais, classificar e-mails, reconhecer nomes dentro de documentos ou traduzir frases em outras línguas. Os modelos de Machine Learning podem tomar como vetores de entrada e matrizes, mas não conseguem analisar diretamente as strings. Em vez disso, você precisa pré-processar seus documentos, para que possam ser alimentados corretamente nos seus modelos de ML. Tradicionalmente, métodos como palavras-chave são muito eficazes na conversão de frases ou documentos em matrizes de tamanho fixo. Embora eficazes, geralmente resultam em vetores esparsos e de alta dimensão. Se você deseja representar todas as palavras do seu vocabulário e possui centenas de milhares de palavras, precisará de muitas dimensões para representar totalmente seus documentos. Em vez disso, e se representássemos numericamente cada palavra em um documento separadamente e usarmos modelos projetados especificamente para processá-las?

Uma representação gráfica de palavras-chave. Recuperado do capítulo 4 de “Análise de texto aplicada”.

Ser capaz de incorporar palavras em vetores significativos tem sido uma das razões mais importantes pelas quais o Deep Learning foi aplicado com tanto êxito no campo do Processamento de Linguagem Natural (PNL). Sem a capacidade de mapear palavras como “rei”, “homem” ou “mulher” em um vetor denso de baixa dimensão, modelos como Redes Neurais Recorrentes (RNNs) ou Transformadores podem não ter sido tão bem-sucedidos nas tarefas da PNL. De fato, os embeddings aprendidos foram um fator importante no sucesso do Deep Learning para tradução de máquina neural e análise de sentimentos, e ainda são usados ​​atualmente em modelos como o BERT.

A incorporação de palavras tem sido uma área ativa de pesquisa, com mais de 26.000 artigos publicados desde 2013. No entanto, muito sucesso inicial no assunto pode ser atribuído a dois artigos seminais: GloVe (um método que gera vetores com base na coocorrência de palavras ) e word2vec (que aprende a prever o contexto de uma palavra ou a palavra que falta em uma sequência). Enquanto ambos foram amplamente utilizados e mostram ótimos resultados, muitas propriedades espaciais interessantes foram examinadas para este último. Não são apenas palavras semelhantes como “homem” e “mulher” próximas (em termos de distância do cosseno), mas também é possível calcular expressões aritméticas como king - man + queen.

Uma ilustração das propriedades espaciais do word2vec. Figura recuperada de Mikolov 2013.

Construindo um aplicativo Dash para explorar a aritmética de palavras

Na Plotly, usamos incorporação de palavras em vários projetos e demonstrações de IA e ML, e é importante entender melhor as propriedades aritméticas desses métodos. Em vez de simplesmente escolher um único vizinho mais próximo para uma expressão como king - man + woman ou france - paris + tokyo, queríamos explorar a vizinhança de cada operação que estamos aplicando à palavra inicial (ou seja, king e france no nosso caso). Achamos que o Dash era a ferramenta perfeita para isso, pois conseguimos aproveitar poderosas bibliotecas Python como NumPy e scikit-learn para criar diretamente uma interface de usuário responsiva e totalmente interativa – tudo dentro de um único script Python. Como resultado, criamos um aplicativo Aritmético de Incorporação do Word, denominado usando o Dash Enterprise Design Kit e implantado por meio do Dash Enterprise App Manager. Para os fins desta demonstração, usamos um subconjunto da incorporação word2vec treinada no conjunto de dados do Google Notícias.

Uma maneira intuitiva de representar isso é usar uma rede de operações aritméticas, onde cada operação que estamos aplicando a um termo inicial é conectada a uma aresta direcionada. Por exemplo, para uma expressão como france - paris + tokyo, conectamos o nó france para france - paris e france + tokyo, pois são o resultado da aplicação de subtração e adição respectivamente a france. Da mesma forma, temos france - paris + tokyo aplicando os mesmos operadores aos nós intermediários. Cada um desses nós é colorido em azul.

Essa rede totalmente interativa foi criada com o Dash Cytoscape, usando Python puro.

Então, cada um desses nós azuis (que são vetores) são conectados aos 8 vizinhos mais próximos (representados em cinza se aparecerem na expressão aritmética e em vermelho caso contrário).

Leia Também  Por que R? Seminário on-line sobre exames R / para testes de e-learning e outros

Uma observação importante é que o comprimento das arestas não depende da semelhança dos vizinhos; como distinção visual, alteramos a forma do vizinho mais próximo (que não faz parte da expressão) em uma estrela. Além disso, tornamos possível clicar em qualquer nó da rede para exibir a semelhança desse nó com todos os vizinhos mais próximos dentro de uma rede. plotly.express gráfico de barras. Para criar essa interação, basta atribuir um retorno de chamada que é acionado sempre que clicar em um nó em um componente do Dash Cytoscape:

Esses retornos de chamada podem ser escritos em menos de 50 linhas de código Python e resultar em um aplicativo altamente interativo:

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Este aplicativo foi implantado usando o Dash Enterprise App Manager e estilizado com o Dash Enterprise Design Kit. Experimente aqui.

Por que devemos ter cuidado com a maneira como construímos analogias

Talvez um dos exemplos mais famosos de aritmética word2vec seja a expressão king - man + woman = queen, o que é tecnicamente verdadeiro, mas não tão impressionante quanto poderíamos acreditar. De fato, no artigo original, as palavras de entrada (ou seja, king, man, woman) São descartados ao escolher o vizinho mais próximo; se não forem descartados, o resultado real será king - man + woman = king. Essas idéias são discutidas em profundidade nesta postagem do blog.

Os vizinhos na entrada são coloridos em cinza e o vizinho mais próximo que não é de entrada é em amarelo. Há uma diferença de similaridade acima de 0,10 entre o “rei” descartado e a próxima rainha “vizinha” mais próxima.

Outro insight muito interessante que descobrimos é que expressões parciais às vezes produzem o mesmo resultado que a expressão completa. Por exemplo, se removermos o operando man da nossa expressão, teríamos king + woman, e o vizinho mais próximo resultante ainda seria rainha. Da mesma forma, o vizinho mais próximo para california - state + country e california + country ambos estarão perto de america.

Usando o aplicativo Word Aritmetic, conseguimos descobrir alguns resultados bastante interessantes. Analisamos primeiramente as alegações deste artigo altamente citado que computer_programmer - man + woman será o mais próximo homemaker.

Desde a “computer_programmer“Não está disponível no subconjunto, tentamos usar as duas expressões”programmer — man + woman“E”homemaker — woman + man”.

Descobrimos que, em ambos os casos, o vizinho mais próximo era na verdade a palavra inicial, e o próximo vizinho mais próximo era respectivamente o plural e o sinônimo das palavras. Obviamente, o significado espacial da palavra programmer provavelmente difere de computer_programmer, mas o significado de programmer permanece semelhante a palavras como animator, engineer, geek e developer.

Além disso, descobrimos que, mesmo em termos muito especializados, a incorporação de palavras exibe um certo grau de parcialidade. Por exemplo, o vizinho mais próximo (sem entrada) da expressão cardiologist - man + woman foi realmente gynecologist, seguido de perto por obstetrics. Esse resultado é bastante interessante, pois se diz que 59% dos atuais ginecologistas e 85% dos médicos residentes em obstetrícia são mulheres. Provavelmente, isso indica que o modelo aprendeu a associar essas duas especializações à palavra woman. Se tais incorporações fossem aplicadas em um ambiente médico, elas precisariam ser avaliadas com muito cuidado antes de serem implantadas, para que esses vieses especializados possam ser corrigidos.

Leia Também  Ferramenta COVID-19 Data Explorer do Canadá

Fornecendo os blocos de construção para a análise de PNL em larga escala

Neste artigo, descrevemos um aplicativo que permite explorar as palavras mais comuns da famosa incorporação word2vec e percorremos relações úteis e interessantes entre várias palavras. No entanto, estamos apenas arranhando a superfície do que o Dash Enterprise é capaz. Com a nossa plataforma de aplicativos escalável e de última geração em execução no Kubernetes, você pode escalar facilmente aplicativos de aprendizado de máquina para serem usados ​​por quantos usuários você quiser, pois o Dash foi projetado com um back-end sem estado. Acreditamos que fornecer esses componentes para aplicativos de IA prontos para empresas é crucial para mover projetos de PNL para além do estágio de P&D, e estamos aqui para ajudá-lo a alcançar isso.



Se você chegou até aqui, por que não inscreva-se para atualizações do site? Escolha o seu sabor: e-mail, twitter, RSS ou facebook …



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br