Twitter (X) ha sido un tumultuoso los últimos dos años. El año pasado, Elon Musk compró la plataforma por 44 mil millones de dólares y luego revisó la dotación de personal, la moderación de contenido, el modelo de negocios y la cultura del sitio web de la compañía. Estos cambios pueden tener más que ver con el poder blando de Elon Musk que con decisiones políticas específicas. Sin embargo, en medio de estas acciones controvertidas, una nueva característica en Twitter rápidamente se volvió importante y parece ser amada por personas de todo el espectro político: las Notas de la comunidad.

Community Notes es una herramienta de verificación de hechos que a veces agrega notas contextuales a los tweets, como el tweet de Elon Musk anterior, como herramienta de verificación de hechos y contra la desinformación. Originalmente se llamaba Birdwatch y se lanzó por primera vez como proyecto piloto en enero de 2021. Se ha expandido gradualmente desde entonces, y su expansión más rápida coincidió con la adquisición de Twitter por parte de Elon Musk el año pasado. Las notas de la comunidad aparecen regularmente entre los tweets que reciben amplia atención en Twitter estos días, incluidos aquellos que tratan sobre temas políticos controvertidos. En mi opinión, y en mi conclusión tras hablar con muchas personas de todo el espectro político, estas Notas son informativas y valiosas tal como aparecen.

Sin embargo, lo que más me interesa son las Notas de la comunidad, que, aunque no son un "proyecto criptográfico", son probablemente el ejemplo más cercano de "valores criptográficos" que hemos visto en el mundo convencional. Las notas de la comunidad no son escritas ni seleccionadas por expertos seleccionados centralmente; cualquiera puede escribirlas y votarlas, y qué notas aparecen o no están determinadas enteramente por algoritmos de código abierto. El sitio web de Twitter tiene una guía detallada y completa que describe cómo funciona el algoritmo, y puede descargar los datos que contienen las notas y encuestas publicadas, ejecutar el algoritmo localmente y verificar que el resultado coincida con lo que se ve en el sitio web de Twitter. Si bien no es perfecto, se acerca sorprendentemente al ideal de neutralidad confiable en situaciones bastante controvertidas y, al mismo tiempo, es muy útil.

¿Cómo funciona el algoritmo de Notas comunitarias?

Cualquier persona con una cuenta de Twitter que cumpla con ciertos criterios (básicamente: activa durante más de 6 meses, sin violaciones de políticas, número de teléfono móvil verificado) puede registrarse para participar en Community Notes. Actualmente, los participantes se aceptan de forma lenta y aleatoria, pero eventualmente el plan es permitir que cualquiera que califique se una. Una vez aceptado, primero puede participar en la calificación de Notas existentes y, una vez que sus calificaciones sean lo suficientemente buenas (medidas al ver qué calificaciones coinciden con los resultados finales de esa Nota), también puede escribir sus propias Notas.

Cuando escribe una nota, la nota recibe una puntuación basada en la revisión de otros miembros de Notas de la comunidad. Estas revisiones pueden considerarse como votos en los tres niveles de "útil", "algo útil" y "no útil", pero las revisiones también pueden incluir otras etiquetas que desempeñan un papel en el algoritmo. Según estas revisiones, a Notes se le asigna una puntuación. Si la puntuación de la nota excede 0,40, la nota se mostrará; de lo contrario, la nota no se mostrará.

Lo que hace único al algoritmo es cómo se calculan las puntuaciones. A diferencia de los algoritmos simples, que están diseñados simplemente para calcular algún tipo de suma o promedio de calificaciones de los usuarios y usarlo como resultado final, el algoritmo de calificación de Notas de la comunidad intenta explícitamente priorizar a aquellos que han recibido críticas positivas de personas con diferentes perspectivas de Notas. Es decir, si las personas que normalmente no están de acuerdo con las calificaciones terminan estando de acuerdo con una nota en particular, esa nota recibirá una calificación alta.

Echemos un vistazo más de cerca a cómo funciona. Tenemos un conjunto de usuarios y un conjunto de Notas; podemos crear una matriz M donde la celda Mij representa cómo el i-ésimo usuario calificó las j-ésimas Notas.

