Gráfico de conocimiento de búsqueda: construcción desde múltiples fuentes



Quiero hablar sobre qué es un gráfico de conocimiento y sobre una de las formas de construirlo a partir de varias fuentes temáticas.

Una gran cantidad de consultas en la búsqueda contiene una sola entidad: el objeto sobre el que pregunta el usuario. Pueden ser solicitudes sobre algunas personas, películas, series, objetos musicales o geográficos. Cuando el usuario realiza dicha solicitud, al emitirla, se le puede mostrar una tarjeta de información adicional con la esperanza de que la información en la tarjeta sea de interés para el usuario. Las tarjetas decoran el problema y aumentan su visibilidad. Con la ayuda de tarjetas de información, dejamos que una persona entienda que está utilizando un servicio inteligente, porque el motor de búsqueda se dio cuenta de que tenía en mente qué tipo de objeto estaba preguntando. Además, esta inteligencia se puede ampliar respondiendo a la solicitud de un usuario directamente en la página del problema. Por ejemplo, en respuesta a "qué ver en Praga", podemos mostrar de inmediato los lugares de interés de esta ciudad.

Hay momentos en que el usuario quiere saber algo sobre un objeto, pero no sabe absolutamente nada al respecto, excepto por el hecho de su existencia. O el usuario quiere continuar investigando sobre un tema. Especialmente para este caso, la tarjeta muestra por qué se conoce este objeto, así como las posibles opciones para continuar la investigación en el bloque "Ver también".

Gráfico de conocimiento


Todas estas tecnologías semánticas se basan en un gráfico de conocimiento: un gráfico cuyos nodos son objetos del mundo real, y las transiciones son relaciones mecanografiadas entre objetos (por ejemplo, la relación para el lugar de nacimiento es diferente de la relación para la fecha de nacimiento). Un ejemplo de un pequeño gráfico de conocimiento se muestra en la Fig. 1)


Higo. 1. Ejemplo de un gráfico de conocimiento

Hay gráficos de conocimiento abiertos que se pueden descargar y usar. En la tabla se presentan ejemplos y algunas estadísticas sobre los gráficos de conocimiento abierto más famosos. 1. La

mesa. 1. Estadísticas sobre gráficos de conocimiento abierto

Gráfico de conocimientoNumero de registrosNumero de objetosFrecuencia de actualización
FreebaseMás de 3 mil millones49 millonesNo actualizado
Wikidata748 millones18 millonesUna vez a la semana (incremental - una vez al día)
Dbpedia411 millones4 millonesÚltima actualización en agosto de 2019

El problema con los gráficos abiertos es que no todas las áreas de conocimiento están suficientemente cubiertas. Por ejemplo, programas de televisión rusos. No son muy populares en todo el mundo, pero son especialmente queridos por nosotros porque los usuarios preguntan por ellos. Esto significa que necesitamos encontrar información sobre estas series y llevarla a la SERP (página de resultados del motor de búsqueda). El segundo problema son las actualizaciones bastante raras. Pero cuando ocurre un evento, queremos traer esta información lo antes posible y mostrarla en las páginas de resultados de búsqueda.

Hay al menos tres posibles soluciones a estos problemas.

Primero: no hacer nada, reconciliarse, cerrar los ojos y seguir viviendo. Segundo: agregue cuidadosamente información manualmente para abrir columnas de conocimiento y luego use los datos desde allí. Y la tercera opción: fusionar automáticamente el conocimiento de alguna fuente temática con el gráfico. Para las mismas películas y programas de televisión, hay bastantes fuentes de este tipo: KinoPoisk, IMDb, Kino Mail.ru. Además, en los gráficos de conocimiento, por regla general, los objetos tienen enlaces a recursos temáticos populares.

Comenzamos a implementar el tercer enfoque. Antes de comenzar a resolver este problema, debe prepararse. El hecho es que los datos en las fuentes se presentan en diferentes formatos. Por ejemplo, en Wikidata es JSON, en Cinema Search - HTML. Deben convertirse al mismo formato. Nos convertimos a N-Triples, porque es conveniente procesarlo en paralelo, y en este caso es realmente importante, ya que trabajamos con big data. Un volcado JSON ampliado de Wikidata ocupa aproximadamente 720 GB, y las páginas HTML de Movie Search son 230 GB, por lo que casi todas las tareas se resuelven en un clúster utilizando el paradigma MapReduce.

