Gráfico do conhecimento de pesquisa: construindo a partir de várias fontes



Quero falar sobre o que é um gráfico de conhecimento e sobre uma das maneiras de construí-lo a partir de várias fontes temáticas.

Um grande número de consultas na pesquisa contém uma única entidade - o objeto sobre o qual o usuário solicita. Pode ser solicitações sobre algumas pessoas, filmes, séries, objetos musicais ou geográficos. Quando o usuário faz tal solicitação, ao emiti-lo, ele pode receber um cartão de informações adicionais, na esperança de que as informações no cartão sejam do seu interesse. Os cartões decoram o problema e aumentam sua visibilidade. Com a ajuda dos cartões de informações, deixamos claro para uma pessoa que ele usa um serviço inteligente, porque o mecanismo de pesquisa percebeu que tinha em mente que tipo de objeto estava perguntando. Além disso, essa inteligência pode ser expandida respondendo à solicitação de um usuário diretamente na página do problema. Por exemplo, em resposta ao "o que ver em Praga", podemos mostrar imediatamente os pontos turísticos desta cidade.

Há momentos em que o usuário deseja saber algo sobre um objeto, mas não sabe absolutamente nada sobre ele, exceto pelo fato de sua existência. Ou o usuário deseja continuar a pesquisa sobre um tópico. Especialmente neste caso, o cartão mostra pelo que esse objeto é conhecido, bem como as opções possíveis para continuar a pesquisa no bloco "Consulte também".

Gráfico de conhecimento


Todas essas tecnologias semânticas são baseadas em um gráfico de conhecimento - um gráfico cujos nós são objetos do mundo real e as transições são relações digitadas entre objetos (por exemplo, a relação para o local de nascimento é diferente da relação para a data de nascimento). Um exemplo de um pequeno gráfico de conhecimento é mostrado na Fig. 1


FIG. 1. Exemplo de um gráfico de conhecimento

Existem gráficos de conhecimento abertos que podem ser baixados e usados. Exemplos e algumas estatísticas dos mais famosos gráficos de conhecimento aberto são apresentados na tabela. 1. A

mesa. 1. Estatísticas sobre gráficos de conhecimento aberto

Gráfico de conhecimentoNúmero de registrosNúmero de objetosFrequência de atualização
FreebaseMais de 3 bilhões49 milhõesNão atualizado
Wikidata748 milhões18 milhõesUma vez por semana (incremental - uma vez por dia)
Dbpedia411 milhões4 milhõesÚltima atualização em agosto de 2019

O problema com os gráficos abertos é que nem todas as áreas do conhecimento são cobertas com profundidade suficiente. Por exemplo, programas de TV russos. Eles não são muito populares em todo o mundo, mas são especialmente queridos porque os usuários perguntam sobre eles. Isso significa que precisamos encontrar algumas informações sobre essas séries e trazê-las para o SERP (página de resultados dos mecanismos de pesquisa). O segundo problema são atualizações bastante raras. Porém, quando um evento acontece, queremos trazer essas informações o mais rápido possível e mostrá-las nas páginas de resultados da pesquisa.

Existem pelo menos três soluções possíveis para esses problemas.

Primeiro: não faça nada, reconcilie-se, feche os olhos e continue a viver. Segundo: adicione manualmente as informações com cuidado para abrir as colunas de conhecimento e use os dados a partir daí. E a terceira opção: mesclar automaticamente o conhecimento de alguma fonte temática com o gráfico. Para os mesmos filmes e programas de TV, existem algumas dessas fontes: KinoPoisk, IMDb, Kino Mail.ru. Além disso, nos gráficos de conhecimento, como regra, os objetos têm links para recursos temáticos populares.

Começamos a implementar a terceira abordagem. Antes de começar a resolver esse problema, você precisa se preparar. O fato é que os dados nas fontes são apresentados em diferentes formatos. Por exemplo, no Wikidata é JSON, na Cinema Search - HTML. Eles precisam ser convertidos para o mesmo formato. Convertemos para N-Triplos, porque é conveniente processá-lo em paralelo e, nesse caso, é realmente importante, pois trabalhamos com big data. Um despejo JSON expandido do Wikidata leva cerca de 720 GB, e as páginas HTML da Pesquisa de filmes são 230 GB; portanto, quase todas as tarefas são resolvidas em um cluster usando o paradigma MapReduce.