Para cualquier Nota determinada, la mayoría de los usuarios no han calificado esa Nota, por lo que la mayoría de las entradas en la matriz serán cero, pero eso está bien. El objetivo del algoritmo es crear un modelo de cuatro columnas de usuarios y Notas, asignando dos estadísticas a cada usuario, que podemos llamar "amabilidad" y "polaridad", y dos estadísticas a cada Nota, que llamamos "utilidad". " y "polaridad". El modelo intenta predecir la matriz en función de estos valores, utilizando la siguiente fórmula:

Tenga en cuenta que aquí presento la terminología utilizada en el artículo de Birdwatch, así como mi propia terminología para proporcionar una comprensión más intuitiva del significado de las variables sin involucrar conceptos matemáticos:

  • μ es un parámetro de "sentimiento público" que mide qué tan altas son las calificaciones que generalmente otorgan los usuarios.

  • iu es la "amabilidad" del usuario, es decir, la probabilidad de que el usuario tienda a dar una calificación alta.

  • Lo que importa es la "utilidad" de los Bonos, es decir, la probabilidad de que los Bonos obtengan una calificación alta. Esta es la variable que nos importa.

  • fu o fn es la "polaridad" del usuario de Notes, es decir, su posición en el eje dominante de los extremos políticos. En la práctica, polaridad negativa significa aproximadamente "inclinada hacia la izquierda" y polaridad positiva significa "inclinada hacia la derecha", pero tenga en cuenta que los ejes extremos se derivan del análisis de los datos del usuario y de Notes, y los conceptos de izquierda y derecha no están codificados.

El algoritmo utiliza un modelo de aprendizaje automático bastante básico (descenso de gradiente estándar) para encontrar los mejores valores de variables para predecir valores de matrices. La utilidad asignada a una Nota en particular es la puntuación final de esa Nota. Se mostrará una Nota si su utilidad es al menos +0,4.

La astucia central aquí es que la "polaridad" absorbe las características de una Nota que hacen que a algunos usuarios les guste y a otros no, mientras que la "utilidad" sólo mide las características de una Nota que hacen que a todos les guste. usuarios. Por lo tanto, la selección de utilidad identifica las Notas que son respaldadas por todas las tribus y excluye las Notas que son aplaudidas por una tribu pero resentidas por otra.

Lo anterior sólo describe la parte central del algoritmo. De hecho, se le han añadido muchas mecánicas adicionales. Afortunadamente, están descritos en documentación pública. Estos mecanismos incluyen los siguientes:

  • El algoritmo se ejecuta varias veces, y cada vez agrega a la votación algunos "votos falsos" extremos generados aleatoriamente. Esto significa que el verdadero resultado del algoritmo para cada Nota es un rango de valores, y el resultado final depende de una "confianza inferior" tomada de ese rango y comparada con un umbral de 0,32.

  • Si muchos usuarios (especialmente aquellos con una polaridad de Notas) califican una Nota como "No útil" y también asignan la misma "etiqueta" (por ejemplo, "lenguaje argumentativo o sesgado", "fuente inusual") "Notas de soporte") que el motivo de la calificación, entonces el umbral de utilidad requerido para que se publiquen las Notas aumentará de 0,4 a 0,5 (esto puede parecer pequeño, pero es muy importante en la práctica).

  • Si se acepta un Pagaré, su utilidad deberá reducirse a 0,01 puntos por debajo del umbral requerido para aceptar el Pagaré.

  • El algoritmo realiza más ejecuciones utilizando múltiples modelos, y a veces mejora las Notas con puntuaciones de utilidad brutas entre 0,3 y 0,4.

En total, obtienes un código Python bastante complejo con un total de 6282 líneas repartidas en 22 archivos. Pero todo está abierto y puedes descargar Notas y los datos de puntuación y ejecutarlo tú mismo para ver si el resultado coincide con lo que realmente está sucediendo en Twitter.

Entonces, ¿cómo se ve esto en la práctica?

Probablemente la mayor diferencia entre este algoritmo y simplemente tomar una puntuación promedio de los votos de la gente es el concepto de lo que yo llamo valores "polares". La documentación del algoritmo se refiere a ellos como fu y fn, usando f como factor porque los dos términos se multiplican entre sí. La terminología más general se debe en parte al deseo eventual de hacer que fu y fn sean multidimensionales;

