Como os algoritmos de aprendizado de máquina descobrem o que você deve assistir a seguir

A curadoria em escala precisa processar muitos dados com um bom algoritmo.

Você se senta na frente da televisão ou acessa o aplicativo de streaming em seu smartphone. O que você escolhe assistir? 

Determinar quais programas e filmes acabavam na frente de um espectador costumava ser um processo muito manual e conduzido por humanos. Um indivíduo veria qual conteúdo estava disponível, descobriria a que demografia assistia e quando e agendaria shows e filmes em intervalos de tempo que provavelmente teriam os espectadores certos. 

Com um serviço de streaming, no entanto, não há horários. Tudo está disponível a qualquer hora. Colocar os programas certos na frente do espectador quando eles estiverem prontos para assistir torna-se o problema central. 

O que antes era um processo puramente humano agora evoluiu graças aos avanços na tecnologia de aprendizado de máquina. Na Warner Bros. Discovery, usamos o aprendizado de máquina para exibir os filmes e programas que mais ressoarão com nossos espectadores. Nossas equipes editoriais há muito escolhem o que consideram os melhores programas entre nossas bibliotecas, mas o favorito de uma pessoa nem sempre atrairá outra pessoa. Assim, como muitos setores, recorremos ao aprendizado de máquina e aos dados do usuário para melhorar nossas experiências digitais. 

Nosso objetivo é sempre tornar as experiências de nossos espectadores mais fáceis e simples para que eles encontrem o conteúdo que desejam assistir rapidamente. Ninguém na indústria resolveu totalmente esse problema, e é isso que o torna tão empolgante. 

Neste artigo, falaremos sobre o que estamos fazendo com o ML para garantir que seu novo programa favorito esteja esperando por você quando você iniciar a Netflix, Discovery+ ou o HBO Max .

Passando de um processo humano para um processo de máquina

Na sua forma mais simples, a recomendação é baseada em padrões. Se você gosta de ficção científica, provavelmente assistirá a mais filmes de ficção científica. Com base em nossos estudos, descobrimos que o espectador médio se apega a cinco ou seis gêneros. Eles não são os mesmos gêneros para todos os espectadores, então criar um tipo de navegação genérico – mesmo alfabético – pode ser difícil. Você poderia apenas exibir os programas mais populares, mas negligenciaria seu conteúdo  de cauda longa .

A automação mais simples que podemos fazer é garantir que os gêneros favoritos de um usuário sejam mais fáceis de acessar. Fizemos isso tanto na página de navegação, quando um usuário clica em uma lista de programas de TV e filmes e vê os gêneros disponíveis, como também na página inicial do usuário. A construção dessa home page precisa ser personalizada para que o usuário não fique rolando e rolando para chegar ao gênero de programas que assiste o tempo todo. 

Um editor humano passaria por esses gêneros e escolheria os filmes ou programas que considera os melhores: as joias. Mas um único editor, não importa quão bom seja seu gosto, não será capaz de escolher vencedores para todos. Capturamos dados sobre os históricos dos usuários, as interações que eles fazem no site e vários outros sinais que nos dizem no que eles estão interessados. Usamos algoritmos de aprendizado profundo que executam esses históricos por meio de modelos baseados em sequência para determinar a probabilidade desse visualizador querendo assistir a qualquer show. Em seguida, classificamos o conteúdo de acordo com a probabilidade de atrair o cliente e enviamos essa classificação para eles – é isso que são suas joias, com base nos dados que estão nos fornecendo. 

Claro, não queremos apenas servir o conteúdo que você já gosta. Editores humanos são muito bons em encontrar um grupo mais amplo de conexões entre as mídias. Eles vão recomendar algo não porque os metadados dizem que há uma sequência de ação aqui e uma sequência romântica aqui, mas porque o editor está conectando pontos que podem não ser facilmente traduzíveis em rótulos. Você gostou de um filme deste diretor; talvez você goste do trabalho deles em um gênero que você normalmente não explora. A Pandora tentou esse modelo para música fazendo com que editores humanos construíssem explicitamente links entre as músicas. 

Essa teia de conexões que cria conteúdo diversificado e experiências agradáveis ​​é o que estamos explorando ativamente agora, exceto que estamos tentando usar nosso programa de ML para inferir essas conexões. Seja conectando padrões de exibição, analisando metadados ou extraindo dicas do próprio conteúdo, queremos criar um conjunto de conteúdo mais rico do que o que estaria disponível apenas a partir de sinais de gênero. 

A Warner Brothers Discovery está mudando, em geral, de ser muito editorial e orientada por humanos para mais pesada de ML. Um dos lugares onde recentemente fizemos incursões na cultura editorial é no que chamamos de painel de heróis, o grande painel no topo que mostra uma única prévia de um programa em destaque. Nossos editores tradicionalmente escolhem o que vai lá – nenhuma máquina, apenas um conjunto de palhetas em constante rotação. No momento, estamos transformando isso em um problema de aprendizado de máquina, tentando descobrir como personalizar esse espaço com um conjunto de programas em constante rotação relevantes para a pessoa que o visualiza. 

As máquinas que te recomendam filmes

Há muitas opções e ferramentas para criar soluções de ML hoje. Somos principalmente uma loja da AWS e começamos nossa jornada de ML usando muitos de seus serviços, incluindo o SageMaker para treinamento de modelos e pipeline de implantação. Usamos o AWS Personalize para nossos mecanismos de recomendação inicial; permitiu-nos começar rapidamente e funcionou muito bem na maioria dos problemas. 

