7 Projeto de arquitetura de sistema recomendado

  • 7.1: Modelo básico do sistema de recomendação
  • 7.2: Arquitetura comum recomendada do sistema
  • 7.3: Software comumente usado, usado para design de arquitetura.
  • 7.4: Alguns problemas comuns

7.1 Modelo básico do sistema de recomendação

  • O sistema de recomendação é aprendizado supervisionado
    • Aprendizagem supervisionada sub-aprendizagem e previsão
  • O sistema de aprendizagem usa uma determinada amostra de treinamento
    • O modelo é obtido após o treinamento e, em seguida, o modelo será usado para prever o sistema de previsão.
  • O sistema de previsão fornece previsões para as amostras de teste fornecidas pelo modelo

Insira a descrição da imagem aqui

  • O objetivo do sistema de recomendação
    • Treine efetivamente o modelo através do sistema de aprendizado para que os resultados do sistema de previsão estejam próximos dos resultados reais das amostras de teste
  • Conteúdo previsto,
    • Gosta de um pedaço de informação, uma música ou um vídeo
    • Probabilidade de comprar um determinado produto
  • Otimização do sistema de recomendação,
    • Passe (modelos, algoritmos, dados, recursos),
    • Melhore a precisão dos resultados da previsão,
    • Os itens recomendados para o usuário estão mais próximos das verdadeiras preferências do usuário

  • A quantidade de dados do usuário processados ​​pelo sistema de aprendizado será maior, os dados terão mais dimensões e o modelo de recomendação usado também será mais complicado
  • Modelo de colaboração, modelo de conteúdo e modelo de conhecimento
  • O modelo colaborativo adivinha principalmente o que eu gosto com base no que meus amigos gostam;
  • O modelo de conteúdo é baseado no próprio item para prever que o usuário gosta de A e também pode gostar de B;
  • O modelo de conhecimento é baseado nas condições limitadas do usuário e recomendado de acordo com suas necessidades

  • O design da arquitetura do sistema recomendado é baseado no modelo básico de aprendizado supervisionado e personalizado de acordo com as necessidades da empresa. Polir um sistema de recomendação adequado às necessidades do negócio.
  • No sistema de aprendizado, os dados devem ser relatados, limpos e estruturados em recursos.
  • Você precisa de uma plataforma para armazenar e processar dados.
  • Dependendo da quantidade de dados e do tipo de dados, o sistema de aprendizado pode precisar ser personalizado.
  • No sistema de previsão, a solicitação de previsão precisa ser atendida e empacotada como uma API para chamadas comerciais.
  • Ao mesmo tempo, também precisamos garantir a confiabilidade e a escalabilidade dos serviços online.

  • Em seguida, introduza primeiro a arquitetura comumente usada do sistema de recomendação,
    • Em seguida, com base no entendimento dessas arquiteturas, introduza alguns componentes comuns de cada módulo,
    • Por fim, introduza alguns problemas comuns do sistema de recomendação.

7.2 Arquitetura comum do sistema de recomendação

  • As várias arquiteturas de sistema de recomendação apresentadas nesta seção não são independentes, e os sistemas de recomendação reais podem usar uma ou mais dessas arquiteturas.
  • Na prática, a arquitetura introduzida neste artigo pode ser usada como ponto de partida para o design, e um pensamento mais independente deve ser combinado com suas próprias características de negócios para projetar um sistema adequado para seus próprios negócios.

  • Um sistema de recomendação baseado em treinamento offline e treinamento online em resposta à velocidade do comportamento do usuário.
  • Sistema de recomendação usando aprendizado de máquina tradicional e aprendizado profundo
  • Devido à importância dos negócios, uma categoria separada é introduzida: sistema de recomendação orientado a conteúdo.
  • No final de cada seção, os problemas encontrados no design real do sistema serão introduzidos,
    • Para referência de design.