La polaridad se asigna a usuarios y notas. El vínculo entre el ID de usuario y la cuenta de Twitter subyacente se mantiene intencionalmente en secreto, pero Notes es público. De hecho, al menos para el conjunto de datos inglés, la polaridad generada por el algoritmo se correlaciona muy estrechamente con la izquierda y la derecha.

Aquí hay algunos ejemplos de notas con polaridad alrededor de -0,8:

Tenga en cuenta que no estoy seleccionando aquí; en realidad, estas son las primeras tres filas en la hoja de cálculo scoring_notes.tsv que generé cuando ejecuté el algoritmo localmente, y sus puntuaciones de polaridad (llamadas coreNoteFactor1 en la hoja de cálculo) son menores que - 0,8.

Ahora, aquí hay algunas notas con una polaridad de aproximadamente +0,8. Resulta que muchos de ellos son personas que hablan sobre la política brasileña en portugués o fanáticos de Tesla que refutan airadamente las críticas a Tesla, así que permítanme seleccionar un poco y encontrar algunas notas que no entran en ninguna de las categorías:

Nuevamente, como recordatorio, la "división izquierda versus derecha" no está codificada en el algoritmo de ninguna manera, sino que se descubre computacionalmente; Esto sugiere que si se aplica este algoritmo a otros contextos culturales, puede detectar automáticamente sus principales divisiones políticas y construir puentes entre esas divisiones.

Mientras tanto, Notas para máxima utilidad tiene este aspecto. Esta vez, dado que las Notas aparecen en Twitter, puedo simplemente tomar una captura de pantalla:

Hay otro:

Para la segunda Nota, trata más directamente temas políticos altamente partidistas, pero es una Nota clara, informativa y de alta calidad, por lo que obtiene una calificación alta. En general, el algoritmo parece funcionar y parece factible verificar el resultado del algoritmo ejecutando el código.

¿Qué pienso sobre este algoritmo?

Lo que más me llamó la atención al analizar este algoritmo fue su complejidad. Existe una "versión en papel académico" que utiliza el descenso de gradiente para encontrar el mejor ajuste de ecuaciones matriciales y vectoriales de cinco términos, y luego está la versión real, una serie compleja de ejecuciones del algoritmo con muchas ejecuciones diferentes y mucha arbitrariedad a lo largo de el camino.

Incluso la versión en papel académico oculta la complejidad subyacente. La ecuación que optimiza es de cuarto orden negativo (porque hay un término cuadrático fu*fn en la fórmula de predicción y la función de costo mide el cuadrado del error). Si bien la optimización de una ecuación cuadrática en cualquier número de variables casi siempre tendrá una solución única, que se puede resolver con álgebra lineal bastante básica, la optimización de una ecuación cuártica en muchas variables generalmente tiene muchas soluciones, de ahí las múltiples rondas de algoritmos de descenso de gradiente diferentes. se pueden alcanzar respuestas. Pequeños cambios de entrada pueden hacer que la caída cambie de un mínimo local a otro, cambiando significativamente los resultados de salida.

Para mí, la diferencia entre este y los algoritmos que ayudé a desarrollar, como el financiamiento secundario, es como la diferencia entre el algoritmo de un economista y el algoritmo de un ingeniero. Los algoritmos de los economistas, en el mejor de los casos, se centran en la simplicidad, son relativamente fáciles de analizar y tienen propiedades matemáticas claras, lo que indica que es lo mejor (o menos malo) para la tarea a resolver, e idealmente también se puede demostrar. ¿Cuánto daño puede hacer alguien al intentar explotarlo? El algoritmo de un ingeniero, por otro lado, se deriva de un proceso iterativo de prueba y error para ver qué funciona y qué no funciona en el entorno operativo del ingeniero. Los algoritmos de los ingenieros son pragmáticos y hacen el trabajo; los algoritmos de los economistas no pierden completamente el control cuando se enfrentan a situaciones inesperadas.

O, como lo expresa el respetado filósofo de Internet roon (también conocido como tszzl) en un hilo relacionado:

Por supuesto, yo diría que el aspecto de "estética teórica" ​​de las criptomonedas es necesario para poder diferenciar con precisión entre aquellos protocolos que realmente no son confiables y aquellos que lucen bien y funcionan bien en la superficie, pero que en realidad requieren confianza en algún actor centralizado. O peor aún, podría ser una completa estafa.