Agora estamos construindo nossos próprios modelos no TensorFlow. Se você deseja estruturas de avaliação mais ricas, tempos de resposta mais rápidos e mais controle sobre as técnicas de aprendizado e algoritmos usados, esse é o próximo passo. Nossos modelos personalizados têm um desempenho tão bom, se não melhor, com o que o setor e a AWS forneceram. E estamos procurando construir pipelines de ML que atendam aos nossos casos de uso específicos sem depender dessas estruturas genéricas. 

Não pretendemos reinventar a roda; há muitas tecnologias de código aberto e soluções corporativas que estamos pensando em adicionar à nossa pilha. Estamos analisando tecnologias como Feast para o repositório de recursos e mecanismos de inferência como KServe e MLflow para gerenciar nossos experimentos e pipeline de implantação. Com nossas ferramentas personalizadas e as excelentes tecnologias de código aberto do mercado, podemos projetar soluções de ML que lidam com nossos casos de uso específicos. 

Na verdade, as ferramentas de ML em geral percorreram um longo caminho. A barra para começar foi reduzida tanto na última década que você pode criar um pipeline de ML muito eficaz apenas usando ferramentas prontas para uso. Com os avanços de hardware e os algoritmos que você pode aproveitar, você pode inicializar uma solução muito eficaz que fará inferências em menos de milissegundos. 

Se você deseja desenvolver uma estrutura de avaliação mais rica e aprofundar seus conjuntos de dados de treinamento, é aí que você pode começar a mergulhar na personalização. Estamos desenvolvendo nossos próprios modelos e pipelines para nos dar mais controle sobre as técnicas de aprendizado e permitir tempos de resposta mais rápidos em nossos conjuntos de dados. Então podemos construir sobre as soluções que inicializamos.

É claro que as ferramentas, algoritmos e modelos não são as partes mais difíceis do aprendizado de máquina. São os dados. 

O verdadeiro problema são os dados

O código ML é uma pequena parte de um quebra-cabeça maior: os dados. Vasculhar uma enorme pilha de dados e metadados para determinar recursos e decidir como aplicar a semântica é difícil e essencial. Se você já passou por um tutorial de ML, os dados são fornecidos a você. Mas em aplicativos reais, os dados nunca são de alta qualidade como você gostaria. Você acaba brigando pelos dados para seus modelos e depois treinando seus modelos. Mas a parte de gerenciamento de dados é onde grande parte do nosso tempo é gasto. 

Algumas das ferramentas de código aberto são tão boas que você pode escrever duas linhas de código no Tensorflow e ter um aplicativo de ML. Mas então você precisa implantá-lo e, quando implanta em um cenário de negócios real, precisa executar uma série de listas de verificação. O pipeline precisa operar em tempo real, dimensionar rapidamente, ser sustentável e permanecer transparente o suficiente para avaliarmos se estamos seguindo os sinais certos e incentivando os usuários em uma direção saudável. 

Tome um sinal simples: tempo de exibição. Se um espectador assistir mais de um programa, provavelmente gostará dele, e podemos usar isso para inferir outros programas que ele possa gostar. Bem direto. Mas esses dados precisam fluir de volta do visualizador para nossos sistemas. O conteúdo é transmitido para o cliente, geralmente armazenando em buffer mais do que o necessário para evitar interrupções. Para que nossas recomendações forneçam conteúdo preciso, esses dados precisam retornar quase em tempo real. Se o espectador detesta um programa e clica de volta para a página inicial, essa página precisa estar pronta para ser atualizada com novas recomendações. 

Isso acaba sendo petabytes de dados diariamente, e esses dados precisam ser agregados e passados ​​para nossos sistemas de back-end. Esses dados vindos do cliente não vêm em um formato facilmente consumível, portanto, massageá-los em um formato que pudesse ser agregado e alimentado em nossos modelos foi uma das tarefas mais desafiadoras que enfrentamos. 

Mas a porcentagem assistida é uma métrica bastante básica e não nos diz muito sobre o que o espectador gostou no programa. Uma de nossas grandes métricas é o retorno do investimento em conteúdo: quanta audiência um programa está obtendo com base em nosso investimento nele. Parte do que queremos dos sinais que os espectadores nos enviam é a capacidade de entender melhor o conteúdo dos próprios vídeos sem depender de um curador humano. Estamos apenas arranhando a superfície da extração de metadados e recursos de vídeos e estamos tentando ativamente determinar se há mais coisas que podemos aprender sobre nosso conteúdo de ML. 

O aprendizado de máquina está sempre mudando, assim como nossos algoritmos, portanto, à medida que atualizamos modelos e iteramos com base em nossos dados, precisamos de uma boa maneira de avaliar se os modelos e suas alterações estão obtendo os resultados desejados. Realizamos muitos experimentos: avaliações lado a lado de modelos em relação a várias métricas de destino. À medida que os usuários interagem com programas, gêneros ou seções do aplicativo, queremos alimentar essas informações de volta em nossos modelos. 

O risco é sempre que estamos tendendo demais em uma métrica ou outra. Se nossa única métrica fosse o tempo de exibição, os algoritmos seriam otimizados para isso e esses números aumentariam. Mas os espectadores estão escolhendo conteúdo que seja significativo para eles? Estamos direcionando-os para vídeos que eles gostam, ou estamos apenas jogando um monte de conteúdo para eles até que algo grude? Apoiar-se muito em uma única métrica pode fazer com que você negligencie a integridade geral da macro, o que pode ter consequências não intencionais de segunda ordem para o restante do seu conteúdo.  

Observando o que você assiste

A Warner Bros Discovery tem uma biblioteca de conteúdo que abrange quase cem anos, e queremos colocar nossos programas na frente de pessoas que vão amá-los. Nosso programa de ML está tentando usar os sinais que os espectadores nos dão para dar a eles seu próximo programa favorito. 


Strong

5178 Блог сообщений

Комментарии