7.2.1 Projeto de arquitetura do sistema de recomendação baseado em treinamento offline

  • "Off-line"
  • Treine com dados históricos por um período de tempo (uma semana ou semanas),
    • O ciclo de iteração do modelo é longo (em horas)
  • Montagem é o interesse de médio e longo prazo do usuário.
  • Mercado de aplicativos móveis, recomendação de música
  • O treinamento "on-line" refere-se ao treinamento incremental em tempo real,
    • O modelo é necessário para responder rapidamente a cada amostra de treinamento.
    • O usuário está assistindo a um vídeo de comida e permanece por um longo tempo,
    • Em seguida, o próximo sistema de recomendação de vídeo recomendará mais vídeos semelhantes a você após detectar seu interesse a curto prazo
    • A frequência de atualização dos dados de treinamento é em segundos.
    • Informações, compras, recomendação de vídeo curta

  • Sistema de recomendação baseado em treinamento offline: regressão logística, árvore de decisão para levantamento de gradiente
    • Máquina de fatoração

Insira a descrição da imagem aqui

  • Relatórios de dados e treinamento offline: sistema de aprendizado
  • Cálculo em tempo real e teste A / B: sistema de previsão
  • Há também um módulo de armazenamento online,
    • Armazene o modelo e as informações das características exigidas pelo modelo para o módulo de cálculo em tempo real chamar
  • Os módulos na figura formam dois fluxos de dados para treinamento e previsão.
    • O fluxo de dados de treinamento coleta dados comerciais e, finalmente, gera o modelo e os armazena no módulo de armazenamento online;
    • O fluxo de dados previsto aceita a solicitação de previsão de negócios e acessa o módulo de cálculo em tempo real através do módulo de teste AB para obter o resultado da previsão.
  • O fluxo de dados de treinamento precisa processar uma grande quantidade de dados de treinamento e o ciclo de atualização é mais longo, em horas,
    • Portanto, a arquitetura correspondente é chamada de arquitetura baseada em treinamento offline
  • O fluxo de dados previsto é usado para negócios na Internet e o atraso é de dezenas de milissegundos.
    • Isso cria requisitos de arquitetura diferentes para cada módulo nos dois fluxos de dados para treinamento e previsão.

  • Definir dados comerciais para formar amostras de treinamento
  • Sub-coleta, verificação, limpeza e conversão
  • Precisa coletar dados da empresa.
  • Dirigido a negócios, coletado de várias dimensões de itens, usuários, cenas,
    • As amostras de dados principais devem garantir a qualidade.
    • Quantifique tudo, quanto melhor, melhor
  • Verifique a precisão dos dados relatados para evitar relatar erros lógicos, desalinhamento de dados ou dados ausentes
  • Para garantir a credibilidade dos dados, é necessário limpar os dados sujos.
    • Limpeza de dados comum: verificação de valor nulo, valor anormal, tipo anormal, deduplicação de dados
  • Conversão de dados, transforme os dados coletados no formato de amostra necessário para o treinamento,
    • Salve no módulo de armazenamento offline.
  • A qualidade dos dados é muito importante, se o resultado da previsão é preciso,
    • Dependendo da força do modelo, mais importante é a qualidade e a quantidade dos dados de treinamento.

