Como podemos 'projetar' um mecanismo de recomendação inteligente?

Como podemos projetar um sistema que pode aprender a entender as nuances do comportamento do usuário, levar em consideração vários aspectos do negócio e, em seguida, analisar estatisticamente a melhor recomendação, com o equilíbrio certo?

Naren Katakam Blocked Unblock Seguir Seguindo 7 de janeiro Crédito de imagem @ fesq project

de Naren Katakam

Em média, fazemos cerca de 70 decisões conscientes em um dia típico. Nosso cérebro faz dezenas de micro decisões (decisões booleanas) a cada segundo. Escolhas, sub-escolhas, super-sub-escolhas, minúsculas pequenas decisões que constroem árvores de decisão e florestas para chegar a uma decisão macro. Leva alguns segundos às vezes e às vezes até dias a anos para chegar a um. Não podemos viver nossas vidas diárias sem decidir sobre algo. A tomada de decisões é parte integrante da nossa vida, alguns até consideram uma arte e outros a chamam de proficiência. Seja uma arte ou uma proficiência, uma coisa é certa, sempre há alguém no centro dela, o tomador de decisões. Se você acredita na hipótese de simulação ou na lei da atração , é tudo sobre a pessoa no centro, o tomador de decisão, um humano, um agente ou um sistema automatizado (uma entidade), que escolhe uma escolha particular entre as opções disponíveis .

Crédito de imagem @ fesq project

O decisor e a melhor escolha

O tomador de decisão ou a entidade é considerado “inteligente” ou “inteligente” se houver um critério ou razão subjacente para escolher uma opção em particular. O grau de inteligência ou inteligência é determinado pela capacidade de escolher a “melhor” escolha entre as opções disponíveis (obviamente, a entidade ou a seleção não é considerada inteligente se a escolha for aleatória). Agora, o que esses critérios ou fundamentos subjacentes funcionam? IMO, existem três aspectos centrais que são absolutamente essenciais para escolher a melhor escolha, primeiro, 'informação disponível' , que ajuda a identificar, eliminar e estreitar as opções (às vezes, o ruído das observações aumenta o esforço para eliminar opções, resulta em má qualidade das decisões). Em segundo lugar, o "tempo" , o tempo total disponível para tomar a decisão que fornece um senso de urgência ou latência ao ato. Finalmente, a "recompensa" , que é principalmente a principal motivação para tomar a decisão. Para o propósito deste artigo, vamos nos concentrar na primeira parte deste raciocínio, a 'informação disponível'.

O investigador, informações disponíveis e o doador

Como coletamos as informações necessárias antes de escolher a melhor opção? Depende da situação, não é? se é uma situação repetitiva, então dependemos de um modelo mental previamente construído, em outras palavras, "experiência". Se é uma situação nova, construímos modelos mais novos com informações disponíveis e dependemos do modelo de experiência para futuras ocorrências. Temos a tendência de depender de nossas preferências pessoais para escolhas mais simples, mas, quando se trata de decisões complexas, tendemos a coletar mais informações. Um dos hacks rápidos que nosso cérebro emprega na solução de um problema de decisão complexo depende da recomendação de um especialista. Por que não? Somos seres sociais, por que não usar informações sociais (especialmente quando nos deparamos com a falta de informações necessárias) para resolver um problema de decisão preocupante. Mas espere, como filtramos essas recomendações sociais? É aí que entra a confiança . Confiança, um modelo confiável que nosso cérebro constrói ao longo de um período de tempo, baseado em experiências passadas para hackear uma complexa tarefa de tomada de decisão. Agora, para certas situações, todo o processo de tomada de decisão se resume à relação binária entre 'o buscador' (o tomador de decisão) e 'o doador' (o especialista que dá a recomendação).

Crédito de imagem @ fesq project

Atributos principais de um especialista

Quais são os principais atributos de um “especialista” que pode nos dar a melhor recomendação? Ser “especialista” no assunto é certamente um critério importante, também estabelecemos “confiança” para ser um fator de qualificação em nosso modelo mental, “acessibilidade” é outro atributo que pode atrair diretamente o componente de tempo sobre o qual falamos anteriormente e sim, deve ser “inteligente” para entender o buscador e o “contexto” para dar a recomendação mais “relevante” e “precisa” para qualificá-la como a “melhor” recomendação das opções disponíveis.

O que acontece no mundo real?

