我想在文档管理系统中添加推荐功能。它是存储大多数公司文档的服务器。员工浏览 Web 界面并单击以下载(或在线阅读)他们想要的文档。
每个员工只能访问所有文档的子集:
我的目标:向员工推荐他们的队友最近打开的文档,或者作为他们刚刚打开的文档的附件的电子表格,或者他们可能想要阅读的任何内容。
有许多公开数据的推荐引擎(所有 Netflix 用户都可以看到所有电影),但这里的情况很特殊:每个员工只能访问所有文档的一小部分,而在 Netflix 中,任何用户都可以访问所有电影。
示例:Employee1 可以读取 DocumentA,但不能读取 DocumentB。Employee2 可以同时读取,而 Employee3 不能读取任何内容。
当然,我绝不能向员工推荐她/他无权访问的文件。此外,我想我应该只在有权访问它的员工的背景下考虑文档的受欢迎程度。更复杂的是,员工有时会从一个项目转移到另一个项目,这会影响他们有权访问的文档。
- 这种问题有名字吗?
- 可以在不降低精度/效率损失的情况下将其减少为更常见的问题吗?
- 如果不是,哪种方法可以很好地解决此类问题?
注意:类似 Netflix 的推荐引擎还不够好。如果只有 10 名员工(包括我)可以访问,则具有 50 次查看的文档应该是显眼的,但如果 100000 名员工可以访问它,则不是显眼的。
如果需要,这里有一些数据细节:平均公司有 1000 名员工,大约 10000 个文档,一个员工每天点击大约 5 个文档。每个项目平均有 10 名员工可以访问它,并且有大约 100 个文档。每个员工平均同时处理 5 个项目。