Insira a descrição da imagem aqui

  • Treinamento offline Módulo de treinamento offline Armazenamento de linha separado e cálculo offline
  • O armazenamento offline requer um sistema de arquivos distribuído ou plataforma de armazenamento
  • Operações comuns para cálculo offline: amostragem de amostra, engenharia de recursos, treinamento de modelos, cálculo de similaridade

  • A amostragem projeta as amostras razoavelmente e fornece informações de alta qualidade para o treinamento do modelo, treinando assim um modelo mais ideal.
  • Definir razoavelmente amostras positivas e negativas, na prática, geralmente encontra desequilíbrio positivo e negativo
    • É resolvido com pesos e combinações de punições, etc.
    • Combine com o entendimento dos negócios, projete racionalmente amostras positivas e negativas.
  • Ao projetar amostras, tente garantir o equilíbrio do número de amostras do usuário.
  • Para tráfego malicioso de escova e usuários de robôs, a desduplicação de amostra garante o equilíbrio do número de amostra do usuário.
  • Dê a devida consideração à diversidade de amostras. Enriqueça a fonte de amostras coletando amostras de usuários independentes do algoritmo de recomendação atual.

  • A engenharia de recursos usa o conhecimento relacionado ao domínio para obter o máximo de informações possível dos dados originais, e os recursos são usados ​​para melhorar os efeitos do treinamento do modelo.
  • A seleção de recursos seleciona um conjunto dos subconjuntos de recursos estatisticamente mais significativos do conjunto de recursos através das etapas da função de avaliação, critério de parada e processo de verificação.
  • A extração de recursos utiliza análise de componentes, análise discriminante e outros métodos para transformar e combinar recursos originais para construir novos recursos principais com significado comercial ou estatístico.
  • Terceiro, a combinação de recursos combina incorporação multimodal e outros métodos para combinar vetores de recursos de usuários, itens e planos de fundo para obter informações complementares.

  • Após as duas primeiras etapas, o treinamento do modelo usa um determinado conjunto de dados para obter um modelo por meio do treinamento, que é usado para descrever o mapeamento entre as variáveis ​​de entrada e saída.
  • Na prática, considerando a necessidade de lidar com conjuntos de treinamento em larga escala, geralmente serão selecionados algoritmos de tempo lineares que podem ser distribuídos para treinamento.

Insira a descrição da imagem aqui

  • Além dos módulos mencionados no sistema de recomendação da Figura 7.1 e Figura 7.2, também há um módulo de armazenamento online
  • Os serviços online têm requisitos estritos de latência.
  • O usuário abre o aplicativo e espera responder rapidamente
  • Isso requer que o sistema de recomendação processe a solicitação do usuário e retorne os resultados da recomendação em dezenas de milissegundos.
  • Para serviços online, deve haver um módulo de armazenamento online dedicado,
    • Armazene dados de modelo e recurso para online
  • O módulo de armazenamento online requer memória local ou memória distribuída
  • Para tornar o armazenamento on-line o mais rápido possível, com base no software de código aberto, você também pode fazer algumas personalizações, estratégia de cache, estratégia incremental, estratégia de expiração diferida, unidade de estado sólido

Insira a descrição da imagem aqui

  • O módulo de recomendação em tempo real prevê novas solicitações de negócios
  • Abra o APP, o APP envia uma solicitação ao servidor em segundo plano,
    • Após receber a solicitação, o servidor adivinha suas preferências com base no histórico anterior do usuário no mercado de aplicativos
    • Em seguida, retorne uma lista de aplicativos recomendados para o aplicativo móvel e apresente-a ao usuário na interface do aplicativo.
  • O módulo de cálculo em tempo real requer os seguintes cálculos:
    • (1) Para obter características do usuário, o sistema lê o retrato e o comportamento histórico do usuário no módulo de armazenamento on-line de acordo com o ID do usuário na solicitação e constrói as características do modelo do usuário.
    • (2) Chamar o modelo de recomendação, combinar o modelo de usuário para chamar o modelo de algoritmo do sistema de recomendação e obter a probabilidade de preferência do usuário para itens em um determinado pool de candidatos a APP;
    • (3) Classifique os resultados, classifique os resultados da pontuação do pool de candidatos e retorne a lista de resultados ao aplicativo móvel.
  • O módulo de cálculo em tempo real precisa ler muitos dados do módulo de armazenamento on-line,
    • Conclua um grande número de pontuação de modelo em pouco tempo
    • O módulo possui requisitos de alto desempenho.
  • Este módulo é uma estrutura de computação distribuída para concluir tarefas de computação.

  • A lista de itens de negócios é muito grande,
    • Cálculo em tempo real para pontuar cada item usando um modelo complexo,
    • Demora demais
  • Divida a geração da lista de recomendações em recall e classificação
  • Lembre-se: selecione um conjunto de candidatos (centenas) entre um grande número de candidatos (milhões)
  • A classificação usa o modelo de classificação para pontuar o conjunto de candidatos relativamente pequeno obtido pelo recall
  • Depois que a lista de recomendações é classificada,
    • Por questões de diversidade e operacionais,
    • Adicione também a terceira filtragem de reorganização por etapas, usada para processar a lista recomendada após a classificação fina
  • A filtragem de rearranjo fornece aos usuários algum conteúdo exploratório,
    • Evite que o conteúdo que os usuários veem na plataforma seja muito homogêneo, filtre ilegalmente vulgar
  • A arquitetura é mostrada na Figura 7.6