Vamos entender esse modelo a partir de um contexto comercial e de negócios. Quando você entra em uma loja, uma loja real (loja off-line com paredes, móveis, mercadorias e vendedores), os vendedores agem ou se aproximam como os especialistas em uma loja para nos guiar em nosso processo de tomada de decisões. receber treinamento sobre o processo de vendas, eles têm conhecimento sobre os números de lucro do negócio e são treinados para responder às nossas perguntas sobre o produto e para nos ajudar a fazer a melhor escolha. Do ponto de vista de negócios, os vendedores não são escaláveis, nem economicamente viáveis, por isso as empresas inventaram um hack não técnico chamado POGs (Plan-o-grams ou Planograms) para organizar itens para aumentar a visibilidade em lucros altos e altos. itens de frequência para aumentar as receitas e otimizar os espaços das lojas. Algumas lojas on-line emprestaram a mesma ideia para exibir seus itens de alta lucratividade e alta frequência em seus layouts de página inicial para otimizar suas vendas. O problema com lojas online é a ausência de um guia de vendas definitivo e população de suas lojas online com a abundância de opções. Às vezes, há muitas opções e muitas opções disponíveis e os usuários não gostam de investir seu tempo em percorrer todo o catálogo para encontrar a melhor opção. Uma resposta óbvia para esse problema é um sistema de recomendação inteligente , um sistema que pode imitar a função de um vendedor, um sistema que pode reduzir a carga de trabalho dos usuários que estão sobrecarregados pelo número de opções disponíveis. Não apenas ajuda na redução de opções; Normalmente, em uma jornada do cliente, os clientes passam por estágios como necessidade, conscientização, pesquisa, comparação, decisão e compra. Além da necessidade inicial e da etapa final de compra, um sistema de recomendação inteligente deve ser capaz de auxiliar os clientes nas etapas de conscientização, pesquisa e decisão.

Crédito de imagem @ fesq project

Todo produto ou negócio de sucesso tem um forte mecanismo de recomendação em seu núcleo.

Amazon's – “Clientes que compraram este item também compraram…”.

Netflix – "Outros filmes que você pode aproveitar …"

Spotify's – “Músicas recomendadas…”

Google – "Imagens visualmente semelhantes …"

YouTube's – "Vídeos recomendados …"

Facebook – "Pessoas que você pode conhecer …"

LinkedIn – "Jobs você pode estar interessado em …"

Coursera's – “cursos recomendados…” e

Waze's – “Melhor Rota…”

são todos resultados de fortes sistemas de recomendação no núcleo desses negócios. O impacto desses sistemas de recomendação é imenso do ponto de vista de negócios também.

De acordo com o artigo da McKinsey , 35% das receitas da Amazon e 75% do que as pessoas assistem no Netflix vêm de seus mecanismos de recomendação.

Componentes Macro de um Intelligent Recommendation Engine

Agora, a partir do contexto da construção de um produto ou serviço com um forte sistema de recomendação em vigor; pode ser mais fácil construir um sistema baseado em heurística, rápido e automático, mas, como podemos colocar o tomador de decisão, o usuário no controle? Como podemos construir um 'motor' de recomendação inteligente que imite a natureza humana dinâmica e interativa entre o buscador e o doador? Como podemos construir um mecanismo para entender o contexto, capturar o feedback imediato sobre os itens recomendados e também calcular os benefícios a longo prazo para você, como um amigo? Antes disso, vamos entender um dos macrocomponentes importantes de um sistema de recomendação inteligente – modelos de filtragem. O que é um modelo? De acordo com este artigo “Modelos Correrão o Mundo” de Steven A. Cohen e Matthew W. Granade :

“Um modelo é uma estrutura de decisão na qual a lógica é derivada por algoritmo a partir de dados, em vez de explicitamente programada por um desenvolvedor ou implicitamente transmitida por meio da intuição de uma pessoa. A saída é uma previsão na qual uma decisão pode ser tomada. Uma vez criado, um modelo pode aprender com seus sucessos e fracassos com velocidade e sofisticação que os humanos normalmente não conseguem igualar ”.

Em suma, os modelos são a verdadeira fonte de poder por trás de sistemas robustos de negócios e os modelos de recomendação (filtragem) são um dos temas de pesquisa mais populares para os cientistas de dados atualmente. Existem 5 tipos de modelos de filtragem de recomendação que eu encontrei: (a palavra 'filtragem' é usada porque, a filtragem é um requisito comum fundamental ao lidar com grandes conjuntos de dados, a filtragem ajuda a focar em dados relevantes).

Tipos de modelos de filtragem

1. Popularity Filtering Model: Este é o mais básico e simples de todos os modelos, as recomendações são baseadas no número de visualizações, curtidas, classificações ou compras. Os itens mais populares na plataforma (produto) são recomendados para todos os usuários. A limitação deste modelo é que ele é unidimensional, ou seja, as recomendações permanecem as mesmas para todos os usuários.

