Я хочу добавить функцию рекомендации в систему управления документами . Это сервер, на котором хранится большинство документов компании. Сотрудники просматривают веб-интерфейс и нажимают, чтобы загрузить (или прочитать в Интернете) нужные документы.
Каждый сотрудник имеет доступ только к подмножеству всех документов:
Моя цель : рекомендовать сотруднику документы, недавно открытые их товарищами по команде, или электронную таблицу, которая служит приложением к документу, который они только что открыли, или все, что они могут захотеть прочитать.
Существует множество механизмов рекомендаций для общедоступных данных (все пользователи Netflix могут видеть все фильмы), но здесь особая ситуация: каждый сотрудник имеет разрешение только на часть всех документов, тогда как в Netflix любой пользователь имеет доступ ко всем фильмам.
Пример : Employee1 может читать DocumentA, но не DocumentB. Employee2 может читать оба, а Employee3 не может читать ни одного.
Конечно, я не должен рекомендовать сотруднику документы, к которым у него нет доступа. Кроме того, я думаю, что я должен рассматривать популярность документа только в контексте сотрудников, которые имеют к нему доступ. Чтобы усложнить ситуацию, сотрудники иногда переходят из одного проекта в другой, что влияет на документы, к которым у них есть доступ.
- Есть ли название для такой проблемы?
- Можно ли его уменьшить без потери точности / эффективности до более распространенной проблемы?
- Если нет, то какой подход будет хорошо работать для такого рода проблем?
Примечание: механизм рекомендаций, похожий на Netflix, недостаточно хорош. Документ с 50 представлениями должен быть заметным, если только 10 сотрудников (включая меня) имеют к нему доступ, но не должен быть заметным, если к нему имеют доступ 100000 сотрудников.
В случае необходимости, вот несколько особенностей данных: средняя компания имеет 1000 сотрудников, около 10000 документов, сотрудник щелкает около 5 документов в день. Каждый проект имеет в среднем 10 сотрудников, имеющих доступ к нему, и имеет около 100 документов. Каждый сотрудник работает в среднем 5 проектов параллельно.