solo reglas simples y tu problema está listo para escalar, necesitas ML para tu producto. Vamos a ver un escenario de la vida real de cómo usamos esto para Facebook Portal. Yo trabajaba en el equipo de Portal de Facebook y una de nuestras características destacadas era la función de llamadas. El usuario llegaba y decía: `Hola, Portal, llama a Juan`, y la idea era que el dispositivo entendiera quién es Juan en tu lista de amigos. Y si hay varios Juanes, entonces debería desambiguar quién es el Juan correcto y luego realizar una llamada a esa persona. Y hay que tener en cuenta que el costo de equivocarse es alto, ya que podrías llamar a la persona equivocada y dejar una llamada perdida. Por lo tanto, la opción aquí es ser muy preciso. Y cuando comenzamos, el flujo que teníamos era que el usuario iniciaba este comando, Portal entendería quién es el Juan más probable, y esto se basaba simplemente en reglas. Elegiríamos el contacto principal que obtuviéramos y luego emitiríamos una confirmación. Y si el usuario decía sí, confirmo, llámalo, lo llamaríamos; de lo contrario, no lo haríamos. Pero este era un proceso muy engorroso, ¿verdad? El usuario tenía que ingresar, seleccionar, confirmar, seleccionar a quién estaban llamando, a menudo interactuar y tocar en la interfaz de usuario. Y esto iba en contra de la experiencia de que el usuario interactuara sin manos con este dispositivo inteligente. Por lo tanto, tuvimos que abordar el problema de cómo predecir quién es el Juan real, para que el usuario no tuviera que hacer todo este trabajo por sí mismos.
Existen muchas reglas que podríamos haber utilizado. Podríamos ver la puntuación de similitud en si el nombre reflejaba o coincidía con el nombre de la persona. Podríamos usar la puntuación de confianza, si el ASR (sistema de reconocimiento de voz) entendía correctamente a Juan. También podríamos usar la relación del usuario con la persona a la que están llamando. Entonces, naturalmente, si alguien es un familiar, es más probable que llame a algunos usuarios, y para otros usuarios, si alguien llama a un Juan con quien se comunican o llaman con frecuencia, es más probable que estén llamando al mismo Juan. También podría variar según la hora del día, si realmente dieron el comando o no. Por lo tanto, para muchos usuarios, podrían estar hablando con otra persona, a veces el ASR capta incorrectamente si el usuario está tratando de llamar a esta persona. ¿Cuál es entonces la probabilidad de ruido? ¿Cuál es la frecuencia con la que hablan con esta persona? ¿Cuál es la puntuación de todos estos módulos previos que básicamente traducen cualquier discurso a texto? Y todas estas eran barreras de reglas, ¿verdad?, y no podían ser abstraídas en una sola regla para nuestros propósitos. Y dado que estas no son solo una regla, y necesitábamos que el modelo realmente aprendiera, no solo a partir de una sola regla de cambio, sino de una data distribución, decidimos aprovechar el ML para este problema. Y este es el problema que les voy a presentar, a través de este ciclo de vida del desarrollo del modelo de ML. Así es como se ve, ¿verdad?, una vez que has decidido, has respondido esta pregunta para tu producto, que necesitas ML para el desarrollo de tu modelo, ¿cómo se ve? Comienza con la recolección de data. La recolección de data implica configurar los conjuntos de características y etiquetas adecuados para el entrenamiento de tu modelo. Y esto puede ser orgánico o artificial. En nuestro caso, para el ejemplo que acabo de dar, como ya estábamos utilizando confirmaciones de los usuarios para decidir si el contacto era el correcto o no, ya teníamos etiquetas orgánicas recolectadas para nuestras características para resolver este problema de ML. Uno puede usar los datos de la era pre-ML, que están anonimizados a partir de sus interacciones de usuarios preexistentes, para entrenar su modelo, o lo que sucede en un escenario, es que puedes crear herramientas para recolectar data para resolver los problemas que estás buscando. Para los fines de esta charla, nos centraremos en la recolección orgánica de data, y cómo puedes obtener data de un producto ya existente y cómo puedes luego utilizar esos data para implementar ML en tu producto. Y esto es cómo se ven nuestras características. Para nuestra recolección orgánica de data, nuestras características incluían la puntuación de confianza ASR, que era si un usuario decía algo, nuestro motor ASR o de reconocimiento de voz lo traducía a texto,
Comments