Faz sentido medir a recordação em sistemas de recomendação?


8

Suponha que eu criei um sistema de recomendação que (dado o ranking de filmes ou qualquer outro usuário) produzirá uma lista de 10 filmes recomendados para cada usuário assistir. Imagine que eu também tenho um grande conjunto de itens de filme, juntamente com um registro de classificações de usuários e filmes que eles realmente decidiram assistir. Então, eu quero usar esse conjunto de dados para avaliar meu sistema.

Eu já vi na literatura que essas tarefas "sugerem alguns bons itens" geralmente são avaliadas usando precisão, recordação e pontuação na F1 (por exemplo, veja [1] ). Eu acho que deveria me interessar, em particular, "precisão em 10". No entanto, não tenho muita certeza de como se deve calcular essas medidas (ou se fazem algum sentido) no cenário que descrevi acima.

Aparentemente, a coisa preferida a fazer é dividir aleatoriamente a amostra em uma parte de "treinamento" e "de teste". E, em seguida, alimente os dados de treinamento ao meu algoritmo para que ele possa apresentar uma lista de 10 previsões.

Agora a precisão meio que faz sentido, posso verificar pelas 10 previsões quantas delas são realmente encontradas nos filmes assistidos pelo usuário nos dados de teste.

No entanto, para lembrar, se o usuário assistiu a muitos filmes nos dados de teste, digamos 50 ou mais; não há como obter uma pontuação "boa" de recall, simplesmente porque meu sistema estava restrito a produzir apenas 10 filmes e eu teria no máximo 1/5 = 0,2 de recall.

Como alternativa, se eu restringir o teste apenas para adivinhar os "próximos 10 filmes assistidos" do usuário (para que haja uma chance de obter um "recall perfeito"), a precisão e o recall serão sempre exatamente o mesmo número (se o número recomendado e o número relevante para o usuário é o mesmo, precisão e recall também são sempre os mesmos).

Estou fazendo algo errado? Ou essas métricas simplesmente não fazem muito sentido no cenário considerado?

Respostas:


7

No caso de um sistema de recomendação "top-N", é útil criar um conjunto de dados de teste "imparcial" (por exemplo, adicionando milhares de filmes aleatórios não assistidos / não classificados à lista de filmes assistidos do conjunto de dados de validação para um determinado usuário ) e, em seguida, pontuando o conjunto de dados de teste resultante usando um modelo. Uma vez feito para vários usuários, pode-se calcular a curva "precisão versus rechamada" e a curva "rechamada em N vs N" (bem como as curvas de sensibilidade / especificidade e elevação) que podem ser usadas para avaliar a qualidade de um determinado modelo. Este artigo, Desempenho dos algoritmos de recomendação nas tarefas de recomendação Top-N de Cremonesi et al., Tem mais detalhes.

Se um determinado modelo incluir dinâmica do tempo, a divisão entre treinamento e teste deve ser feita ao longo da dimensão do tempo (não inteiramente aleatória)


link quebrado é
ldmtwo 17/10/19

0

Na maioria das vezes, o recall não produz um resultado que possa ser avaliado em termos absolutos. Você deve usar o valor de rechamada para avaliar um algoritmo em relação a outro.

Se um algoritmo A tiver um valor de rechamada de 0,2 (como no seu exemplo), é difícil interpretar o que esse valor significa. No entanto, se outro algoritmo B tiver um valor de recall de 0,15 (dada a mesma configuração experimental), você poderá concluir que o algoritmo A tem um desempenho melhor que o algoritmo B em relação ao recall.

O erro absoluto médio (MAE) não é assim, pode ser interpretado por si só.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.