El aprendizaje profundo es eficaz en circunstancias normales, pero tiene debilidades inevitables en varios ataques adversarios de aprendizaje automático. Si se hacen bien, las trampas técnicas y las escaleras de abstracción de alto nivel pueden combatir estos ataques. Entonces, tengo una pregunta: ¿Podemos convertir las Notas de la comunidad en algo más parecido a un algoritmo económico?

Para ver lo que esto significa en la práctica, exploremos un algoritmo que diseñé hace unos años con un propósito similar: financiación cuadrática acotada por pares.

El objetivo de la financiación cuadrática acotada por pares es llenar un vacío en la financiación cuadrática "regular", mediante el cual incluso si dos participantes se confabulan entre sí, pueden contribuir cantidades muy altas a un proyecto falso, devolverles los fondos y recibir grandes cantidades. subsidios que agotan todo el fondo de capital. En la financiación cuadrática acotada por pares, asignamos un presupuesto limitado M a cada par de actores. El algoritmo recorre en iteración todos los pares posibles de actores, y si el algoritmo decide agregar un subsidio a un determinado proyecto P porque tanto el actor A como el actor B lo apoyan, entonces este subsidio se deduce del presupuesto asignado al par (A, B ). Por lo tanto, incluso si k participantes se confabulan, la cantidad que pueden robar del mecanismo es como máximo k (k-1) M.

Esta forma de algoritmo no funciona bien en el contexto de las Notas de la comunidad porque cada usuario emite solo una pequeña cantidad de votos: en promedio, la cantidad de votos en común entre dos usuarios cualesquiera es cero, por lo que simplemente mirando cada par individualmente Usuario, el algoritmo no puede entender la polaridad del usuario. El objetivo de un modelo de aprendizaje automático es precisamente intentar "poblar" una matriz a partir de datos fuente muy escasos que no pueden analizarse directamente de esta manera. Pero el desafío de este enfoque es que se requiere un esfuerzo adicional para evitar resultados altamente volátiles ante un pequeño número de malos votos.

¿Pueden realmente las Notas Comunitarias resistir a la izquierda y a la derecha?

Podemos analizar si el algoritmo de Community Notes es realmente capaz de resistir los extremos, es decir, si funciona mejor que un algoritmo de votación ingenuo. Este algoritmo de votación ya resiste hasta cierto punto los extremos: una publicación con 200 me gusta y 100 no me gusta tendrá peores resultados que una publicación con sólo 200 me gusta. ¿Pero las Notas de la comunidad funcionan mejor?

Desde una perspectiva de algoritmo abstracto, es difícil decirlo. ¿Por qué una publicación polarizadora con una calificación promedio alta no tendría una polaridad fuerte y una gran utilidad? La idea es que si esos votos están en conflicto, la polaridad debería "absorber" las características que causaron que la publicación obtuviera muchos votos, pero ¿realmente hace eso?

Para comprobar esto, ejecuté mi propia implementación simplificada durante 100 rondas. Los resultados promedio son los siguientes:

En esta prueba, los Notes "buenos" recibieron una calificación de +2 entre los usuarios de la misma afiliación política y una calificación de +0 entre los usuarios de la afiliación política opuesta, y los Notes "buenos pero más extremos" recibieron una calificación de +0 entre los usuarios de la misma afiliación política. misma afiliación política Recibió una calificación de +4 entre los usuarios de la facción opuesta y una calificación de -2 entre los usuarios de la facción opuesta. Aunque las puntuaciones medias son las mismas, la polaridad es diferente. Y, de hecho, la utilidad promedio de los Notes "buenos" parece ser mayor que la de los Notes "buenos pero más extremos".

Tener un algoritmo más cercano al "algoritmo del economista" tendrá una historia más clara sobre cómo el algoritmo penaliza los extremos.

¿Qué utilidad tiene todo esto en situaciones de alto riesgo?

Podemos aprender algo de esto observando una situación específica. Hace aproximadamente un mes, Ian Bremmer se quejó de que se había agregado una nota comunitaria muy crítica a un tweet sobre un funcionario del gobierno chino, pero desde entonces las notas habían sido eliminadas.

