¿Cómo determina Quora a quién poner en mi sección “mejorar su alimentación”?

tl; dr:

PageRank, Random camina con reinicios, paseos aleatorios supervisada etc., son algunas de las formas de la gente que sugiere que debe seguir. Algunos de estos métodos pueden sugerir la gente por casualidad usted conoce en la vida real (sin magia) – Podría muy bien ser un tipo de “paseo aleatorio con reinicios”.

Respuesta larga

No sé cómo Quora implementa esta función, pero puedo dar una idea aproximada de cómo se realiza normalmente. “Mejorar su alimentación” es un caso típico de un problema que se conoce principalmente como predicción de enlaces. predicción de enlace, como su nombre indica, es el problema de predecir qué usuarios es muy probable que otro usuario para formar un enlace. Por ejemplo, en Facebook, este problema se conoce como “Personas que puedo conocer”. En Twitter, se llama “A quién seguir”.


Hay varias formas de resolver este problema. Antes de eso, es importante comprender cómo se describen las redes sociales en la práctica. Saqué una imagen aleatoria de la web que describe una red social típica como un gráfico:

En este gráfico, cada círculo (nodo) representa a una persona y cada borde (línea entre dos nodos) representa un enlace. Este enlace puede representar amistades (como en Facebook) o seguidores (como en Twitter, Quora y Google +). En caso de seguidores, el borde se dirige (A-> B), lo que implica una sigue B. Ahora, la predicción del enlace es simplemente el problema de predecir la gente que me gustaría seguir, basado en la estructura gráfica en la actualidad.

