¿Cómo genera LinkedIn exactamente la lista de usuarios que “los espectadores de este perfil también vieron”?

Esto se hace a través de un análisis bastante directo de la coincidencia, básicamente un buen filtrado colaborativo a la antigua. No damos detalles sobre este tipo de cosas, pero explicaré lo suficiente como para dar una idea general.

Básicamente, cuando dos cosas suceden juntas, a menudo indica cierto grado de similitud. Por ejemplo, dos perfiles pueden ser vistos por la misma persona, esto indica que comparten algunas similitudes que llevan a esa persona a mirar ambos perfiles. Tal vez la persona los conoce a ambos, o tal vez la persona estaba buscando algún rasgo compartido por ambos y ambos aparecieron en los resultados. Obviamente, puede hacerlo con vistas de cualquier tipo de cosas, no solo perfiles. Las vistas son un gran tipo de coincidencia: son muy ruidosas pero hay muchas. Pero hay muchos otros tipos de coexistencia: una persona puede solicitar dos trabajos, lo que indica un tipo de similitud de esos trabajos; o un solo trabajo puede ser solicitado por dos personas, lo que indica cierta similitud de las personas. Una vez que empiezas a pensar en las coincidencias, están en todas partes: dos compañías seguidas por la misma persona, dos productos revisados ​​por la misma persona, etc.

Entonces, lo que hemos hecho con esto es genial: tomamos todo tipo de coincidencias que creemos que son relevantes para todo tipo de cosas en el sitio (personas, empresas, trabajos, productos / servicios, preguntas, búsquedas, grupos, etc. ), y cree una matriz dispersa gigante donde una entrada particular (i, j) es el número de coincidencias entre i y j. (bueno, en realidad generalizamos esto a un tensor ya que hay una entrada para cada tipo de co-ocurrencia pero eso hace que suene más elegante de lo que es) Luego ejecutamos nuestro análisis en esta matriz para calcular similitudes dispersas en pares como un flujo de trabajo de Azkaban compuesto por una serie de trabajos Hadoop de gran tamaño.

Entonces, cuando comienzas a trabajar en esto, primero obtienes esta conexión de que todo tipo de cosas se pueden ver como “coincidencias” y todas esas coincidencias juntas se pueden considerar como un gráfico donde los bordes son creados por las cosas -ocurre y este gráfico tiene una forma matricial, en la que puedes hacer todo tipo de descomposiciones, y luego pasas aproximadamente una semana convencido de que esto es como INCREÍBLE y que de alguna manera podría llevarte a una verdad más profunda sobre las relaciones entre TODAS LAS COSAS y decirles a todos en el almuerzo sobre esto hasta que dejen de invitarlos a almorzar. Luego te das cuenta de que no eres lo suficientemente inteligente como para descubrir exactamente la relación más profunda de todas las cosas, y simplemente vuelves a darle a la gente cosas interesantes para hacer clic, y afortunadamente esa parte funciona bastante bien.

Y, por supuesto, lo que significan las similitudes finales que generamos es un poco vago. Y por sí solos, son excelentes para algunos tipos de recomendación, pero no lo suficientemente buenos para todos los tipos (aunque es un buen ingrediente en la mayoría de ellos). Por ejemplo, si desea recomendar posibles conexiones con alguien, puede utilizar estas similitudes, pero por sí solas no son una recomendación de conexión profesional alucinante. Para estas recomendaciones semánticas más profundas, hemos construido sistemas específicos para cada caso de uso además de alguna infraestructura compartida. Sin embargo, los resultados basados ​​en la coincidencia casi siempre funcionan bien para la navegación básica; el significado y la mensajería es algo como “aquí hay algunas otras cosas como esa”. La ventaja de este tipo de enfoque es que es totalmente genérico y completamente independiente del tipo de cosa que está recomendando.