Insira a descrição da imagem aqui

aqui

7.3 Componentes comuns do sistema de recomendação

7.3.1 Componentes comuns para relatórios de dados

  • Plataforma de processamento de fluxo de código aberto Apache Kafka
  • Estrutura de processamento de alta produtividade e baixa latência para fontes de dados em tempo real.
  • Logicamente, é uma implementação distribuída de filas de múltiplos produtores e vários consumidores
  • As mensagens são gerenciadas por tópico, um tópico pode ter vários produtores e consumidores
  • Os produtores produzem mensagens e as enviam para um tópico, e os consumidores que assinam o tópico recebem mensagens do tópico

Insira a descrição da imagem aqui

7.3.2 Armazenamento offline de componentes comuns

  • O HDFS (Sistema de Arquivos Distribuídos Hadoop) é um sistema de arquivos distribuídos amplamente usado.
  • Baixo custo, alta confiabilidade e alto rendimento.
  • Seu mecanismo de tolerância a falhas permite ao HDFS criar um sistema de arquivos distribuído com base em hardware de baixo custo e ainda pode fornecer armazenamento confiável, mesmo se houver falhas nos componentes.

  • O Hive é um data warehouse baseado no Hadoop, com funções SQL mais completas,
    • Use HDFS como o armazenamento subjacente
  • É conveniente que pessoas familiarizadas com o SQL operem dados sem programação complicada.
  • A escala de dados atinge centenas de PB e suporta o armazenamento de dados estruturados.

7.3.3 Componentes comuns para computação offline

  • O Apache Spark é uma estrutura de computação distribuída de alto desempenho baseada no processamento de dados na memória,
  • APIs simples, flexíveis e poderosas ajudam os usuários a desenvolver programas eficientes para análises de dados complexas.
  • O Spark fornece um modelo de computação Mapreduce semelhante ao Hadoop, mas, diferentemente do Hadoop, o Spark usa uma estrutura de dados intermediária baseada em memória, o que facilita o suporte a cargas de trabalho que exigem várias iterações.

  • tensorflow
  • Estrutura de software de código aberto para cálculo numérico de gráficos de fluxo de dados.
  • API poderosa e diversificada para os pesquisadores desenvolverem várias aplicações.

  • O tensorflow distribuído fornece suporte para servidores de parâmetros.
  • Diferente de outros servidores de parâmetros
    • O servidor de parâmetros do Tensorflow atualiza os parâmetros implicitamente
    • Os programadores não precisam pressionar e puxar manualmente esses parâmetros.
  • Facilite o desenvolvimento do servidor de parâmetros com base no tensorflow
  • A principal tarefa de escrever programas distribuídos de tensor-fluxo,
    • Torna-se como distribuir os parâmetros para diferentes servidores de parâmetros razoavelmente,
    • Configure os parâmetros por meio da interface de configuração do cluster, da interface designada do dispositivo e da interface do modo síncrono.

7.3.4 Armazenamento online de componentes comuns

Publicado 589 artigos originais · 300 elogios · Mais de 80.000 visualizações

Acho que você gosta

Origin blog.csdn.net/zhoutianzi12/article/details/105619174
Recomendado
Clasificación