¿Cuál es el aspecto técnicamente más desafiante de Techmeme?

Voy a probar esto basándose en mi experiencia en minería de datos, búsqueda WWW y recuperación de información. Estoy seguro de que mi opinión estaría mucho mejor informada si pasara algunas semanas intentando replicar el servicio central de Techmeme, pero abordamos algunos problemas similares como un agregador de noticias en Evri, así que tengo una idea de qué esperar.

La versión corta: elegir qué historias / agrupaciones presentar, y en qué orden, me parece el problema más difícil de resolver . He aquí por qué (versión más larga):

  • No creo que encontrar nuevos artículos sea un gran problema. Si estuviera construyendo un clon de Techmeme, comenzaría seleccionando a mano un par de cientos de blogs y publicaciones para su inclusión, por ejemplo, TechCrunch, PandoDaily, Gizmodo, GigaOm, Wired, PC World, etc. etc. Casi todos estos hacen fuentes RSS de Su contenido disponible. (Si no lo hacen, es posible que sienta la tentación de abordar el problema de la limpieza de documentos para separar la historia central en la página HTML del anuncio y el mensaje de navegación circundantes. Pero el formato de presentación Techmeme, siempre con un artículo representativo de un clúster: parece que sería relativamente insensible a fallar esa desinfección de vez en cuando).

    Claro, también podría construir una gran cantidad de infraestructura para monitorear hashtags y / o influencers de Twitter. Pero aparte de Instagram, Youtube y Twitpic, no espero haber encontrado un porcentaje lo suficientemente alto de contenido original para justificar el esfuerzo. Es mejor simplemente sorber directamente en el blog de Bruce Sterling que esperar a que aparezca en mi radar de Twitter.

  • La indexación de términos para la búsqueda de palabras clave también es bastante sencilla. Puede dejar que Google lo haga por usted (búsqueda en el sitio) o crear su propio sistema sobre componentes probados como Lucene / Solr. Eso deja la agrupación y la clasificación como los dos elementos restantes.
  • No estoy seguro de lo difícil que sería obtener clústeres “lo suficientemente buenos” para TechMeme, pero en una escala de 1-10, lo consideraría un 5 o 6, y estaría listo para revisarlo rápidamente estimación en la práctica. Comenzaría con un modelo de espacio vectorial simple y una distancia euclidiana o una métrica de similitud de coseno y vería qué tan cerca me acercaba a lo que me gustaría mostrar: inspeccionar manualmente los grupos, notar falsos positivos, casos extremos, etc.

    A partir de ahí, podría comenzar a superponer otras mejoras, como reducir el espacio vectorial a través de un tesauro diseñado manualmente o ponderación de semejanza de término derivada a través de LSI, o usar heurística basada en campos de fecha y / o documento para mejorar la partición. Dependiendo de mi presupuesto y el volumen de documentos que se procesan, podría usar el sistema automatizado como una entrada para una herramienta editorial que hizo muy fácil detectar e intercambiar asignaciones de clúster “incorrectas”.

    Una cosa a tener en cuenta sobre la agrupación es que tiene que ser dinámica (vienen artículos de noticias adicionales todo el tiempo) y presumiblemente no quiero barajar la partición con demasiada frecuencia, porque quiero que los lectores puedan ver el el mismo título que se mueve hacia abajo de la página a medida que avanza el día, incluso si mis grupos se están reequilibrando. (No sé si así es como funciona realmente Techmeme, por cierto, no soy un lector habitual. Pero parece un objetivo UX razonable).

  • Una vez que tengo clústeres que se pueden utilizar, tengo que elaborar alguna regla para elegir un titular representativo para liderar el clúster, y tal vez algunos otros que obtengan una ubicación especial. Esto es bastante simple Puedo usar los centroides del clúster o crear una métrica que pondera la distancia del centro con otras métricas como la fecha de publicación, la credibilidad de la fuente, la disponibilidad de una imagen general, etc.
  • Entonces, mi último problema es la clasificación: ¿cómo calculo qué historias / grupos presentar, y en qué orden? Este es el mayor desafío, en mi humilde opinión. Dispararía con el objetivo de que todos los que escanean Techmeme encuentren una historia nueva e interesante.

    Si solo uso el tamaño del clúster como una métrica de clasificación, generalmente estaré sirviendo las noticias de ayer (todos han tenido tiempo de regurgitar la historia principal para entonces). Tener en cuenta la velocidad de crecimiento me ayudará a detectar historias “de tendencia”, como Habrá otras señales de popularidad como acciones en Twitter y Facebook, comentarios en Reddit o en Disqus, votos positivos en Digg (¿recuerda Digg?) o HN, etc.

    Tenga en cuenta que construir la infraestructura para evaluar y contar las señales de popularidad como las acciones de Twitter es una cantidad de trabajo no trivial por sí misma, no es conceptualmente difícil, pero aún contiene muchos datos para analizar, URL para redirigir a la fuente canónica, etc.

  • Si estuviera disparando para despegar mi clon de Techmeme rápidamente, probablemente recurriría al tipo de sistema que sugerí anteriormente: toda esta bondad automatizada para procesar texto sirve recomendaciones para un editor humano (disculpe, “curador” “) quien finalmente elige qué mostrar en mi página de inicio. Luego, ajustaba mi algoritmo de puntuación en función de los comentarios editoriales hasta que se acercaba lo suficiente como para caminar por sí solo … en ese momento, lo dejaba en vivo y cambiaba a la capacitación contra los datos de clic como mi estándar de oro para la calidad ( presentando un pequeño pero muy solucionable problema de arranque.)