Pesquisa visual de rede neural

A história conhece muitos exemplos de descobertas e invenções prematuras. Eu quero falar sobre um deles.



Estamos falando de um mecanismo de busca visual que recebeu os primeiros investimentos ocidentais de capital de risco em TI na Rússia, construído com base em redes neurais semânticas ativas. Abaixo do corte, falaremos sobre seus princípios básicos de operação e arquitetura.



Origens



Tive muita sorte na minha vida - estudei com Nikolai Mikhailovich Amosov , uma pessoa notável, cirurgião cardíaco e cibernética. Estudei à revelia - o colapso da URSS não me deu a oportunidade de me encontrar pessoalmente.



imagem



Muito pode ser dito sobre Nikolai Mikhailovich, ele nasceu em uma família de camponeses em uma aldeia perto de Cherepovets e ao mesmo tempo recebeu o segundo lugar no projeto "Grandes Ucranianos", cedendo o primeiro lugar a Yaroslav, o Sábio. Excelente cirurgião cardíaco e engenheiro cibernético que desenvolveu de forma independente a primeira válvula artificial da URSS. Ruas, uma escola de medicina, uma faculdade, um barco que circula no reservatório de Ivankovskoye têm o nome dele.



Muito tem sido escrito sobre isso na Wikipedia e em outros sites .



Eu quero tocar no lado não tão amplamente iluminado de Amosov. Uma visão ampla, duas formações (médica e engenharia) permitiram-lhe desenvolver uma teoria das redes neurais semânticas ativas (redes M), dentro das quais, há mais de 50 anos, foram implementadas coisas que ainda são marcantes por sua singularidade.



E se houvesse poder de computação suficiente naquela época, talvez uma IA forte já tivesse sido implementada hoje.



Em suas obras, Amosov conseguiu manter um equilíbrio entre a neurofisiologia e a matemática, estudando e descrevendo os processos informacionais da inteligência. Os resultados do seu trabalho são apresentados em várias obras, a final foi a monografia "Algoritmos da Mente" , publicada em 1979.



Aqui está uma pequena citação sobre um dos modelos:



“… (Nós) realizamos um estudo cujo objetivo era estudar as possibilidades das redes M no campo da neurofisiologia e neuropsicologia, bem como avaliar a importância prática e cognitiva de tais modelos. Um autômato M foi desenvolvido e estudado, que simula mecanismos de fala. O modelo apresenta aspectos da fala oral como percepção, compreensão, expressão verbal.



O modelo é projetado para reproduzir funções de fala relativamente simples (!!!) - respostas a perguntas de tipo limitado, repetição, nomenclatura. Contém os seguintes blocos: percepção auditiva, fala sensorial, fala proprioceptiva, bloco conceitual, emocional, motivacional, fala motora, articulatório e SUT. Os blocos do modelo são correlacionados com certas formações cerebrais ...



... A entrada do modelo foram as letras do alfabeto russo combinadas em palavras e frases, bem como objetos especiais correspondentes às imagens de objetos. Na saída do modelo, dependendo do modo de operação, sequências de letras do alfabeto russo foram observadas, que eram respostas a perguntas de entrada, ou uma repetição de palavras de entrada, ou nomes de objetos.



O fato de os dados neurofisiológicos terem sido amplamente utilizados na criação do modelo possibilitou em experimentos simular uma série de lesões cerebrais de natureza orgânica e funcional, levando ao comprometimento das funções da fala.



E esta é apenas uma das obras.



Outro é o controle de um robô móvel. “… O sistema de controle do robô pressupõe a implementação de movimento proposital com garantia de sua própria segurança (evitando obstáculos, evitando locais perigosos, mantendo os parâmetros internos dentro dos limites especificados) e minimizando custos de tempo e energia”.



imagem



Além disso, a monografia descreve os resultados da modelagem do comportamento livre de “um determinado sujeito em um ambiente que continha objetos úteis e perigosos para ele. Os motivos de comportamento do sujeito eram determinados por sentimentos de fadiga, fome e desejo de autopreservação. O sujeito estudou o ambiente, escolheu o objetivo do movimento, construiu um plano para atingir esse objetivo e então o percebeu realizando ações-etapas, comparando os resultados obtidos durante o movimento com os planejados, complementando e ajustando o plano conforme as situações emergentes.



imagem



Características da teoria



Em suas obras, Amosov tentou criar um modelo informacional / algorítmico, como dizemos agora, de “inteligência forte” e, em minha opinião, sua teoria descreve melhor o que realmente acontece no cérebro dos mamíferos.



