Qual mecanismo de recomendação para uma situação em que os usuários podem ver apenas uma fração de todos os itens?


9

Desejo adicionar um recurso de recomendação a um sistema de gerenciamento de documentos . É um servidor no qual a maioria dos documentos da empresa está armazenada. Os funcionários navegam na interface da Web e clicam para baixar (ou ler on-line) os documentos que desejam.
Cada funcionário tem acesso apenas a um subconjunto de todos os documentos:

Os funcionários têm acesso apenas a um subconjunto de todos os documentos

Meu objetivo : recomendar a um funcionário os documentos abertos recentemente por seus colegas de equipe ou a planilha que serve como um anexo ao documento que eles acabaram de abrir ou qualquer coisa que eles possam querer ler.

Existem muitos mecanismos de recomendação para dados publicamente disponíveis (todos os usuários do Netflix podem ver todos os filmes), mas a situação aqui é especial: cada funcionário só tem permissão para uma fração de todos os documentos, enquanto no Netflix qualquer usuário tem acesso a todos os filmes.

Exemplo : Employee1 pode ler DocumentA, mas não DocumentB. Employee2 pode ler os dois e Employee3 não pode ler nenhum.

Obviamente, não devo recomendar a um funcionário documentos aos quais ele / ela não tem acesso. Além disso, acho que devo considerar a popularidade de um documento apenas no contexto dos funcionários que têm acesso a ele. Para tornar as coisas ainda mais complicadas, os funcionários às vezes passam de um projeto para outro, o que afeta os documentos aos quais eles têm acesso.

  • Existe um nome para esse tipo de problema?
  • Pode ser reduzido sem perda de precisão / eficiência a um tipo de problema mais comum?
  • Caso contrário, qual abordagem funcionaria bem para esse tipo de problema?

Nota: Um mecanismo de recomendação semelhante ao Netflix não é bom o suficiente. Um documento com 50 visualizações deve ser destacado se apenas 10 funcionários (inclusive eu) tiverem acesso a ele, mas não será destacado se 100.000 funcionários tiverem acesso a ele.

Caso seja necessário, aqui estão algumas informações específicas: A empresa média possui 1000 funcionários, cerca de 10.000 documentos, um funcionário clica em cerca de 5 documentos por dia. Cada projeto tem uma média de 10 funcionários tendo acesso a ele e possui cerca de 100 documentos. Cada funcionário trabalha em média 5 projetos em paralelo.

Respostas:


1

Eu sinto que você precisa resolver duas coisas separadamente.

Primeiro, você precisa ter controle de acesso para os usuários em seu sistema. Você pode ter tokens de acesso anexados a cada usuário e arquivo. Filtre o banco de dados de arquivos antes de processar.

Segundo, classificando os documentos que eu sugeriria ter um peso para o peso do documento e o peso do usuário em relação ao usuário de navegação atual.

Por exemplo, posso pensar no peso do documento e no peso do usuário da seguinte maneira, mas eles podem ser muito mais complexos conforme o sistema-

DocumentWeight = Number of Views/ Number of Users can Access
UserWeight = ## Relative to browsing user- Users in similar project will have higher weights

DocumentScore = Sum over all viewed users{DocumentWeight x UserWeight}

Você pode classificar os documentos, isso irá estatisticamente exibir os documentos necessários. Espero que isso ajude.


0

Na sua descrição, sugiro que você procure métodos chamados filtragem colaborativa . Basicamente, você pode tratar qualquer visualização / download de um documento como um feedback positivo para algum item e, em seguida, recomendar esses itens para usuários que pesquisam documentos semelhantes.

A filtragem dos resultados ocultos deve ser feita por usuário (você encontra todas as sugestões possíveis, mas gera apenas aquelas que o usuário pode ter direito de ver).


Não creio que um método tão genérico seja suficiente: um documento com 50 visualizações deve ser destacado se apenas 10 funcionários (incluindo eu) tiverem acesso a ele, mas não será destacado se 100.000 funcionários tiverem acesso a ele.
Nicolas Raoul

Eu descrevi não o método, mas a ideia geral. A filtragem colaborativa é mais complicada e o link que forneci é um bom ponto de entrada, enquanto você pode procurar diferentes implementações e abordagens e encontrar o mais adequado para suas especificações específicas de dados.
Chewpakabra 17/05

Descrevi minhas especificidades de dados com clareza suficiente na minha pergunta? Caso contrário, não hesite em pedir qualquer informação necessária antes que uma abordagem específica possa ser recomendada. Muito obrigado :-)
Nicolas Raoul

O que acho confuso é a ausência de uma ideia clara do motivo pelo qual não vale a pena mostrar um documento com 10000 visualizações como recomendação, e um com 50 visualizações está OK. E quanto a 100? Ou 51? Se você tiver uma porcentagem definida de público-alvo, o que torna a contagem de visualizações irrelevante, você pode excluir esses casos do conjunto de treinamento e continuar com as abordagens colaborativas. Caso contrário, você pode ter algum problema de classificação ou clusterização, que é um tópico muito mais amplo.
Chewpakabra 18/05/19

De onde vem o número 10000? Se você quis dizer 100000, então eu não estava claro o suficiente: "ter acesso a ele" não significa "ter visto", significa "ter permissão para acessá-lo, se assim o desejar". Em outras palavras, o primeiro documento foi visualizado uma média de 10 vezes por cada pessoa que tem permissão para visualizá-lo, mas o segundo documento foi visualizado apenas uma média de 0,0005 vezes por cada pessoa que tem permissão para visualizá-lo.
Nicolas Raoul

0

Dê uma olhada no Mining of Massive Data Sets, pág. 328, que eventualmente o levará ao SVD que é comumente usado em sistemas de recomendação.


A página que você menciona apresenta várias generalidades sobre redução de dimensionalidade. Você se importaria de resumir o que se aplica à pergunta acima? Muito obrigado!
Nicolas Raoul

sim; ele mostra como usar SVD para a recomendação
Drey
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.