Si tiene grandes cantidades de datos, entonces todo el problema es bastante simple (más medición que predicción): solo calcula algunas estadísticas simples sobre los datos de coincidencia y clasifica los mejores resultados para cada elemento. Sin embargo, si los datos son escasos (lo que significa que tiene pocos datos de coincidencia o que su número de elementos es enorme), sus resultados serán realmente ruidosos y hay algunos trucos para obtener préstamos sólidos que pueden ayudar. Hemos descubierto que el mejor truco de todos es usar más datos, en lugar de correr con unos pocos meses de datos, escalar y trabajar de forma incremental para que pueda ejecutar algunos años de datos. Para que esto ayude, debe tener una forma de descuento por tiempo: las coincidencias recientes suelen ser más importantes que las coincidencias anteriores.

Hay una serie de otras sutilezas. A pesar de nuestros mejores esfuerzos y varios enfoques algorítmicos, siempre tuvimos problemas de recomendar demasiado las cosas con gran popularidad. Por ejemplo, para los perfiles, Barrack Obama siguió apareciendo con demasiada frecuencia en los resultados de similitud de las personas. Y esto también derrotó todas nuestras métricas, porque, bueno, a la gente le gusta mirar a Barrack Obama. A esto le llamamos el problema de Barack Obama.

Este ha sido un proyecto divertido para trabajar. Creo que la primera versión de esto en LinkedIn para personas fue hecha por Steve Stegman como un script SQL de 50 líneas. Trabajé en reescribir la versión inicial, moverla a Hadoop, aumentar los datos utilizados, realizar algunas desespacificaciones y hacer que funcione en todos los tipos de entidades (no solo personas). Sam Shah y Lili Wu más tarde lo aprobaron y lo hicieron significativamente más sofisticado, incremental y aproximadamente 10 veces más rápido. Ha sido un proyecto divertido porque para 7 tipos de cosas en el sitio para las que calculamos esto, hay 49 tipos de recomendaciones de similitud que salen. Por lo tanto, es una especie de fábrica de productos. Cada mes, más o menos, alguien viene y pregunta si podríamos hacer una versión de “esa recomendación” para mostrar Xs a Ys y decimos que sí, pero por supuesto será difícil y tomará mucho trabajo. Unas semanas después, cambiamos la configuración del trabajo y les decimos que está hecho. Esto siempre es divertido.

Hola, Jay: super publicación y gracias por la idea general, ¿puedes confirmar que las coincidencias que capturas son solo para usuarios registrados o también para usuarios invitados que vienen de Google, etc.?

Gracias, pero esto todavía no me responde por qué las personas que conozco y con las que pueden estar o no conectadas, aparecen constantemente en los perfiles de otras personas que son similares a mí, y nunca me presento.

More Interesting

¿Por qué se considera que la ciencia de datos está de moda?

¿Qué es una aplicación de aprendizaje automático y cómo se usa, que no es una de las siguientes: redes sociales, motores de búsqueda, bioinformática, neurociencia, investigación en el CERN, ciencia actuarial y sistemas de recomendación?

¿Cuáles son las mejores bibliotecas de Python para la ciencia de datos?

¿Qué tan importante es la prueba A / B para un científico de datos que trabaja en una empresa de tecnología?

¿La ciencia de datos tiene una amplia gama de sectores laborales como la informática o la ingeniería de software si me gradúo de la Universidad de Waterloo con la cooperativa?

Cómo estimar errores debido al peso de los datos

¿Qué clases debo tomar en Duke si quiero ser un científico de datos?

¿Cuáles son los temas candentes y / o importantes en la gestión de datos en la nube y en la investigación de la computación en la nube? Recientemente comencé mis estudios de doctorado y actualmente estoy buscando un problema en la computación en la nube.

¿Qué entiendes por base de datos?

Cómo extraer el registro DNS de un sitio web para compartir videos (YouTube) para combatir el terrorismo

¿Cuál es la diferencia entre la exploración de datos y el análisis predictivo?

Como científico de datos, ¿sería útil aprender el desarrollo completo de la pila?

¿Qué perspectivas tiene un candidato a doctorado (en ciencia de datos y salud) en consultoría de estrategia / gestión en Australia?

¿Cuánta variedad hay en un puesto de ciencia de datos?

¿Por qué debería molestarme con Python si puedo usar software para el análisis de datos (Excel, Tableau)?