Colagem dupla


Uma das tarefas mais difíceis ao mesclar gráficos de conhecimento é colar duplicados. Por exemplo, temos gráficos e dois objetos neles, que são um objeto do mundo real. Queremos colá-los juntos em nosso gráfico resultante, para que ele seja um objeto no gráfico de conhecimento. A solução que encontramos desde o início é bastante simples. Vamos pegar e colar todos os objetos que têm o mesmo nome. Então aprendemos que existem pelo menos duas pessoas famosas com o nome Brad Pitt, um pouco menos de quarenta filmes e séries chamados “The Bridge”, e aproximadamente o mesmo número de Ivanovs sobre os quais há um artigo na Wikipedia.

Obviamente, uma abordagem tão simples não funciona, é necessário algo mais complicado. E então chegamos a uma solução em três partes. A primeira parte é um gerador candidato para vinculação. O segundo é um classificador que tenta responder à questão de saber se alguns objetos devem ser colados. E a terceira é uma etapa adicional de colagem: estamos colando algo que não funcionou por algum motivo para colar na etapa anterior.

É necessário um gerador para reduzir o número de candidatos à vinculação (tentar vincular cada objeto a cada um é muito caro). Portanto, nos limitamos a apenas um pequeno número de candidatos e, em seguida, executamos o classificador apenas para esse pequeno conjunto. A idéia básica é que os nomes dos objetos que podem ser relacionados sejam similares de alguma forma. Decidimos começar com uma correspondência completa de substrings, mas com a capacidade de reorganizar as palavras. Isso significa que, se dois objetos não tiverem a mesma ordem de palavras (por exemplo, o nome e o sobrenome da pessoa estiverem misturados), eles ainda serão correspondidos. Usamos nomes russos e estrangeiros originais. Também usamos apelidos, aliases e sinônimos para os objetos que coletamos dos redirecionamentos da Wikipedia.

Antes de treinar o modelo, seria bom obter dados de algum lugar. Tivemos sorte, tudo o que precisava já estava nos gráficos abertos do conhecimento. Por exemplo, no Wikidata existem pouco menos de 200 mil objetos, links para filmes e programas de TV do KinoPoisk e pouco menos de 100 mil links para as pessoas do KinoPoisk. Nós seremos treinados nesses dados.

Todos os atributos são baseados na ideia de que o mesmo objeto em duas colunas deve ter um contexto semelhante. Uma idéia semelhante é usada para resolver o problema de Link de entidade. Além disso, o contexto no gráfico não significa objetos vizinhos a esse objeto, mas suas descrições de cadeias. Mais formalmente, o contexto de um objeto em um gráfico será considerado todas as linhas adjacentes a ele, assim como os nomes dos objetos incidentes e tipos. Na fig. 2 linhas que pertencem ao contexto deste objeto são destacadas em negrito.


FIG. 2. Contexto do objeto Existem

várias maneiras de trabalhar com seqüências de caracteres. Primeiro, considere a coincidência das strings, combinando-as como um todo, ou seja, levando em consideração apenas a completa coincidência. Em segundo lugar, podemos usar a corda como um saco de palavras, dividi-la em palavras e sacrificar a ordem. Usamos as duas abordagens.

As strings podem ser usadas todas de uma vez juntas ou agrupadas pelos tipos de relações pelas quais elas estão associadas ao objeto. Também são consideradas correspondências absolutas e relativas por grupo.

Vamos pegar dois objetos: Lionel Messi (Lionel Messi) e Lionel Richie (Lionel Richie), guia. 2. A

mesa. 2. Alguns relacionamentos para os objetos Lionel Messi e Lionel Richie.

Nome do relacionamentoLionel MessiLionel Richie
nomeLionel Messi"Lionel Richie"
aniversário24 de junho de 1987"20 de junho de 1949"
clube de futebolFC Barcelona-

Os nomes não correspondem inteiramente, portanto, uma correspondência completa no nome será zero. Mas o número de palavras correspondentes no nome é 1, porque o nome original "Lionel" corresponde aos dois objetos. O coeficiente de Jacquard (a proporção entre o tamanho da interseção e o tamanho da união) para o nome será 0,2:

J(Messi,Richie)=|«Lionel»||«»,«»,«Lionel»,«Messi»,«Richie»|


Não entendemos imediatamente que, se um objeto não possui o relacionamento correto, não faz sentido apressar-se e escrever zero nesse sinal, é melhor escrever Valor ausente. Afinal, quando adicionamos um gráfico temático a um gráfico grande, ele geralmente não tem algum tipo de relacionamento, e você precisa distinguir entre os casos em que as duas relações não coincidem e quando um dos objetos simplesmente não possui a relação necessária. . Seguindo essa lógica, o número de palavras correspondentes para o relacionamento football_club será Valor ausente. O número de correspondências de linhas completas em todas as relações é zero, e o número de palavras correspondentes é duas ("Lionel" e "June").

A classificação das melhores características usadas pelo modelo é mostrada na Fig. 3)


FIG. 3. Os sinais mais importantes utilizados.O

melhor atributo do nosso modelo é a total coincidência relativa de palavras. Esse nome complexo oculta a soma dos coeficientes de Jacquard para todas as relações. É interessante que, se descartarmos completamente todo o aprendizado de máquina desta tarefa e deixarmos um corte mais ou menos adequado pelo valor desse atributo, a qualidade do modelo porF1a medida cairá apenas 20%. Se tomarmos os sinais descritos acima, ensiná-los XGBoost fora da caixa, 250 árvores com uma altura de 4, obteremos métricas muito boas.

Mesa. 3. Métricas do modelo de qualidade nos dados de teste.

Nome da métricaValor
Precisão0.961531
Completude (recordação)0.963220
F10.962375
Auc0.999589

Mas há um problema: nessas métricas, alguns objetos que não colamos não são visíveis. Estes são os chamados "objetos grandes" que têm muitos relacionamentos. Cidades, países, ocupação - esses são os objetos associados a um grande número de outros objetos. Na fig. A Figura 4 mostra como isso pode parecer no SERP. Tudo parece bastante inofensivo:


FIG. 4. O problema dos objetos "grandes"

: temos duplicatas no cartão. Parece que está tudo bem, mas na verdade o problema é muito mais profundo, a consistência dos dados sofre. Isso ocorre porque em nossos dados de treinamento não existem esses objetos. Aqui precisamos aplicar uma abordagem diferente, para usar um grande número de relações desses objetos para nosso próprio benefício. Na fig. 5 mostra um diagrama dessa abordagem. Haja dois objetos X e Y, que são conectados pelo classificador. Esses objetos pertencem a gráficos diferentes e cada objeto é associado a outros objetos em seu gráfico. O objeto X é associado aos objetos A, B, C por meio de relacionamentosr1, r2, r3e objeto Y com objetos D, E e F usando relações r1, r2e r4. Mas agora sabemos que os objetos X e Y são realmente um objeto do mundo real.


FIG. 5. Colagem adicional

Vamos apresentar duas hipóteses:

  • H1:P(D|A)=p=P(D|¬A)- um objeto Dnão está conectado de forma alguma e ocorre independentemente do objeto A.
  • H2:P(D|A)=p1p2=P(D|¬A)- algum tipo de relação entre De Atudo é assim.

Em seguida, podemos aplicar o teste de razão de verossimilhança e aceitar uma das duas hipóteses. Assim, podemos juntar objetos grandes.

A solução final mostrou-se bastante universal, de modo semelhante, é possível colar duplicados para outras fontes temáticas, aumentando constantemente a cobertura e a profundidade dos tópicos no gráfico do conhecimento.

Conclusão


O artigo considera uma das soluções possíveis para o problema de colar objetos idênticos de diferentes gráficos de conhecimento. Quando o gráfico de conhecimento já estiver construído, podemos mostrar cartões de informações na página com resultados de pesquisa, usar o conhecimento do gráfico para responder a factóides ou criar outro aplicativo interessante para agradar os usuários.

Espero que tenha sido interessante ler um pouco sobre como tudo funciona de dentro para fora. Se houver momentos incompreensíveis, faça perguntas, tentarei respondê-las.

All Articles