Inteligência de dados generativa

Crie um aplicativo de recomendação de notícias com Amazon Personalize | Amazon Web Services

Data:

Com uma infinidade de artigos, vídeos, gravações de áudio e outras mídias criadas diariamente em empresas de mídia noticiosa, leitores de todos os tipos – consumidores individuais, assinantes corporativos e muito mais – muitas vezes têm dificuldade em encontrar conteúdo de notícias que seja mais relevante para eles. Fornecer notícias e experiências personalizadas aos leitores pode ajudar a resolver esse problema e criar experiências mais envolventes. No entanto, fornecer recomendações verdadeiramente personalizadas apresenta vários desafios importantes:

  • Capturar diversos interesses do usuário – As notícias podem abranger muitos tópicos e mesmo dentro de tópicos específicos, os leitores podem ter interesses variados.
  • Lidando com o histórico limitado de leitores – Muitos leitores de notícias têm históricos de atividades esparsos. Os recomendadores devem aprender rapidamente as preferências a partir de dados limitados para agregar valor.
  • Oportunidade e tendências – Os ciclos diários de notícias significam que as recomendações devem equilibrar o conteúdo personalizado com a descoberta de histórias novas e populares.
  • Mudando interesses – Os interesses dos leitores podem evoluir com o tempo. Os sistemas têm de detectar mudanças e adaptar as recomendações em conformidade.
  • Explicação – Fornecer transparência sobre por que certas histórias são recomendadas aumenta a confiança do usuário. O sistema de recomendação de notícias ideal compreende o indivíduo e responde ao clima e ao público mais amplo das notícias. Enfrentar esses desafios é fundamental para conectar efetivamente os leitores ao conteúdo que eles consideram informativo e envolvente.

Nesta postagem, descrevemos como Amazon Customize pode alimentar um aplicativo escalonável de recomendação de notícias. Esta solução foi implementada em um cliente de mídia da Fortune 500 no primeiro semestre de 1 e pode ser reutilizada para outros clientes interessados ​​em criar recomendadores de notícias.

Visão geral da solução

O Amazon Personalize é ideal para impulsionar um mecanismo de recomendação de notícias devido à sua capacidade de fornecer recomendações personalizadas em tempo real e em lote em grande escala. O Amazon Personalize oferece uma variedade de receitas de recomendação (algoritmos), como as receitas User Personalization e Trending Now, que são particularmente adequadas para treinar modelos de recomendação de notícias. A receita de Personalização do Usuário analisa as preferências de cada usuário com base em seu envolvimento com o conteúdo ao longo do tempo. Isso resulta em feeds de notícias personalizados que apresentam os tópicos e fontes mais relevantes para um usuário individual. A receita Trending Now complementa isso detectando tendências crescentes e notícias populares em tempo real para todos os usuários. A combinação de recomendações de ambas as receitas permite que o mecanismo de recomendação equilibre a personalização com a descoberta de histórias oportunas e de alto interesse.

O diagrama a seguir ilustra a arquitetura de um aplicativo de recomendação de notícias desenvolvido pelo Amazon Personalize e compatível com serviços da AWS.

Esta solução tem as seguintes limitações:

  • Fornecer recomendações personalizadas para artigos recém-publicados (artigos publicados há poucos minutos) pode ser um desafio. Descrevemos como mitigar essa limitação posteriormente nesta postagem.
  • O Amazon Personalize tem um número fixo de interações e recursos de conjunto de dados de itens que podem ser usados ​​para treinar um modelo.
  • No momento em que este artigo foi escrito, o Amazon Personalize não fornecia explicações de recomendações no nível do usuário.

Vamos examinar cada um dos principais componentes da solução.

Pré-requisitos

Para implementar esta solução, você precisa do seguinte:

  • Dados históricos e em tempo real de cliques do usuário para o interactions conjunto de dados
  • Metadados de artigos de notícias históricos e em tempo real para o items conjunto de dados

Ingerir e preparar os dados

Para treinar um modelo no Amazon Personalize, você precisa fornecer dados de treinamento. Nesta solução, você usa dois tipos de conjuntos de dados de treinamento do Amazon Personalize: o conjunto de dados de interações e conjunto de dados de itens. O interactions conjunto de dados contém dados sobre interações usuário-item-timestamp, e o items o conjunto de dados contém recursos dos artigos recomendados.

Você pode adotar duas abordagens diferentes para ingerir dados de treinamento:

  • Ingestão em lote - Você pode usar Cola AWS para transformar e ingerir dados de interações e itens residentes em um Serviço de armazenamento simples da Amazon (Amazon S3) em conjuntos de dados do Amazon Personalize. O AWS Glue executa operações de extração, transformação e carregamento (ETL) para alinhar os dados com o esquema de conjuntos de dados do Amazon Personalize. Quando o processo de ETL for concluído, o arquivo de saída será colocado de volta no Amazon S3, pronto para ingestão no Amazon Personalize por meio de um trabalho de importação de conjunto de dados.
  • Ingestão em tempo real - Você pode usar Fluxos de dados do Amazon Kinesis e AWS Lambda para ingerir dados em tempo real de forma incremental. Uma função Lambda executa as mesmas operações de transformação de dados que o trabalho de ingestão em lote no nível do registro individual e ingere os dados no Amazon Personalize usando o ColocarEventos e Colocar itens APIs.