Doble encolado


Una de las tareas más difíciles al fusionar gráficos de conocimiento es pegar duplicados. Por ejemplo, tenemos gráficos y dos objetos en ellos, que son un objeto del mundo real. Queremos unirlos en nuestro gráfico resultante para que sea un objeto en el gráfico de conocimiento. La solución que se nos ocurrió desde el principio es bastante simple. Tomemos y peguemos todos los objetos que tengan el mismo nombre. Así que aprendimos que hay al menos dos personas famosas con el nombre Brad Pitt, un poco menos de cuarenta películas y series llamadas "The Bridge", y aproximadamente el mismo número de Ivanovs sobre los que hay un artículo en Wikipedia.

Obviamente, un enfoque tan simple no funciona, se requiere algo más complicado. Y luego se nos ocurrió una solución de tres partes. La primera parte es un generador de candidatos para la vinculación. El segundo es un clasificador que intenta responder a la pregunta de si un par de objetos deben estar unidos. Y el tercero es un paso de pegado adicional: estamos pegando algo que no funcionó por alguna razón para pegar en el paso anterior.

Se necesita un generador para reducir el número de candidatos para vincular (tratar de vincular cada objeto con cada uno es demasiado costoso). Por lo tanto, nos limitamos a un pequeño número de candidatos y luego ejecutamos el clasificador solo para este pequeño conjunto. La idea básica es que los nombres de los objetos que pueden estar relacionados deben ser similares de alguna manera. Decidimos comenzar con una combinación completa de subcadenas, pero con la capacidad de reorganizar las palabras. Esto significa que si dos objetos no tienen el mismo orden de palabras (por ejemplo, el nombre y el apellido de la persona se mezclan), seguirán coincidiendo. Usamos nombres rusos y nombres extranjeros originales. También utilizamos apodos, alias y sinónimos para los objetos que recopilamos de redireccionamientos de Wikipedia.

Antes de entrenar el modelo, sería bueno obtener datos de alguna parte. Tuvimos suerte, todo lo necesario ya estaba en los gráficos abiertos del conocimiento. Por ejemplo, en Wikidata hay un poco menos de 200 mil objetos, enlaces a películas y programas de televisión de KinoPoisk, y un poco menos de 100 mil enlaces a personas de KinoPoisk. Seremos capacitados en estos datos.

Todos los atributos se basan en la idea de que el mismo objeto en dos columnas debe tener un contexto similar. Se utiliza una idea similar para resolver el problema de vinculación de entidades. Además, el contexto en el gráfico no significa objetos vecinos a este objeto, sino sus descripciones de cadena. Más formalmente, el contexto de un objeto en un gráfico se considerará todas las líneas adyacentes a él, así como los nombres de los objetos incidentes y los tipos. En la Fig. 2 líneas que pertenecen al contexto de este objeto están resaltadas en negrita.


Higo. 2. Contexto del objeto Hay

varias formas de trabajar con cadenas. En primer lugar, considerar la coincidencia de cadenas, uniéndolas como un todo, es decir, teniendo en cuenta solo una coincidencia completa. En segundo lugar, podemos usar la cadena como una bolsa de palabras, dividir la cadena en palabras y sacrificar el orden. Usamos ambos enfoques.

Las cadenas se pueden usar todas juntas o agrupadas por los tipos de relaciones por las cuales están asociadas con el objeto. También se consideran coincidencias absolutas y relativas por grupo.

Tomemos dos objetos: Lionel Messi (Lionel Messi) y Lionel Richie (Lionel Richie), pestaña. 2. La

mesa. 2. Algunas relaciones para los objetos Lionel Messi y Lionel Richie.

Nombre de la relaciónLionel MessiLionel Richie
nombreLionel Messi"Lionel Richie"
cumpleaños24 de junio de 1987"20 de junio de 1949"
Club de fútbolFC Barcelona-

Los nombres no coinciden por completo, por lo que una coincidencia completa en el nombre será cero. Pero el número de coincidencias de palabras en el nombre es 1, porque el nombre original "Lionel" coincide con ambos objetos. El coeficiente Jacquard (la relación del tamaño de la intersección con el tamaño de la unión) para el nombre será 0.2:

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