Ésta es una tarea difícil. Una cosa es diseñar mecanismos en un entorno comunitario de Ethereum donde la mayor queja podría ser que $20,000 van a parar a un influencer extremo de Twitter. La situación es completamente diferente cuando se trata de cuestiones políticas y geopolíticas que afectan a millones de personas, donde a menudo todo el mundo asume razonablemente los peores motivos. Sin embargo, interactuar con estos entornos de alto riesgo es esencial si los diseñadores mecánicos quieren tener un impacto significativo en el mundo.

En el caso de Twitter, hay una razón obvia para sospechar que la manipulación centralizada es la razón por la que se eliminaron Notes: Elon Musk tiene muchos intereses comerciales en China, por lo que es posible que Elon Musk haya obligado al equipo de Community Notes a interferir con la salida del algoritmo. y eliminarlo Esta Notas en particular.

Afortunadamente, el algoritmo es de código abierto y verificable, por lo que podemos profundizar en él. Hagámoslo. La URL del tweet original es https://twitter.com/MFA_China/status/1676157337109946369. El número 1676157337109946369 al final es el ID del tweet. Podemos buscar este ID en los datos descargables e identificar la fila específica en la hoja de cálculo que tiene las Notas anteriores:

Aquí obtenemos el ID de Notes, 1676391378815709184. Luego buscamos esa ID en los archivos scoring_notes.tsv y note_status_history.tsv generados al ejecutar el algoritmo. Obtuvimos los siguientes resultados:

La segunda columna del primer resultado es la calificación actual de esas Notas. El segundo resultado muestra el historial de las Notas: su estado actual está en la columna siete (NEEDS_MORE_RATINGS), y el primer estado que recibió anteriormente que no era NEEDS_MORE_RATINGS está en la columna cinco (CURRENTLY_Rated_HELPFUL). Así que podemos ver que el algoritmo en sí primero mostró la nota y luego la eliminó después de que su calificación cayó ligeramente; no parece haber ninguna intervención central involucrada.

También podemos abordar esta cuestión de otra manera, analizando la votación misma. Podemos escanear el archivo ratings-00000.tsv para aislar todas las calificaciones de esas Notas y ver cuántas están calificadas como ÚTIL y NO_ÚTIL:

Sin embargo, si los ordena por marca de tiempo y observa los primeros 50 votos, verá que hay 40 votos ÚTILES y 9 votos NO_ÚTILES. Entonces llegamos a la misma conclusión: la audiencia inicial de Notes calificó a Notes de manera más positiva, mientras que las audiencias posteriores de Notes lo calificaron de manera menos favorable, por lo que sus calificaciones comenzaron más altas y disminuyeron con el tiempo.

Desafortunadamente, es difícil explicar exactamente cómo cambió el estado de Notes: no es una simple cuestión de "anteriormente tenía una calificación superior a 0,40, ahora tiene una calificación inferior a 0,40, por lo que se eliminó". En cambio, una gran cantidad de respuestas NOT_HELPFUL desencadena una de las condiciones de excepción, lo que aumenta la puntuación de utilidad que Notes necesita para mantenerse por encima del umbral.

Esta es otra gran oportunidad de aprendizaje que nos enseña una lección: hacer que un algoritmo neutral confiable sea verdaderamente confiable requiere mantenerlo simple. Si una Nota pasa de ser aceptada a no ser aceptada, debe haber una historia simple y clara que explique por qué es así.

Por supuesto, hay una forma completamente diferente de manipular este voto: Brigada. Alguien que vea una Nota que desaprueba puede recurrir a una comunidad muy comprometida (o peor aún, a una legión de cuentas falsas) para calificarla como NOT_ÚTIL, y puede que no sean necesarios muchos votos para que Notas pase de "Útil" a "extrema". Se requieren más análisis y trabajo para reducir adecuadamente la vulnerabilidad del algoritmo a este tipo de ataques coordinados. Una posible mejora sería no permitir que ningún usuario vote sobre ninguna Nota, sino asignar Notas aleatoriamente a los evaluadores de la manera recomendada por el algoritmo "Para usted", y solo permitir que los evaluadores califiquen aquellas Notas a las que han sido asignadas.

¿Las notas comunitarias no son lo suficientemente “valientes”?

