首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >协作推荐还是结构化推荐?

协作推荐还是结构化推荐?
EN

Stack Overflow用户
提问于 2012-04-12 04:12:15
回答 2查看 428关注 0票数 2

我正在开发一个Rails应用程序,向学生推荐导师,反之亦然。我需要根据他们的专业(数学、生物学等)、经验(初中等)、班级(数学201等)、偏好(自我描述的关键词)和评分等多个维度进行匹配。

我检查了一些Rails协作推荐引擎(推荐的、重新推荐的)和Mahout。在我的情况下,协作推荐似乎不是最好的选择,因为我有更多的结构化数据,这允许更结构化的查询。例如,我可以为学生提供如下推荐逻辑:

代码语言:javascript
复制
if student looks for a Math tutor in Math 201:
  if there's a tutor in Math major offering tutoring in Math 201 then return
  else if there's a tutor in Math major then sort by experience then return
  else if there's a tutor in quantitative major then sort by experience then return
  ...

我的问题是:

  1. 考虑到我的推荐系统将基于偏好,协作推荐算法的好处是什么?
  2. 如果它确实提供了很大的好处,我如何才能将它与上面提到的基于偏好的建议结合起来?
  3. 因为我的方法将涉及多个表的查询,所以它可能没有效率。我该怎么办?

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-18 06:55:34

听起来,您对兼容性的度量可能会被重新定义为指标。您应该做的是尝试将您的“列”解释为数据维度的不同组件。其思想是,您最终应该生成一个二进制函数,它返回学生和导师(以及学生/学生和导师/导师)之间兼容性的度量。将此度量扩展到所有类型数据的动机是,您可以使用这个想法将匹配条件重新定义为最近邻搜索:

搜索

由于这一问题已经得到了很好的研究,因此有大量的数据结构和解决方案。例如,您可以尝试以下库,它经常与点云数据一起使用:

http://www.cs.umd.edu/~mount/ANN/

要对数据集进行优化,还可以尝试通过对数据集运行主组件分析来对数据进行预筛选。这将使您减少空间的维数,在其中进行最近的邻居搜索,通常有额外的好处,减少一定量的噪音。

分析

祝好运!

票数 4
EN

Stack Overflow用户

发布于 2012-04-21 19:41:57

就我个人而言,我认为协作过滤(cf)会对你很好。请注意,cf的核心思想是意外发现。换句话说,增加太多的约束可能会给用户带来不温不火的建议。cf的主要目的是基于相似的用户提供令人兴奋的相关建议。你不必施加如此严格的限制。

如果您可能决定实现定制的cf算法,我建议阅读由Amazon发布的这篇文章,其中讨论了亚马逊的推荐系统。简单地说,他们使用的算法如下:

代码语言:javascript
复制
for each item I1
    for each customer C who bought I1
        for each I2 bought by a customer
            record purchase C{I1, I2}
    for each item I2
        calculate sim(I1, I2) 
        //this could use your own similarity measure, e.g., cosine based
        //similarity, sim(A, B) = cos(A, B) = (A . B) / (|A| |B|) where A
        //and B are vectors(items, or courses in your case) and the dimensions
        //are customers
return table

请注意,此表的创建将脱机完成。在线算法将很快返回建议。显然,推荐质量很好。

无论如何,如果您想对cf有一个更好的了解(例如,各种cf策略),以及为什么它可能适合您,请阅读这篇文章(别担心,它非常可读的)。实现简单的cf推荐并不困难。可以在以后进行优化。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10117263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档