在用户只能看到所有项目的一小部分的情况下,什么样的推荐引擎?


9

我想向文档管理系统添加推荐功能。它是一台用于存储大多数公司文档的服务器。员工浏览Web界面,然后单击以下载(或在线阅读)他们想要的文档。
每个员工只能访问所有文档的一部分:

员工只能访问所有文档的一部分

我的目标:向员工推荐其队友最近打开的文档,或者作为他们刚刚打开的文档的附件的电子表格,或者他们可能想要阅读的任何内容。

有许多公开数据的推荐引擎(所有Netflix用户都可以观看所有电影),但是这里的情况很特殊:每个员工只拥有全部文档的一小部分的权限,而在Netflix中,任何用户都可以访问所有电影。

示例:Employee1可以读取DocumentA,但不能读取DocumentB。Employee2可以读取,而Employee3则不能读取。

当然,我不能向员工推荐她/他无权访问的文档。此外,我想我应该仅在有权访问文档的员工的背景下考虑文档的普及程度。为了使事情变得更加复杂,员工有时会从一个项目转移到另一个项目,这会影响他们可以访问的文档。

  • 这种问题有名字吗?
  • 能否在不降低精度/效率的情况下将其减少到更常见的问题?
  • 如果没有,哪种方法对这种问题会很好?

注意:类似Netflix的推荐引擎还不够好。如果只有10名员工(包括我在内)可以访问,则具有50个视图的文档应突出显示,而如果有100000名员工可以访问,则不应突出显示。

如果需要,这里有一些具体的数据:每个公司平均有1000名员工,大约10000个文档,一个员工每天点击大约5个文档。每个项目平均有10名员工可以访问它,并且有大约100个文档。每个员工平均并行进行5个项目。

Answers:


1

我认为您需要分别解决两件事。

首先,您需要对系统中的用户具有访问控制权。您可以将访问令牌附加到每个用户和文件。在处理之前,过滤文件数据库。

第二,对文档进行排名我建议相对于当前浏览用户而言,文档的权重和用户的权重应具有一定的权重。

例如,我可以认为文档权重和用户权重如下,但根据您的系统,它们可能会更复杂-

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}

您可以对文档进行排名,这样可以统计出所需的文档。我希望这会有所帮助。


0

根据您的描述,我建议您着眼于称为协作过滤的方法。基本上,您可以将文档的任何查看/下载都视为对某些项目的肯定反馈,然后将此类项目推荐给寻找相似文档的用户。

隐藏结果的过滤应基于每个用户进行(您会找到所有可能的建议,但仅输出用户有权查看的建议)。


我认为这样的通用方法是不够的:如果只有10名员工(包括我)可以访问具有50个视图的文档,则该文档应突出显示;而如果100000名员工可以访问,则该文档不应突出显示。
Nicolas Raoul

我描述的不是方法,而是总体思路。协作过滤更加复杂,我提供的链接是一个很好的切入点,而您可以搜索不同的实现和方法,并找到最适合您的特定数据特性的方法。
chewpakabra

我在问题中是否足够清楚地描述了我的数据细节?如果不是这样,请在建议采用特定方法之前随意询问任何需要的信息。非常感谢:-)
Nicolas Raoul

我感到困惑的是,缺少一个清晰的主意,为什么一个具有10000个视图的文档不值得推荐显示,而具有50个视图的文档就可以了。那100呢?还是51?如果您有一定比例的受众群体而使观看次数无关紧要,则可以将此类案例排除在训练范围之外,而仍然坚持使用协作方法。如果没有,您可能会遇到某种分类或聚类问题,这是更广泛的话题。
chewpakabra

10000数字从何而来?如果您的意思是100000,那么我还不够清楚:“具有访问权限”并不表示“已经查看过”,而是意味着“如果他们愿意的话,可以访问它”。换句话说,第一个文档已被每个有权查看该文件的人平均浏览了10次,而第二个文件已被每个有权查看该文件的人平均浏览了0.0005次。
Nicolas Raoul

0

查看海量数据集的挖掘,第328页,最终将带您进入推荐系统中常用的SVD。


您提到的页面介绍了有关降维的各种一般性。您介意总结适用于上述问题的内容吗?非常感谢!
Nicolas Raoul

是; 它显示了如何使用SVD进行推荐
Drey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.