Filtros Colaborativos e Sugestão de Vagas

Fala galera! Hoje estamos aqui para contar uma grande novidade para você que busca sempre mais. É com muito orgulho e animação que anunciamos que está no ar o blog do Catholabs! E para começar com o pé direito, vamos chutar o pau da barraca e mostrar para vocês um pouco do que andamos fazendo por aqui 🙂

A nossa intenção será compartilhar alguns detalhes dos desafios de tecnologia, arquitetura, algoritmos e inteligência aplicada que tivemos oportunidade de lidar aqui na Catho.

Chega de apresentações e vamos ao que interessa! Um dos diferenciais da Catho é que ela investe muito em inteligência artificial para recomendar as vagas certas para os nossos assinantes. Nesse post, vamos falar um pouco da arquitetura de um dos nossos sistemas de recomendação que compõe essa inteligência.

Uma das ferramentas que a Catho oferece aos seus assinantes é um widget que apresenta vagas que podem ser do interesse deles, ajudando-os a achar a vaga certa mais rapidamente. Esse widget é conhecido como Sugestão de Vagas, e fica em um lugar de destaque na Área do Candidato. O core da Sugestão de Vagas é uma inteligência artificial composta por vários algoritmos. Neste post, vamos falar um pouco sobre um desses algoritmos, chamado de filtro colaborativo.

Filtros colaborativos são uma classe de algoritmos, usados em sistemas de recomendação, para fazer previsões sobre os interesses de um usuário, com base nas preferências de outros usuários que tenham um padrão de comportamento semelhante.

Tais algoritmos exploram o fato de que se dois usuários avaliam de modo similar um conjunto de itens (no nosso caso, item = vaga), esses usuários possuem algo em comum, podendo, de alguma forma, serem considerados como similares. Assim, podemos prever se um usuário irá, a partir das avaliações dos usuários similares, se interessar por um item desconhecido por ele até aquele momento.

Dos muitos sinais que podem ser usados por filtros colaborativos, alguns dos mais valiosos são os feedbacks explícitos, em que o usuário manifesta sua opinião sobre determinados itens. Alguns exemplos desses sinais seriam as avaliações (estrelas) nos filmes do Netflix. Em nosso caso, uma ação do tipo “candidatura de um usuário a uma vaga” poderá ser considerada uma boa fonte de feedback.

Estas ações podem ser usadas para construir um grafo bipartido, em que os vértices representam usuários e vagas, e as arestas representam as relações entre eles. Em tal grafo, é possível filtrar um subconjunto de vagas que tenham alguma relação de similaridade com o usuário, ou seja, que podem ser do interesse dele.

Por exemplo, se dois usuários, A e B, se candidataram para uma mesma vaga, uma outra vaga que o usuário A se candidatou e o usuário B não, será potencialmente uma boa recomendação para o usuário B, pois o fato de A e B terem se candidatado para uma mesma vaga mostra um certo grau de semelhança entre eles.

 

grafo_61669
Uma vantagem extra de se utilizar a filtragem colaborativa é a de que ela resolve o problema de retrieval, ou seja, o problema de selecionar dentre todas as vagas da Catho um subconjunto que seja do interesse de um dado usuário. Entretanto, ainda será necessário criar uma “lógica” de ordenação de itens. Esse processo traz diversos desafios, e iremos falar mais dele nos próximos posts.

Note que a filtragem colaborativa é bem agnóstica ao problema tratado, pois ela não necessita de informações que são exclusivas do contexto do problema em questão. Precisamos, portanto, apenas definir o que são os itens e o que são os usuários para construir o grafo. Isso faz com que tal técnica seja amplamente utilizada para melhorar a inteligência de diversas plataformas online (e-commerces, redes sociais, sites de notícias, etc.).

Então é isso aí. Nos próximos posts falaremos mais sobre filtros colaborativos, machine learning, nosso Python way of life, computação em nuvem e outros assuntos interessantes! 🙂

 

Autor:  Eder F. Martins

Leave a Reply

Your email address will not be published. Required fields are marked *