2. Modelo de Filtragem Colaborativa: Este é um modelo colaborativo de usuário-usuário, é mais como uma extensão do modelo de popularidade, mas micro e mais personalizado. As informações são coletadas nos usuários para localizar usuários semelhantes e as recomendações fluem com base nas interações de um usuário na plataforma para outro usuário semelhante. A limitação desse modelo é que o desempenho do sistema diminui à medida que a base de usuários cresce. Às vezes, os usuários são agrupados em pares e grupos para acelerar as coisas. Os proprietários de produtos de trade-off precisam fazer com que a personalização do usuário seja uma parte favorável à velocidade do produto.

3. Modelo de Filtragem de Conteúdo: A ideia aqui é semelhante ao modelo colaborativo, exceto que a correlação é encontrada entre itens e não usuários. Essa é a razão pela qual esse modelo também é conhecido como modelo colaborativo item-item. No entanto, é extremamente crucial que os proprietários de produtos definam uma estrutura de similaridade forte. A vantagem deste modelo é que a relação entre itens pode ser mais estável (depende da estrutura de similaridade) do que usuários e em geral os itens são uma base menor comparada à base de usuários, a velocidade do sistema permanece boa mesmo se a base de usuários cresce.

4. Modelo de Mineração da Regra de Associação: A ideia aqui é uma extensão do modelo de filtragem de conteúdo. A diferença é que o foco é deslocado dos “itens” para uma “sessão”. O que isso significa é que os itens que aparecem juntos na mesma 'sessão' são recomendados para outros usuários na plataforma. Por exemplo, uma regra de associação poderia ser: 80% dos usuários que gostam do item A e do item B também gostam do item C; e 20% de todos os usuários gostam dos três itens. Outra regra poderia ser: 70% de todos os itens favoritos pelo usuário X e pelo usuário Y também são curtidos pelo usuário Z e 30% de todos os itens são apreciados pelos três usuários. O conceito é baseado em regras de associação e a correlação é formada com base na "aparência" na mesma sessão. A limitação desse modelo é que ele é menos personalizado em comparação com modelos de filtragem de conteúdo colaborativos ou até mesmo de conteúdo.

5. Hybrid Filtering Model: Como o nome sugere, este modelo combina duas ou mais técnicas de filtragem para obter um melhor desempenho. Geralmente, os métodos de filtragem colaborativa são combinados com métodos de filtragem de conteúdo em abordagens em camadas, ponderadas, comutadas, mistas e em cascata para alcançar os resultados desejados. A vantagem deste modelo é que ele é mais poderoso, mais estável e mais relevante comparado aos outros modelos.

Como podemos melhorar o modelo de filtragem híbrida com aprendizado de máquina?

Até agora, os modelos acima têm apresentado um bom desempenho no mundo dos produtos e negócios. No entanto, a suposição fundamental em torno do conceito desses modelos requer um relook. Por exemplo, se usarmos o modelo robusto de filtragem híbrida, a suposição básica aqui é que – a recomendação 'melhor' proposta para um usuário é aquela que outros usuários com um perfil comparável em um estado comparável que escolheram o mesmo ou um produto similar . Em outras palavras, a suposição é que, estatisticamente, o produto recomendado é o que o usuário teria escolhido com ou sem a recomendação. O sistema está escolhendo o melhor. Mas, o usuário realmente teria escolhido o mesmo produto sem a recomendação? As recomendações mudam o comportamento do usuário ou simplesmente encurtam o caminho de uma escolha inevitável? Essencialmente, o assunto da recomendação reduz a análise estatística da compreensão dos usuários, produtos e seu relacionamento. O objetivo do projeto do sistema deve ser reduzir as informações ou dados que são inúteis e irrelevantes para tomadas de decisões eficazes e para estimular a ação de compra do usuário. A questão é como podemos improvisar? Como podemos projetar um sistema que pode aprender a entender as nuances do comportamento do usuário, levar em consideração vários aspectos do negócio e, em seguida, analisar estatisticamente a melhor recomendação, com o equilíbrio certo?

Crédito de imagem @ fesq project

Captura de dados implícita e explícita no nível de design de produto

Uma vez que o assunto agora se resume a análise estatística e relacionamentos, e quando falamos de análises e técnicas estatísticas modernas para identificar padrões de grandes conjuntos de dados, técnicas de aprendizado de máquina e mineração de dados se tornam uma escolha óbvia. Os dados são o componente mais essencial de qualquer modelo e os modelos de aprendizado de máquina prosperam nos dados. No entanto, o tratamento de dados pode ser bastante complicado, e há muitas coisas que podem dar errado, como dados inconclusivos, ruído nos dados, disponibilidade de dados, viés na coleta de dados e intervalos de confiança. Os dados também são extremamente importantes para manter a 'entropia' de todo o sistema sob controle. Quanto mais puros forem os conjuntos de dados e seus subconjuntos, a entropia mínima do sistema será no longo prazo.