As principais características das redes M, que fundamentalmente as distinguem de outros paradigmas de redes neurais, são a carga semântica estrita de cada neurônio e a presença de um sistema para avaliação interna de seu estado. Existem neurônios-receptores, neurônios-objetos, neurônios-sentimentos, neurônios-ações.



imagem



A aprendizagem ocorre de acordo com a regra modificada de Hebb, levando em consideração seu estado interno. Conseqüentemente, a decisão é tomada com base em uma distribuição compreensível da atividade de neurônios semanticamente designados.



A rede aprende "on the fly", sem repetição repetida. Os mesmos mecanismos funcionam com diferentes tipos de informação, seja ela fala ou percepção de dados visuais, atividade motora. Este paradigma simula o trabalho da consciência e do subconsciente.



Os interessados ​​podem encontrar os livros de Amosov com uma descrição mais detalhada da teoria e implementações práticas de vários aspectos da inteligência, mas contarei a vocês sobre nossa experiência na construção de um buscador visual Quintura Search.



Quintura



imagem



A empresa Quintura foi fundada em 2005. Um protótipo de um aplicativo de desktop demonstrando nossa abordagem foi implementado com nosso próprio dinheiro. Com o dinheiro do anjo de Ratmir Timashev e Andrey Baronov (posteriormente fundo da ABRT ), o protótipo foi finalizado, as negociações foram realizadas e os investimentos recebidos do fundo de Luxemburgo Mangrove Capital Partners . Este foi o primeiro investimento ocidental na Rússia na área de TI. Os três sócios do fundo procuraram Sergiev Posad para nos olhar nos olhos e tomar uma decisão de investimento.



Durante seis anos, os fundos recebidos foram usados ​​para desenvolver a funcionalidade completa de um mecanismo de busca na web - coleta de informações, indexação, processamento de consultas e emissão de resultados. O núcleo era uma rede M, ou melhor, um conjunto de redes M (uma rede conceitual e redes para cada documento). A rede foi treinada em uma passagem pelo documento. Para alguns ciclos de recálculo, palavras-chave foram alocadas, foram encontrados documentos que correspondiam ao significado da consulta e suas anotações foram criadas. A rede entendeu o contexto da solicitação, mais precisamente, permitiu ao usuário esclarecê-la, acrescentando os significados necessários para a busca e retirando dos resultados da busca os documentos que apresentavam contextos irrelevantes.



Princípios e abordagens básicas



Conforme observado acima, cada neurônio na rede tem sua própria carga semântica. Para ilustrar as patentes, propusemos uma imagem visual (peço desculpas pela qualidade - os originais das imagens não foram preservados, a seguir usamos imagens de scans de nossas patentes e de artigos sobre nós de vários sites):



imagem



Simplificada, uma rede conceitual é um conjunto de neurônios-conceitos relacionados uns com os outros por conexões, em proporção à frequência de suas ocorrências entre si. Quando o usuário insere uma palavra de consulta, "puxamos" o (s) neurônio (s) dessa palavra e ele, por sua vez, puxa os associados a ela. E quanto mais forte a conexão, mais próximos os outros neurônios estarão do neurônio de solicitação.



imagem



Se houver várias palavras na solicitação, todos os neurônios correspondentes às palavras da solicitação serão puxados.



imagem



Se decidirmos excluir uma palavra irrelevante, ficamos com uma carga que puxa para baixo tanto o conceito excluído quanto aqueles associados a ele.



Como resultado, obtemos uma nuvem de tags, onde as palavras de consulta estão no topo (a maior fonte) e os conceitos relacionados estão localizados lado a lado, quanto maior o link, maior a fonte.



Abaixo está um mapa semântico dos documentos encontrados pela consulta "beleza".



imagem



Quando você passa o mouse sobre a palavra "moda", o mapa é reconstruído:



imagem



Se você mover o ponteiro do mouse sobre a palavra "viajar", obteremos outro mapa:



imagem



Assim, podemos refinar a consulta apontando a direção que precisamos, a partir do contexto que precisamos.



Simultaneamente com a reconstrução do mapa, também recebemos documentos que são mais relevantes para o contexto fornecido e excluímos ramificações desnecessárias ao excluir palavras irrelevantes.



Construímos o índice do documento de acordo com o seguinte princípio:



imagem



Existem 4 camadas de neurônios. Camada de palavras, camada de conceitos (podem ser combinados em uma camada), camada de frases, camada de documentos.