Nesta solução, você também pode ingerir determinados atributos de dados de itens e interações em Amazon DynamoDB. Você pode usar esses atributos durante a inferência em tempo real para filtrar recomendações por regras de negócios. Por exemplo, os metadados do artigo podem conter nomes de empresas e setores no artigo. Para recomendar proativamente artigos sobre empresas ou setores sobre os quais os usuários estão lendo, você pode registrar a frequência com que os leitores interagem com artigos sobre empresas e setores específicos e usar esses dados com Filtros personalizados da Amazon para adaptar ainda mais o conteúdo recomendado. Discutiremos mais sobre como usar atributos de dados de itens e interações no DynamoDB posteriormente nesta postagem.

O diagrama a seguir ilustra a arquitetura de ingestão de dados.

Treine o modelo

A maior parte do esforço de treinamento do modelo deve se concentrar no modelo User Personalization, porque ele pode usar todos os três conjuntos de dados do Amazon Personalize (enquanto o modelo Trending Now usa apenas o interactions conjunto de dados). Recomendamos a realização de experimentos que variem sistematicamente diferentes aspectos do processo de treinamento. Para o cliente que implementou esta solução, a equipe realizou mais de 30 experimentos. Isto incluiu a modificação do interactions e items recursos do conjunto de dados, ajustando a duração do histórico de interações fornecido ao modelo, ajustando hiperparâmetros do Amazon Personalize e avaliando se o conjunto de dados de um usuário explícito melhorou o desempenho offline (em relação ao aumento no tempo de treinamento).

Cada variação do modelo foi avaliada com base em métricas relatadas pelo Amazon Personalize nos dados de treinamento, bem como em métricas off-line personalizadas em um conjunto de dados de teste de validação. As métricas padrão a serem consideradas incluem precisão média média (MAP) @ K (onde K é o número de recomendações apresentadas a um leitor), ganho cumulativo descontado normalizado, classificação recíproca média e cobertura. Para obter mais informações sobre essas métricas, consulte Avaliando uma versão de solução com métricas. Recomendamos priorizar MAP @ K dessas métricas, que captura o número médio de artigos em que um leitor clicou entre os K principais artigos recomendados a ele, porque a métrica MAP é um bom proxy para taxas de cliques (reais) de artigos. K deve ser selecionado com base no número de artigos que um leitor pode visualizar em uma página da web para desktop ou celular sem precisar rolar, permitindo avaliar a eficácia da recomendação com o mínimo esforço do leitor. A implementação de métricas personalizadas, como a exclusividade da recomendação (que descreve o quão único foi o resultado da recomendação no conjunto de usuários candidatos), também pode fornecer insights sobre a eficácia da recomendação.

Com o Amazon Personalize, o processo experimental permite determinar o conjunto ideal de recursos de conjunto de dados para os modelos User Personalization e Trending Now. O modelo Trending Now existe no mesmo Amazon Personalize grupo de conjuntos de dados como o modelo de personalização do usuário, portanto, ele usa o mesmo conjunto de interactions recursos do conjunto de dados.

Gere recomendações em tempo real

Quando um leitor visita a página de uma empresa de notícias, uma chamada de API será feita ao recomendador de notícias via Gateway de API da Amazon. Isso aciona uma função do Lambda que chama os endpoints dos modelos do Amazon Personalize para obter recomendações em tempo real. Durante a inferência, você pode usar filtros para filtrar a saída da recomendação inicial com base nos atributos de interação do artigo ou do leitor. Por exemplo, se “Tópico de notícias” (como esportes, estilo de vida ou política) for um atributo de artigo, você poderá restringir as recomendações a tópicos de notícias específicos se isso for um requisito do produto. Da mesma forma, você pode usar filtros em eventos de interação do leitor, como excluir artigos que um leitor já leu.

Um dos principais desafios das recomendações em tempo real é incluir efetivamente artigos recém-publicados (também chamados de itens frios) no resultado da recomendação. Os artigos recém-publicados não têm quaisquer dados históricos de interação nos quais os recomendadores normalmente dependem, e os sistemas de recomendação precisam de tempo de processamento suficiente para avaliar a relevância dos artigos recém-publicados para um usuário específico (mesmo que usem apenas sinais de relacionamento usuário-item).

O Amazon Personalize pode detectar automaticamente e recomendar nativamente novos artigos ingeridos no items conjunto de dados a cada 2 horas. No entanto, como este caso de uso está focado em recomendações de notícias, você precisa de uma forma de recomendar novos artigos assim que eles forem publicados e estiverem prontos para consumo do leitor.