Para gerar recomendações personalizadas, específicas e personalizadas, é essencial entender os usuários com precisão e o primeiro passo para compreendê-los com precisão é coletar os dados corretos sobre eles. Os dados do usuário podem ser coletados "implicitamente" , que é registrar o comportamento do usuário e reconhecer padrões e "explicitamente" , que é coletar dados por consulta específica. Veja abaixo um exemplo de um aplicativo para dispositivos móveis que eu projetei. Na tela lateral esquerda, você verá a abordagem implícita, em que calendário, contatos e dados de localização são capturados para entender o usuário implicitamente e identificar os primeiros padrões. No lado direito da tela, você verá a abordagem interrogativa explícita onde as informações sobre os 'interesses' do usuário são capturadas em bolhas dinâmicas que sobem da parte inferior da tela, bolhas mais recentes são baseadas na seleção anterior do usuário (idéia interativa aqui) é para gamify uma tarefa mundana de interrogatório e torná-lo divertido para o usuário se envolver e compartilhar mais informações). O objetivo é aprender com a reação do usuário sobre a relevância dos itens para o usuário e formar um relacionamento com o conteúdo que seguirá nas próximas telas.

Depois de capturar os dados básicos necessários e formar os conjuntos de dados, devemos ser capazes de gerar a primeira camada de recomendações (Reco.1) na Figura 6 abaixo e também possivelmente identificar “usuários semelhantes” (se tivermos definido o framework em Lugar, colocar). A investigação implícita que começou com as telas de integração pode fluir para as telas de conteúdo principais, consultas implícitas e explícitas podem ser projetadas bem nas sessões e registrar o comportamento do usuário para identificar padrões (se houver) para ações futuras. Com base nessas capturas, podemos formar vários conjuntos de dados como o conjunto de dados # 4 ( veja a Figura 6 abaixo ), que, por sua vez, forma a entrada para gerar a segunda camada de recomendações (Reco.2) como um loop.

Um exemplo de uma investigação explícita pode ser vista nas telas abaixo, captura e análise em tempo real seguidas por população de conteúdo relevante. Enquanto o conjunto de dados # 4 é gerado com entradas do usuário, o conjunto de dados # 5 aqui é gerado pelo sistema, seguindo um algoritmo na identificação de itens semelhantes e preenchendo o conteúdo de acordo como a terceira camada de recomendações (Rec.3).

Enquanto Reco.1 é unidimensional, Reco.2 e Reco.3 são multidimensionais e baseados no aprendizado do sistema, aprendendo com usuários similares e itens semelhantes. O objetivo do design do sistema é aumentar a eficácia dos dados, tornando-o mais relevante para estimular a ação de compra do usuário. Se o produto tiver ofertas especiais como um recurso, a complexidade da tarefa aumentará em alguns pontos com os frequentes preços variáveis adicionados à equação ( como a tela à direita na imagem abaixo ).

Um bom mecanismo de recomendação deve estar em condições de aprender, adaptar e fornecer sempre a melhor recomendação. Isso é possível se pudermos modelar o mecanismo para analisar os dados históricos sobre o usuário em relação ao item ou itens que o usuário pode estar navegando em um determinado momento usando a análise em tempo real. A análise em tempo real pode infundir um senso de ' proatividade' ao sistema que é diferente da natureza atual ' reativa' dos mecanismos de recomendação que dependem predominantemente da análise de apenas dados históricos. Um dos exemplos rápidos de análise em tempo real é o Penguin 4.0, do Google . O Google atualizou seu algoritmo de classificação de sites, o Penguin 4.0, em tempo real (ano de 2016). O que isto significa é que os dados da Penguin são atualizados em tempo real, então as mudanças no ranking da página aparecem muito mais rapidamente do que antes (ano de 2016).

Uma interface de conversação natural que permite interações simples seria extremamente valiosa na captura de dados em tempo real. As telas abaixo que projetei para essa finalidade demonstram exatamente isso, uma evolução do design de interface, um conceito de agente virtual apoiado por um mecanismo de recomendação inteligente em segundo plano capaz de até mesmo sentir o estado emocional do usuário para se adaptar e sugerir a melhor recomendação que se encaixa perfeitamente na necessidade do usuário, às vezes até antes da necessidade. O poder da previsão ajuda muito a demonstrar o valor do produto e a construir confiança. É mais como um experimento de pensamento intrigante. Mas, certamente, estamos nos aproximando cada dia de tais estados oníricos e experiências de produto sonhadoras.