No entendimos de inmediato que si un objeto no tiene la relación correcta, entonces no tiene sentido apresurarse y escribir cero en este signo, es mejor escribir Valor perdido. Después de todo, cuando agregamos un gráfico temático a un gráfico grande, a menudo no tiene algún tipo de relación, y debe ser capaz de distinguir entre los casos en que las dos relaciones no coinciden y cuando uno de los objetos simplemente no tiene la relación necesaria . Siguiendo esta lógica, el número de palabras coincidentes para la relación football_club será un valor perdido. El número de coincidencias de línea completas en todas las relaciones es cero, y el número de palabras coincidentes es dos ("Lionel" y "Junio").

La clasificación de las mejores características utilizadas por el modelo se muestra en la Fig. 3)


Higo. 3. Los signos más importantes utilizados:

el mejor atributo de nuestro modelo es la coincidencia relativa total de las palabras. Este nombre complejo oculta la suma de los coeficientes Jacquard para todas las relaciones. Es interesante que si descartamos completamente todo el aprendizaje automático de esta tarea y dejamos un límite más o menos adecuado por el valor de este atributo, entonces la calidad del modelo porF1-la medida caerá solo un 20%. Si tomamos las señales descritas anteriormente, les enseñamos XGBoost desde una caja, 250 árboles con una altura de 4, entonces obtenemos métricas bastante buenas.

Mesa. 3. Medidas del modelo de calidad en los datos de prueba.

Nombre métricoValor
Precisión0.961531
Integridad (recuerdo)0.963220
F10.962375
Auc0.999589

Pero hay un problema: en estas métricas, algunos objetos que no pegamos no son visibles. Estos son los llamados "objetos grandes" que tienen muchas relaciones. Ciudades, países, ocupación: estos son los objetos que están asociados con una gran cantidad de otros objetos. En la Fig. La Figura 4 muestra cómo se vería esto en SERP. Todo parece bastante inofensivo:


Higo. 4. El problema de los objetos "grandes"

. Tenemos duplicados en la tarjeta. Parece que está bien, pero de hecho el problema es mucho más profundo, la consistencia de los datos sufre. Esto se debe a que en nuestros datos de entrenamiento no existen tales objetos. Aquí necesitamos aplicar un enfoque diferente, para usar una gran cantidad de relaciones de estos objetos para nuestro propio beneficio. En la Fig. 5 muestra un diagrama de este enfoque. Deje que haya dos objetos X e Y, que están conectados por el clasificador. Estos objetos pertenecen a diferentes gráficos y cada objeto está asociado con algunos otros objetos en su gráfico. El objeto X está asociado con los objetos A, B, C a través de relacionesr1, r2, r3, y el objeto Y con los objetos D, E y F usando relaciones r1, r2y r4. Pero ahora sabemos que los objetos X e Y son en realidad un objeto del mundo real.


Higo. 5. Pegado adicional

Vamos a presentar dos hipótesis:

  • H1:P(D|A)=p=P(D|¬A)- un objeto Dno está conectado de ninguna manera y ocurre independientemente del objeto A.
  • H2:P(D|A)=p1p2=P(D|¬A)- algún tipo de relación entre Dy ATodo es así.

Entonces podemos aplicar la prueba de razón de verosimilitud y aceptar una de dos hipótesis. Por lo tanto, podemos unir objetos grandes.

La solución final resultó ser bastante universal, por lo que de manera similar es posible pegar duplicados para otras fuentes temáticas, aumentando constantemente la cobertura y la profundidad de los temas en el gráfico de conocimiento.

Conclusión


El artículo considera una de las posibles soluciones al problema de pegar objetos idénticos de diferentes gráficos de conocimiento. Cuando el gráfico de conocimiento ya está construido, podemos mostrar tarjetas de información en la página con resultados de búsqueda, usar el conocimiento del gráfico para responder factoides o crear alguna otra aplicación interesante para complacer a los usuarios.

Espero que haya sido interesante leer un poco sobre cómo funciona todo de adentro hacia afuera. Si hay momentos incomprensibles, por favor haga preguntas, intentaré responderlas.

All Articles