Os neurônios podem ser conectados entre si por dois tipos de conexões - amplificadoras e inibitórias. Assim, cada neurônio pode estar em três tipos de estados: ativo, neutro e suprimido. Os neurônios transmitem atividade pela rede por meio de conexões de reforço e por "âncoras" inibitórias. A camada de conceito é útil para trabalhar com sinônimos, bem como destacar conceitos "fortes" ou significativos sobre outros, definindo categorias de documentos.



Por exemplo, a palavra Apple na palavra camada estaria associada aos conceitos de fruta, termo anatômico e empresa. Óleo - com óleo e óleo. A palavra russa "trança" com penteado, ferramentas, armas, relevo. Etc.



Estabelecemos conexões bidirecionais - diretas e reversas. A aprendizagem (mudanças nos links) ocorre em uma passagem pelo documento com base na regra de Hebb - aumentamos os links entre palavras que estão próximas umas das outras, além disso, vinculamos palavras que estão na mesma frase, parágrafo, documento com links menores. Quanto mais frequentemente as palavras forem encontradas lado a lado no mesmo documento e em um grupo de documentos, maior será a conexão entre elas.



Esta arquitetura permite que você resolva efetivamente as seguintes tarefas:



  • definir e gerenciar o contexto de pesquisa;
  • pesquise documentos que correspondam ao contexto de pesquisa (não apenas contendo palavras de consulta);
  • exibir contextos semânticos de um conjunto de documentos (quais são as associações do mecanismo de busca com as palavras da consulta);
  • destacar as palavras-chave do documento / documentos;
  • anotando um documento;
  • pesquisar documentos semelhantes em significados.


Vamos considerar a implementação de cada tarefa.



Definir e gerenciar o contexto de pesquisa



Este caso foi ilustrado anteriormente. O usuário insere as palavras de consulta, essas palavras excitam todos os associados a elas, então, podemos selecionar os conceitos mais próximos (tendo a excitação máxima), ou ainda transmitir a excitação através da rede de todos os neurônios excitados na etapa anterior, e assim por diante - neste caso, eles começam associações de trabalho. Uma série das palavras / conceitos mais interessantes são exibidos no mapa (você também pode escolher o que mostrar - uma camada de palavras, conceitos ou ambos). Se necessário, palavras irrelevantes são removidas (removendo os conceitos associados do mapa), fornecendo assim uma descrição precisa do contexto de pesquisa necessário.



Encontrar documentos que correspondam ao contexto de pesquisa



O estado das duas primeiras camadas da rede nesta etapa transmite sua excitação para as próximas camadas, cujos neurônios são classificados por excitação e obtemos uma lista de documentos classificados por relevância não apenas para as palavras da consulta, mas para o contexto gerado.



Assim, os resultados incluirão não apenas documentos contendo as palavras da solicitação, mas também relacionados a elas de significado. Os documentos resultantes podem ser usados ​​para alterar o contexto de pesquisa, reforçando os conceitos contidos nos documentos “necessários” para nós, ou diminuindo o peso dos conceitos associados a documentos irrelevantes. Dessa forma, você pode refinar sua consulta de maneira fácil e intuitiva e gerenciar os resultados da pesquisa.



Exibindo contextos semânticos de um conjunto de documentos



A transferência da excitação na direção oposta, de neurônios-documentos para neurônios e conceitos / palavras, permite que você obtenha um mapa visual de quais contextos semânticos estão presentes no conjunto de documentos. Esta é uma forma alternativa de obter um mapa de tags significativo e navegar no espaço de significado. Esse processo pode ser executado iterativamente, alterando a direção da excitação - recebendo documentos para contextos de pesquisa ou alterando o contexto de pesquisa para documentos ativos.



Normalmente, o cenário do mecanismo de busca é o seguinte - o mapa inicial é formado com base nas últimas notícias, artigos populares, consultas ou sua combinação. Em seguida, o usuário pode começar a formar uma solicitação clicando nas palavras do mapa ou criando uma nova solicitação ao inserir as palavras de interesse no campo de entrada.



No serviço infantil Quintura Kids, até as crianças que não sabiam escrever (ou que tinham dificuldade) podiam trabalhar e procurar as informações necessárias.



imagem

Era assim que o mapa inicial parecia,



e o usuário viu isso ao clicar na palavra "Espaço".



imagem



O serviço infantil foi construído em locais selecionados e aprovados manualmente, para que a criança não pudesse ver nada de um adulto. Isso explica o pequeno número de documentos encontrados. A versão em inglês continha muitas vezes mais documentos - graças ao diretório infantil do Yahoo.