Inclusão de Smarts Sistêmicos

Assim, o aprendizado do mecanismo de recomendação acontece passo a passo. Aprendizagem orientada a objetivos a partir de dados históricos, aprendendo com interações em tempo real, aprendendo com tentativas e erros no ambiente, com recompensas e penalidades para obter melhores precisões é precisamente a tarefa de Aprendizagem por Reforço (RL), uma das disciplinas mais fascinantes da máquina Aprendendo. O aprendizado por reforço funciona como um multiplicador de aprendizado multidimensional sobre esse modelo. De acordo com um dos trabalhos mais padronizados e abrangentes sobre RL, “Aprendizado por Reforço: Uma Introdução”, de Richard S. Sutton e Andrew G. Barto, há dois elementos principais e três subelementos-chave para um modelo de RL. Dois elementos – um agente e seu ambiente . Três subelementos, uma política , um sinal de recompensa e uma função de valor .

“Elementos: Um 'agente' é o agente ativo de tomada de decisão e seu 'ambiente' é o espaço ou estrutura dentro do qual o agente busca alcançar uma meta apesar da incerteza. Subelementos: Uma 'política' define o modo como o agente de aprendizagem se comporta em um determinado momento. Um "sinal de recompensa" define o objetivo em um problema de aprendizado por reforço. Uma 'função de valor' especifica o que é bom a longo prazo. ”

De acordo com nosso modelo e contexto, o agente de tomada de decisão ativo sistêmico (não confundir com o tomador de decisões humano que discutimos anteriormente) e seu ambiente aqui é o modelo de mecanismo de recomendação ( da Fig.6 ), estendendo-se do conjunto de dados # 1 a Reco.3. Uma política é um mapeamento de cada estado e ação. Por exemplo, ação para lançar Reco.2 como sugestões para um novo usuário com base no estado de interações de um usuário antigo semelhante. A recompensa final do modelo aqui é a compra do produto pelo usuário. Uma recompensa mais imediata é a reação do usuário, como compartilhar o produto com um amigo ou gostar dele ou marcá-lo como favorito ou adicionar aos favoritos. A função valor pode ser o acúmulo de várias recompensas, começando da primeira interação com o sistema até a extrapolação e correção do futuro. A capacidade de corrigir a função de valor para um valor incremental ao longo do tempo pode permitir que o sistema adicione os dois valores ao negócio e deleite para o usuário a longo prazo.

Uma vez que o motor ou sistema atinja níveis satisfatórios de precisão, o próximo passo pode ser o apropriado quociente de dissimilaridade dos itens. Isso pode ajudar o sistema a incorporar o elemento surpresa nas recomendações. IMO, obtendo o elemento surpresa certo é encontrar o Santo Graal de um mecanismo de recomendação.

Crédito de imagem @ fesq project

O Santo Graal

O elemento surpresa nesse contexto é a capacidade do mecanismo de recomendação de recomendar um item diferente dos itens conhecidos para um determinado usuário em uma determinada situação. Quanto mais dissimilar e não óbvio for um item do conhecido, mais surpresas o usuário poderá ter. O elemento surpresa como um componente se encaixa na seção de filtragem de conteúdo do modelo híbrido porque chegar a um quociente de dissimilaridade é o outro lado da compreensão de itens semelhantes. A natureza fortuita de descobrir um item interessante que o usuário pode não ter descoberto de outra forma aumentará o prazer e ajudará o sistema a formar uma ligação mais profunda com o usuário. Isso também ajudará a construir o elemento 'confiança' de que falamos anteriormente neste post (a confiança é um tema fascinante para se estudar a teoria dos jogos ). Se tivermos que definir 'serendipity' como uma propriedade de um mecanismo de recomendação inteligente, os dois fatores mais fundamentais dos quais a serendipity depende são 'relevância' e 'tempo' . A partir daqui, podemos aprofundar as equações em evolução para o elemento surpresa, serendipidade, confiança e como tudo se encaixa na equação geral do mecanismo de recomendação gigantesco. Transformar uma recomendação surpresa em uma ocorrência fortuita no contexto do mecanismo de recomendação é equivalente ao movimento da mão de Deus (jogo # 4, jogada # 78) na partida Go entre AlphaGo e Lee Sedol. A vida pode ser uma caixa de chocolates quando um mecanismo de recomendação inteligente está entregando a caixa.

Texto original em inglês.