19 Julho 2022

Sistemas de recomendação recíproca. Visão geral sobre o modelo RECON

Nas últimas décadas assistiu-se a uma enorme evolução tecnológica, permitindo às empresas melhorar a qualidade e disponibilidade dos seus conteúdos de forma personalizada. Serviços como o Facebook, YouTube, Amazon, Netflix, Tinder, entre outros, são exemplos de serviços que têm incorporado mecanismos de recomendação de conteúdos, dependendo do negócio no qual estão inseridos, de acordo com determinadas características dos seus utilizadores. Tais sistemas são conhecidos como sistemas de recomendação, e estão presentes no quotidiano das pessoas.

 

SISTEMAS DE RECOMENDAÇÃO

 

Sistemas de recomendação têm como objetivo sugerir os itens mais relevantes para cada utilizador, i.e., itens com maior probabilidade de serem aprovados. Com isto, os utilizadores não só poupam tempo ao evitar pesquisar pelos itens mais desejados, bem como existe a probabilidade de serem recomendados itens que nunca iriam ser vistos pelos mesmos. Em algumas indústrias, os sistemas de recomendação são fundamentais para a retenção de utilizadores, principalmente para aqueles que não têm muito tempo ou paciência para pesquisar um item desejado numa enorme lista de potenciais itens. Estas recomendações são geralmente baseadas nas preferências de cada utilizador, existindo assim uma personalização única à medida de cada um. Portanto, um bom sistema de recomendação permite recomendar itens com elevada probabilidade de serem aceites pelos utilizadores, aumentando assim o seu nível de satisfação e a possibilidade de melhorar a qualidade do serviço em questão.

Existem várias abordagens para o desenvolvimento dos sistemas de recomendação, dependendo do objetivo para o qual é proposto, sendo que as principais são Content-based filtering, Collaborative filtering e Hybrid filtering. Collaborative filtering é dividida em duas categorias: Model-based filtering e Memory-based filtering, sendo esta última dividida também em duas categorias: User-based collaborative filtering e Item-based collaborative filtering.

Figura 1 – Principais abordagens dos sistemas de recomendação [1]

 

CONTENT-BASED FILTERING

 

Content-based filtering é baseada na similaridade dos itens presentes no histórico de interações entre os utilizadores e os diferentes itens, ou seja, são recomendados itens similares aos itens que um determinado utilizador teve interação.

Figura 2 – Ilustração da Content-based filtering [2]

 

São utilizados dois tipos de dados: o vetor A com as características dos utilizadores, e o vetor B que representa as características dos itens. As recomendações são calculadas utilizando a similaridade do cosseno destes vetores.

Figura 3 – Cálculo da similaridade do cosseno [1]

 

Após estes cálculos, os valores da matriz de similaridade do cosseno são ordenados por ordem decrescente, sendo que as recomendações são dadas pelos itens no topo, i.e., os itens mais similares aos itens do histórico.

Vantagens:

  • O utilizador recebe recomendações sobre os tipos de itens de que mais deseja;
  • O utilizador fica satisfeito com o tipo de recomendações;
  • Podem ser recomendados novos itens, sendo apenas necessário relacionar as características para esse item.

Desvantagens:

  • O utilizador nunca será recomendado para itens diferentes;
  • O negócio não pode ser expandido, pois o utilizador não tenta um tipo diferente de item;
  • Se a matriz do utilizador ou a matriz do item for alterada, a matriz de similaridade do cosseno precisa de ser calculada novamente.

 

COLLABORATIVE FILTERING

 

Collaborative filtering é baseado nas preferências de utilizadores similares, ou seja, se utilizadores similares tiveram interações com os mesmos itens, então são recomendados os itens que um destes utilizadores teve interação e o outro não.

Figura 4 – Ilustração da Collaborative filtering [2]

 

Vantagens:

  • Podem ser recomendados novos itens ao utilizador;
  • O negócio pode ser expandido e pode popularizar novos itens.

Desvantagens:

  • O novo item não pode ser recomendado posteriormente se nenhum utilizador tiver interação com ele, ou seja, não tenha aceite este novo item como recomendação.

 

HYBRID FILTERING

 

Tal como o nome sugere, Hybrid filtering combina diferentes abordagens, tais como Content-based filtering e Collaborative filtering com o objetivo de melhorar o desempenho e mitigar as limitações destas abordagens.

 

SISTEMAS DE RECOMENDAÇÃO RECÍPROCA

 