Destacando as palavras-chave do documento / documentos



Na verdade, essas palavras e conceitos que se tornam ativos ao transmitir emoção da camada de documentos ou da camada de frases são as palavras-chave. Eles também são classificados por atividade, então uma certa quantia é cortada deles, que é exibida.



Aqui aplicamos outra solução. Acreditamos que a emoção total de todas as palavras ou conceitos é 100%. Assim, podemos controlar facilmente o número de palavras que consideraremos como palavras-chave, definindo a porcentagem de atividade como um limite.



imagem



Por exemplo, suponha que haja um documento lidando com um contrato de atração principal da Boeing. Quando a excitação foi transmitida do neurônio deste documento para a camada de palavras / conceitos, as palavras apresentadas nesta figura foram excitadas. A excitação total ponderada, reduzida a 100%, nos deu um peso individual para cada palavra. E se quisermos obter 75% do "significado" das palavras-chave, veremos as palavras "BOEING", "787", "DREAMLINER", e se quisermos ver 85% do "significado", adicionaremos "VENDAS" a essas palavras.



Este método permite que você limite automaticamente o número de palavras-chave e frases / documentos exibidos.



Faça anotações no documento.



O recebimento de trechos também foi realizado da maneira descrita acima. Primeiro, obtemos as palavras-chave do documento, após o que, por distribuição direta de entusiasmo das palavras-chave, obtemos uma lista de frases, trazemos os pesos dessas frases para 100% e cortamos a quantidade necessária de "significado", após o que exibimos essas frases na sequência em que ocorreram no texto do documento ...



Encontrar documentos semelhantes em significado



A transferência de excitação do neurônio correspondente ao documento para o qual estamos procurando palavras / conceitos semelhantes em significado à camada de palavras e depois na direção oposta à camada do documento nos permite encontrar documentos que são semelhantes ao original no contexto ou significado. Se fizermos várias batidas de transmissão de excitação na camada de palavra / conceito, podemos expandir o contexto original. Nesse caso, podemos encontrar documentos que não contêm uma correspondência exata em todas as palavras, mas são os mesmos no tópico.



Na verdade, esse mecanismo pode ser usado para determinar a similaridade de qualquer coisa, por exemplo, adicionando uma camada à rede onde o ID do usuário corresponderá aos neurônios, podemos encontrar pessoas com interesses semelhantes. Substituindo a camada de frases e documentos por índices de obras de música ou vídeo, obtemos uma pesquisa de música / vídeo.



Continua



Este artigo cobre apenas os princípios básicos do motor de busca visual Quintura. Ao longo dos seis anos de vida da empresa, muitos problemas complexos foram resolvidos, tanto relacionados à arquitetura de redes neurais semânticas ativas quanto na construção de um cluster expansível e tolerante a falhas. O índice de busca consistia em várias redes neurais trabalhando em paralelo, o resultado dessas redes foi combinado e um mapa individual dos interesses do usuário foi construído.



No âmbito do projecto, foram implementados um serviço de pesquisa de sites, um motor de busca infantil, uma ferramenta de análise de textos, iniciou-se o trabalho de formação de uma ontologia da informação do mundo, a construção de uma morfologia de rede neural, foram obtidas 9 patentes americanas.



No entanto, nunca fomos capazes de monetizar nosso sistema. Naquela época, ainda não havia boom das redes neurais, não conseguíamos chegar a um acordo com grandes buscadores (como nos disse o arquiteto de um deles - “temos paradigmas muito diferentes e não sabemos como combiná-los”).



O projeto teve que ser fechado.



Pessoalmente, ainda tenho um "eufemismo" - tenho um grande desejo de dar uma segunda vida a este projeto. Saber que o ex-chefe de publicidade do Google está construindo um mecanismo de busca livre de anúncios onde os usuários podem “sair da bolha de filtros de personalização de conteúdo e ferramentas de rastreamento” apenas fortalece minha confiança na relevância de nossos desenvolvimentos.



Vou mais uma vez listar as características das redes neurais ativas construídas com base na teoria de Nikolai Amosov:



  • aprender na hora;
  • adicionar novas entidades sem ter que treinar toda a rede;
  • semântica clara - é claro porque a rede tomou esta ou aquela decisão;
  • arquitetura de rede uniforme para vários aplicativos;
  • arquitetura simples, como resultado - alto desempenho.


Espero que este artigo seja o primeiro passo para abrir as tecnologias implementadas para o público em geral de desenvolvedores e sirva como o início do projeto de código aberto das redes neurais semânticas ativas de Amosov.



All Articles