Uma maneira de resolver esse problema é projetar um mecanismo para inserir aleatoriamente artigos recém-publicados na recomendação final de cada leitor. Você pode adicionar um recurso para controlar qual porcentagem de artigos no conjunto de recomendações final eram artigos recém-publicados e, semelhante à saída de recomendação original do Amazon Personalize, você pode filtrar artigos recém-publicados por atributos de artigo (como “Tópico de notícias” ) se for um requisito do produto. Você pode rastrear interações em artigos recém-publicados no DynamoDB à medida que eles começam a chegar ao sistema e priorizar os artigos recém-publicados mais populares durante o pós-processamento de recomendação, até que os artigos recém-publicados sejam detectados e processados ​​pelos modelos do Amazon Personalize.

Depois de ter seu conjunto final de artigos recomendados, essa saída é enviada para outra função Lambda de pós-processamento que verifica a saída para ver se ela está alinhada com regras de negócios pré-especificadas. Isso pode incluir verificar se os artigos recomendados atendem às especificações de layout da página da web, se as recomendações são veiculadas em um frontend de navegador da web, por exemplo. Se necessário, os artigos podem ser reclassificados para garantir que as regras de negócios sejam atendidas. Recomendamos a reclassificação implementando uma função que permite que artigos de classificação mais alta caiam na classificação apenas uma posição por vez, até que todas as regras de negócios sejam atendidas, proporcionando perda mínima de relevância para os leitores. A lista final de artigos pós-processados ​​é retornada ao serviço web que iniciou a solicitação de recomendações.

O diagrama a seguir ilustra a arquitetura desta etapa da solução.

Gerar recomendações em lote

Painéis de notícias personalizados (por meio de recomendações em tempo real) exigem que o leitor pesquise notícias ativamente, mas em nossas vidas ocupadas hoje, às vezes é mais fácil receber as principais notícias. Para entregar artigos de notícias personalizados como um resumo por e-mail, você pode usar um Funções de etapa da AWS fluxo de trabalho para gerar recomendações em lote. O fluxo de trabalho de recomendação em lote reúne e pós-processa recomendações de nosso modelo de personalização do usuário ou endpoints do modelo Trending Now, dando flexibilidade para selecionar qual combinação de artigos personalizados e de tendências as equipes desejam enviar aos seus leitores. Os desenvolvedores também têm a opção de usar o Amazon Personalize inferência em lote recurso; no entanto, no momento em que este artigo foi escrito, a criação de um trabalho de inferência em lote do Amazon Personalize não oferece suporte à inclusão de itens ingeridos após o treinamento de um modelo personalizado do Amazon Personalize e não oferece suporte à receita Trending Now.

Durante um fluxo de trabalho do Step Functions de inferência em lote, a lista de leitores é dividida em lotes, processada em paralelo e submetida a uma camada de pós-processamento e validação antes de ser enviada ao serviço de geração de email. O diagrama a seguir ilustra esse fluxo de trabalho.

Dimensione o sistema de recomendação

Para escalar de forma eficaz, você também precisa que o recomendador de notícias acomode um número crescente de usuários e aumente o tráfego sem criar qualquer degradação na experiência do leitor. Endpoints do modelo Amazon Personalize nativamente escala automática para atender ao aumento do tráfego. Os engenheiros só precisam definir e monitorar uma variável mínima de transações provisionadas por segundo (TPS) para cada endpoint do Amazon Personalize.

Além do Amazon Personalize, o aplicativo de recomendação de notícias apresentado aqui foi desenvolvido usando serviços AWS sem servidor, permitindo que as equipes de engenharia se concentrem em oferecer a melhor experiência ao leitor sem se preocupar com a manutenção da infraestrutura.

Conclusão

Nesta economia da atenção, tornou-se cada vez mais importante fornecer conteúdo relevante e oportuno aos consumidores. Nesta postagem, discutimos como você pode usar o Amazon Personalize para criar um recomendador de notícias escalável e as estratégias que as organizações podem implementar para enfrentar os desafios exclusivos de entrega de recomendações de notícias.

Para saber mais sobre o Amazon Personalize e como ele pode ajudar sua organização a criar sistemas de recomendação, confira o Guia do desenvolvedor do Amazon Personalize.

Feliz edifício!


Sobre os autores

Bala Krishnamoorthy é cientista de dados sênior na AWS Professional Services, onde ajuda os clientes a criar e implantar soluções baseadas em IA para resolver seus desafios de negócios. Ele trabalhou com clientes em diversos setores, incluindo mídia e entretenimento, serviços financeiros, saúde e tecnologia. Em seu tempo livre, ele gosta de passar tempo com a família/amigos, manter-se ativo, experimentar novos restaurantes, viajar e começar o dia com uma xícara de café bem quente.

Rishi Jala é arquiteto de dados NoSQL com AWS Professional Services. Ele se concentra na arquitetura e construção de aplicações altamente escaláveis ​​usando bancos de dados NoSQL, como o Amazon DynamoDB. Apaixonado por resolver os problemas dos clientes, ele oferece soluções personalizadas para impulsionar o sucesso no cenário digital.

local_img

Inteligência mais recente

local_img