Os sistemas de recomendação recíproca são utilizados para recomendar utilizadores a outros utilizadores ao invés de itens a utilizadores, onde ambos os utilizadores devem retribuir, ou seja, ambos devem estar satisfeitos com a recomendação sugerida. Na prática, as pontuações das preferências bidirecionais/recíprocas são calculadas entre os utilizadores.

Figura 5 – Preferências entre o utilizador x e o utilizador y [3]

 

Figura 6 – Modelo conceptual geral dos sistemas de recomendação recíproca [3]

 

Existem diversas diferenças entre sistemas de recomendação e sistemas de recomendação recíproca, como descrito na Tabela 1.

Sistemas de recomendação Sistemas de recomendação recíproca
Recomendações para xU são itens iI. Recomendações para xU são itens iI.
Os itens podem ser recomendados para múltiplos utilizadores. Em alguns sistemas, se ambos os utilizadores x e y aceitarem a recomendação correspondente, então já não serão elegíveis para serem recomendados a outra pessoa.
Uma recomendação bem-sucedida não implica que o utilizador abandone o sistema. Em algumas aplicações, os utilizadores podem não precisar de usar o sistema e deixá-lo após uma recomendação bem-sucedida.
O sucesso é determinado pelo utilizador que recebe a recomendação. Tanto o utilizador x como y devem estar satisfeitos com a recomendação para considerá-la como um sucesso.

Tabela 1 – Algumas diferenças entre sistemas de recomendação e sistemas de recomendação recíproca [3]

 

Os sistemas de recomendação recíproca são desenvolvidos com o objetivo de serem exclusivamente destinados a pessoas, e, portanto, pode existir apenas uma única classe ou duas classes de utilizadores.

Classe única:

  • Conjunto homogéneo de utilizadores U;
  • Quaisquer dois utilizadores em U podem ser recomendados um ao outro;
  • Aplicações: redes sociais simétricas, correspondência de alunos, encontros homossexuais, economia partilhada, entre outros.

Duas classes:

  • U subdividido em dois subconjuntos de utilizadores ou classes, por exemplo U = MF;
  • Dado xM, apenas os utilizadores da outra classe podem ser recomendados, yF;
  • Aplicações: encontros heterossexuais, recrutamento, correspondência aluno-professor, entre outros.

 

RECON

 

O modelo REciprocal CONtent-based recommender (RECON) [4] é um recomendador recíproco baseado no conteúdo, inicialmente desenvolvido para encontros online, mas que pode ser ajustado para outras tarefas de acordo com o negócio em questão. O objetivo deste modelo é criar um top-N de recomendações com base nos perfis e preferências dos utilizadores.

Inicialmente, apenas os perfis estão disponíveis, sendo necessário inferir as preferências de cada utilizador através do seu histórico de interações com outros utilizadores, utilizando assim as características presentes nos perfis. Por exemplo, se um determinado utilizador teve interações com cinco utilizadores do sexo feminino e uma interação com um utilizador do sexo masculino, a característica nas preferências pelo sexo feminino irá ter 5 como valor e a característica nas preferências pelo sexo masculino irá ter 1 como valor.

Figura 7 – Exemplo da distribuição de características do histórico de interações de um determinado utilizador

 

Matematicamente,

é o perfil do utilizador x, com A sendo um conjunto finito de atributos, por exemplo o sexo do utilizador, e vx,a o valor do atributo aA para o utilizador x, por exemplo o sexo feminino. As preferências são então inferidas utilizando métodos estatísticos. Seja m o número de vezes da preferência do utilizador x para um utilizador y com o valor do atributo vy,a no atributo a. As preferências px,a do utilizador x para os diferentes valores de um atributo a, V(a), são dadas pela distribuição:

No caso de um novo utilizador, i.e., um utilizador que não tem histórico de interações, é necessário recorrer a abordagens diferenciadas para inferir as suas preferências. Uma possível abordagem seria a seguinte:

  1. Identificar as características do novo utilizador através do perfil;
  2. Calcular pontuações de similaridade através das suas características e das características de outros utilizadores que tenham um histórico de interações, contando as características que têm em comum e dividindo esta contagem pelo número total de características;
  3. O perfil com a pontuação de semelhança mais elevada é considerado o perfil mais semelhante;
  4. As preferências do novo utilizador passam a ser iguais às preferências desse perfil mais semelhante.