Entonces, ¿cómo proceder para resolverlo?

  1. Localidad
    Un experimento en Facebook Islandia sugiere que más del 60% de las amistades se forman con personas que son 2 saltos de distancia en el gráfico social. Qué significa eso? Significa que es muy probable que formes amistades con tus amigos. Imagina que conoces a Kate, y Kate conoce a Bella. Festejas con Kate un buen día y ella también llama a Bella. Bam! ¡Ya conoces a Bella! Es más probable que encontrarse con, por ejemplo, Ashton Kutcher (actor, inversionista) (o alguna otra persona aleatoria menos conocida) en una fiesta.

    ¡Entonces parece que sugerir amigos de amigos es una gran idea! En particular, las personas que te tienen el mayor número de amigos en común con. Esta es una práctica común: si mira a su “Gente que quizás conozca” en Facebook, encontrará muchas personas que tienen muchos amigos en común con usted.

    Sin embargo, este enfoque puede no ser ideal para Quora, o incluso Twitter (de hecho, incluso Facebook hasta cierto punto). ¿Por qué? Considere el caso en el que Alex es un gran aficionado a la música y las startups y sigue temas como Rock, Clásico, Pop, Romance, Quora, Silicon Valley, etc. Por otro lado, Bob es un gran aficionado a la política y sigue temas como Política, Congreso, Economía etc. Alex y Bob son amigos en la vida real, pero no siguen unos a otros en Quora. Debido a que tienen una gran cantidad de amigos comunes, también suceder que seguir un montón de sus amigos por cortesía. Ahora, claramente, Alex y Bob se tienen muchas personas comunes que siguen, pero sus intereses son casi disjuntos. No hay una buena razón para Alex a seguir Bob en Quora porque Alex no está interesado en absoluto en la política.

    En resumen, este enfoque es completamente independiente de los intereses de los usuarios. Captura: este enfoque capta implícitamente el interés porque si sigo a muchas personas interesadas en la música, es muy probable que otro usuario que siga a muchas de estas personas también esté interesado en la música. Sin embargo, este mismo usuario puede no tener seguidores, o ser totalmente inactivo en Quora. Por lo tanto, estamos sugiriendo personas con total desprecio por su credibilidad. Además, ¿cómo encontramos la siguiente lista para comparar? ¿Verificamos la lista de Alex con los 10 millones de usuarios en Quora y devolvemos al usuario con los usuarios más altos en común? Eso suena un poco extremo, ¿verdad?

  2. Aprendizaje automático [1]
    ¿Qué pasaría si hubiera una forma inteligente de entender qué usuarios tienen intereses en común conmigo? Aquí es donde interviene la predicción de enlaces supervisados. Considere esto: mantengo un registro de los temas que sigue cada usuario, qué tipo de preguntas responden, qué tipo de respuestas votan, cuáles son las palabras clave que usan en cada una de sus respuestas, cuáles en qué ciudad viven, a qué universidad fueron, etc. Todos estos puntos de datos forman las características de un usuario. Sin entrar demasiado en el tecnicismo, considere que entrenamos nuestro programa para comprender qué tipo de usuarios sigue actualmente. Esto nos da una buena idea de las características que busca. Por ejemplo, podríamos descubrir que sigue a los usuarios solo si al menos el 75% de los temas son comunes entre ustedes dos, o si cada una de sus respuestas está altamente votada (habla de su credibilidad). Una vez que hayamos identificado estos patrones, podríamos probar a un usuario (digamos Alex ) contra cualquier otro usuario ( Bob ) y descubrir la probabilidad de que Alex quiera seguir a Bob. Luego, recomendamos las 10 personas principales que Alex tiene más probabilidades de seguir.

    ¡Esto parece un enfoque brillante! Pero tiene sus limitaciones. Una de las limitaciones es que a menudo es un trabajo tedioso elegir las características que describirán de manera más adecuada la elección del usuario. Además, a menudo es computacionalmente costoso procesar estas características en los algoritmos. Por ejemplo, ¿son similares “Política de la India” y “Política”? Pero creo que el mayor inconveniente de este enfoque es que no se adapta bien a las redes del mundo real como Quora. Digamos que un usuario típico sigue a 1 persona en una semana (estimación muy razonable). Ahora imagine comparar las características de Alex con 10 millones de usuarios, el 99.999% de los cuales no son de ningún interés para Alex. Claramente, estamos haciendo cálculos redundantes que a menudo son muy caros.

    Así que tenemos un método que captura la esencia de ambos (1) y (2)? Veamos un enfoque ligeramente diferente que guiará el camino hacia la respuesta.

  3. PageRank [2] [3]
    En el último punto, mencionamos brevemente la credibilidad de un usuario. ¿Y si hubiera una manera de descubrir las personas más creíbles sobre Quora? Considere a un usuario como Jimmy Wales. A partir de ahora, Jimmy es seguido por más de 29,000 personas. Esto dice mucho sobre su credibilidad. Resulta que siga sólo 156 personas, pero está claro que la gente que sigue son gente genuina y creíbles. Así intuitivamente, las personas que son seguidos por muchas, muchas personas son por lo general las personas auténticas. Además, las personas que siguen las personas auténticas son genuinas. Esta definición recursiva de importancia en los gráficos se conoce como PageRank.

    ¿Qué pasa si se corre el algoritmo de PageRank en el gráfico Quora y sugerir a las personas más creíbles? Claramente, debes seguir a personas como Ashton Kutcher (actor, inversionista), Oliver Emberton y Ellen Vrana. Sí, debería, pero el problema con este enfoque es, una vez más, que es completamente independiente de los intereses de los usuarios. Peor aún, sugiere exactamente la misma gente (más influyentes) para cada usuario en Quora.

    Claramente, esto no se está utilizando aquí, ¡porque veo mucha gente en mi buzón de sugerencias que puedo reconocer y que no son tan famosos en Quora! ¿Entonces, qué?

  4. Paseos aleatorios con reinicios
    Esto puede sonar complicado, pero esto, aquí, es algo que todos hacemos diariamente en la web. Imagina que estás acosando a alguien en Quora. Se empieza visitando su perfil, leer algunas de sus respuestas y luego abrir las personas a las que siguen. Elige a una persona aleatoria de esta lista y comienza a acecharla: lee algunas de sus respuestas y luego abre una persona aleatoria a la que sigue. Sigues haciendo esto todo el día. Ahora, si tu madre te pilla haciendo esto, ¿de qué perfil podrías estar acosando en ese mismo momento? Yo diría Ashton Kutcher (actor, inversor). ¿Por qué? Porque todos los cuerpos lo siguen, lo que significa que es muy probable que termines en su perfil desde donde estuviste hace un minuto. Este proceso de caminar aleatoriamente el gráfico se conoce como caminatas aleatorias. Pero oye, espera un minuto. No esta paseos aleatorios medias realidad nos proporcionan las personas más influyentes en Quora? es decir, personas con los más altos rangos de página? ¡Bingo! ¡Sí! ¡La caminata aleatoria es solo otra interpretación de la formulación de Page Rank!

    Ahora vamos a torcer un poco la trama. Digamos que estabas en una ola de acecho, pero dado el tipo de persona que eres (CS Major), te sientes muy incómodo después de 10 saltos en el gráfico. Es decir, comienzas con Alex que sigue a Bob que sigue a Clara … -> Dreyfus -> Ellen -> Fisher y así sucesivamente. Pero de vez en cuando te pones muy ansioso y regresas a la página de Alex y comienzas a acosarlo nuevamente. Este proceso de caminar aleatoriamente el gráfico, pero regresar al nodo de inicio con probabilidad fija se conoce como caminatas aleatorias con reinicios . ¿Ves cómo este problema potencialmente puede solucionar los inconvenientes de PageRank? Al hacer que el caminante aleatorio vuelva al nodo de inicio, lo estamos forzando efectivamente a permanecer cerca del nodo de inicio. Esto significa que estamos aumentando por la fuerza el PageRank de personas que no están muy lejos del nodo de inicio. Esto es hermoso, porque descubre las personas influyentes en Quora que están cerca de Alex! Por ejemplo, si Clara es seguida por 20 de las personas a las que sigo, puede que no sea tan influyente como Jimmy Wales, ¡pero definitivamente es alguien a quien debería consultar! Y esta recomendación es muy personal: el algoritmo recomendará a alguien que sea influyente dentro de mi pequeña red, no a alguien que sea seguido por todos los cuerpos del mundo. Entonces, si tu prima está en Quora y todos los que sigues la siguen, ella es una persona localmente influyente para ti. Probablemente así es como Quora te la recomendó.

    Por lo tanto, hemos podido llegar a un enfoque que encuentra a las personas más influyentes y relevantes en Quora. Esta recomendación es diferente para diferentes personas, y sin duda volveremos la gente puede que en realidad conocen en la vida real. ¡Tenga en cuenta que todavía no considera los intereses del usuario! (¡Maldita sea!)

  5. Pequeños giros
    Pequeñas modificaciones al PageRank pueden producir resultados sorprendentes. Digamos que analizamos las respuestas de Alex y nos damos cuenta de que está loco por la música. Todas las demás respuestas que da están en el tema Música. ¿Qué tal si encontramos a la persona más influyente en Quora que también sigue la música? O simplemente encontrar a la persona con el mayor número de respuestas / upvotes en el tema de la música? Algunos resultados de Little Twists mezclados con los resultados de caminatas aleatorias con reinicios podrían hacer un cuadro de sugerencias muy relevante.

    Puedes decir (soy un soñador) esto es ad hoc. En ese caso, debe mirar los Paseos aleatorios supervisados ​​que resuelven los principales inconvenientes con todos los enfoques anteriores.

  6. Santo Grial [4]
    Paseos aleatorios supervisados ​​(con reinicios) es un algoritmo súper genial que combina sistemáticamente las características de borde con la caminata aleatoria para guiar mejor la caminata. Puede sonar aterrador, pero es bastante fácil de entender. Considera esto: estás acechando el perfil de Alex (con la intención de sugerirle seguidores) y abres la lista de seguidores. Ves a dos personas a las que sigue: Bob y Clara. Alex vota cada respuesta de Clara, pero apenas se da cuenta de las actividades de Bob. Además, Clara y Alex están interesados ​​en temas similares. Además, ¡también pertenecen a la misma universidad! ¿A quién deberías acechar después? Caminos aleatorios elegiría al azar uno de estos, pero la opción más inteligente sería obviamente Clara. Esto es exactamente lo que hace este algoritmo. Sesga al caminante aleatorio para visitar esos nodos (personas) cuyas interacciones entre ellos son más relevantes, en lugar de elegir al azar a la próxima víctima del tallo.

    Por lo tanto, esto no sufre el problema de escalabilidad de (2) ya que no estamos comparando las características de Alex con toda la comunidad de usuarios, solo un puñado de personas a las que sigue. Este enfoque devuelve resultados localmente influyentes que también son muy relevantes en base a los intereses de los usuarios. ( Nota: Facebook usa una variante de este algoritmo)

Considere esta captura de pantalla de mis recomendaciones:


He utilizado mis conocimientos profesionales de pintura para poner de relieve las razones de cada recomendación que aparece en mi lista. Para mí, parece ser una variante de caminata aleatoria con reinicios, con cierta consideración a los temas que sigo religiosamente y la universidad a la que asisto.

[1]: página en siam.org
[2]: Página de stanford.edu:8090
[3]: PageRank (Wikipedia)
[4]: http://cs.stanford.edu/people/ju…