La principal crítica que veo a Community Notes es básicamente que no hace lo suficiente. Vi dos artículos recientes que mencionan esto. Para citar uno de los artículos:

El programa adolece de una grave limitación: para que las Notas Comunitarias sean públicas, deben ser aceptadas universalmente por un consenso de personas de todo el espectro político.

"Tiene que haber consenso ideológico", dijo. "Eso significa que la gente de izquierda y de derecha tienen que estar de acuerdo en que la nota debe adjuntarse al tuit".

Esencialmente, dijo, requiere "un acuerdo interideológico sobre la verdad, lo cual es casi imposible de lograr en un ambiente cada vez más partidista".

Es una pregunta difícil, pero en última instancia me inclino a pensar que es mejor tener diez tweets de información errónea difundidos libremente que tener un tweet injustamente anotado. Hemos visto años de verificación de hechos, y es valiente, y es desde la perspectiva de "en realidad sabemos la verdad, sabemos que un lado miente con más frecuencia que el otro". ¿Cuál será el resultado?

Para ser honesto, existe una desconfianza bastante generalizada hacia el concepto de verificación de datos. He aquí una estrategia que dice: Ignore a los críticos, recuerde que los expertos en verificación de datos realmente conocen los hechos mejor que cualquier sistema de votación, y manténgalo firme. Pero apostar por este enfoque parece arriesgado. Es valioso construir instituciones intertribales que sean respetadas por todos al menos hasta cierto punto. Al igual que las máximas de William Blackstone y los tribunales, creo que mantener ese respeto requiere un sistema que cometa errores por omisión y no de forma proactiva. Así que me parece que es valioso que al menos una organización importante tome este camino diferente y trate su raro respeto intertribal como un recurso precioso.

Otra razón por la que creo que está bien que las Notas de la comunidad sean conservadoras es que no creo que todos los tweets de información errónea, o incluso la mayoría de los tweets de información errónea, deban recibir una nota correctiva. Aunque menos del uno por ciento de los tweets de información errónea reciben anotaciones que brindan contexto o corrección, Community Notes aún brinda un servicio extremadamente valioso como herramienta educativa. El objetivo no es corregirlo todo; más bien, el objetivo es recordar a las personas que existen múltiples puntos de vista, que algunas publicaciones que parecen convincentes y atractivas de forma aislada en realidad son bastante incorrectas y que, sí, normalmente puedes realizar una búsqueda básica en Internet. para verificar que está mal.

Las Notas Comunitarias no pueden ser, ni pretenden ser, una panacea para todos los problemas de la epistemología pública. Cualesquiera que sean los problemas que no resuelva, hay mucho espacio para que otros mecanismos lo llenen, ya sea un dispositivo novedoso como un mercado de predicción o una organización establecida que emplee empleados de tiempo completo con experiencia en el campo que pueda intentar llenar los vacíos.

en conclusión

Community Notes no es sólo un experimento fascinante en las redes sociales, sino también un ejemplo de un fascinante tipo emergente de diseño de mecanismos: mecanismos que buscan conscientemente identificar extremos y tienden a promover el cruce de fronteras en lugar de perpetuar las divisiones.

Otros dos ejemplos en esta categoría que conozco son: (i) el mecanismo de financiación secundaria por pares utilizado en Gitcoin Grants, y (ii) Polis, una herramienta de discusión que utiliza algoritmos de agrupación para ayudar a la comunidad a identificar declaraciones populares comunes que abarcan a las personas. que a menudo tienen opiniones diferentes. Esta área del diseño de mecanismos es valiosa y espero que veamos más trabajo académico en esta área.

La transparencia algorítmica proporcionada por Community Notes no es exactamente la misma que la de las redes sociales totalmente descentralizadas: si no está de acuerdo con la forma en que funciona Community Notes, no hay forma de ver el mismo contenido a través de un algoritmo diferente. Pero esto es lo más cerca que estarán las aplicaciones de hiperescala en los próximos años, y podemos ver que ya proporciona mucho valor, tanto para prevenir la manipulación centralizada como para garantizar que las plataformas que no participan en dicha manipulación obtengan el reconocimiento que les corresponde. .

Espero ver cómo se desarrollan y crecen las Notas de la comunidad y muchos algoritmos similares durante la próxima década.