Com base nisto, é possível inferir as preferências para qualquer utilizador e posteriormente calcular as pontuações de compatibilidade através das preferências do utilizador x e de cada perfil dos restantes utilizadores. Para calcular as pontuações de compatibilidade no sentido inverso é necessário o perfil do utilizador x e cada uma das preferências dos restantes utilizadores. Estas pontuações de compatibilidade significam o quanto um utilizador x gosta de um utilizador y e vice-versa, ou qual o grau de preferência de um utilizador para com outro utilizador. Com estas pontuações de compatibilidade unidirecionais, calcula-se a pontuação de compatibilidade bidirecional através da média harmónica das pontuações anteriormente descritas. Os passos seguintes descrevem resumidamente esta técnica para um par de utilizadores x e y:

  1. Calcular a pontuação de compatibilidade unidirecional entre as preferências do utilizador x e o perfil do utilizador y;
  2. Calcular a pontuação de compatibilidade unidirecional entre o perfil do utilizador x e as preferências do utilizador y;
  3. Calcular a média harmónica entre estas pontuações.

Por fim, são escolhidos os top-N de utilizadores com as pontuações de compatibilidade bidirecionais mais elevadas. Segue um exemplo de como calcular a pontuação de compatibilidade unidirecional entre as preferências do utilizador x e o perfil do utilizador y.

  • Preferências do utilizador x:
  • Preferências do utilizador y:
  • Pontuação da categoria:
  • Pontuação de compatibilidade unidirecional:

 

MÉTRICAS DE AVALIAÇÃO

 

A avaliação do desempenho de qualquer sistema é fundamental para perceber se o sistema funciona de acordo com os requisitos. Existem duas abordagens para avaliar o desempenho dos sistemas de recomendação: testes offline e testes online.

Em relação aos testes offline, estes são utilizados para medir o desempenho do modelo através de métricas de avaliação para sistemas de recomendação, tais como Hit Ratio (HR), Mean Reciprocal Rank (MRR), Mean Average Precision (MAP), Normalized Discounted Cumulative Gain (NDCG), entre outras [5]. Mas nem sempre é possível utilizar estas métricas de avaliação porque, dependendo do negócio e do modelo, pode não existir certeza quanto à correta validação das recomendações sugeridas, visto que à data nenhum utilizador validou a sua recomendação. Nestas circunstâncias e num modo geral, os testes online, também conhecidos como testes A/B, são a melhor forma de avaliar os sistemas de recomendação.

No paradigma dos sistemas de recomendação, os testes A/B são utilizados para avaliar o desempenho do modelo após as validações das recomendações por parte dos utilizadores. Por outras palavras, o modelo sugere recomendações, essas recomendações são disponibilizadas aos utilizadores, e esses utilizadores aceitam ou rejeitam as recomendações. Com isto, é possível verificar o número de recomendações bem-sucedidas e malsucedidas, de acordo com o número total de recomendações. Em caso da existência de múltiplos modelos, os testes A/B são realizados seguindo a mesma abordagem, mas neste caso para cada um dos modelos. Cada modelo sugere uma recomendação para um determinado utilizador e esse mesmo utilizador irá aceitar ou rejeitar cada uma destas recomendações, escolhendo assim o modelo com a melhor recomendação.

 

BIBLIOGRAFIA

[1] Isinkaye, F. O., Folajimi, Y. O., & Ojokoh, B. A. (2015). Recommendation systems: Principles, methods and evaluation. Egypt. Inform. J., 16(3), 261–273. https://doi.org/10.1016/j.eij.2015.06.005

[2] Roy, D., Dutta, M. A systematic review and research perspective on recommender systems. J Big Data 9, 59 (2022). https://doi.org/10.1186/s40537-022-00592-5

[3] https://dasci.es/wp-content/uploads/2020/08/AcmSigirTutorial_ReciprocalRecommendation-1.pdf

[4] Pizzato, L., Rej, T., Chung, T., Koprinska, I., Kay, J., 2010. RECON: a reciprocal recommender for online dating. Proceedings of the Fourth ACM Conference on Recommender Systems 207–214. https://doi.org/10.1145/1864708.1864747

[5] Schröder, Gunnar & Thiele, Maik & Lehner, Wolfgang. (2011). Setting Goals and Choosing Metrics for Recommender System Evaluations. 811. https://wiki.epfl.ch/edicpublic/documents/Candidacy%20exam/Evaluation.pdf

Blog