开源推荐框架:DUINE

jopen 11年前

Duine 是由一个挪威的团队开发的开源推荐引擎, 在 Duine 中推荐器只是其中的一个模块,它同时还处理用户资料库(User Profile)、反馈(Feedback)、推荐可解释性(Explanation)等等更多的模块,以及这些模块之间如何交互的问题。


  Duine 的三个主要的方面:推荐框架、推荐过程、自省过程,其实还应该有一个很重要的是反馈过程,但由于在 Duine 中这并不是一个重要的模块,这里就不多说了。以下不完全是按照原文档的叙述,有些地方会加入了我个人的理解或实践上的认识,如有不妥之处,还请指出。


1、Ratable Item:例如书、电影、音乐等等用户可以对它表达自己的观点与爱好的事物集,它所包含的一 meta 信息也可作为推荐器的依据之一。拓展一下这个概念,你可以为自己的推荐系统构建一个 Item Profile 模块。


2、User Profile:用户资料库,这是所有模块里最不容易定义的一部分,通常用户的性别、年龄、职业等人口统计学的信息是应该被包含在资料库中的(如果有的 话);如果能通过对用户行为与收藏的统计得到一些有价值的表征用户兴趣的信息与类别信息,也应该存放在其中;有些系统会把用户的收藏与评分信息也归入该模 块,有些系统则倾向于把这部分数据独立出来,因为这部分数据量毕竟比较大,这关系到应该把源数据还是应该把中间计算结果存储在资料库中。Duine 实际采用的是一个更广义的 Profile Model 的概念,其中包括:Rating Model、Interest Model、User Similarity Model 以及 Item Similarity Model。


3、Prediction Technique:这是推荐框架的核心,也是推荐系统研究中被讨论最多的模块。学术研究与工业应用中已经催生出大量的推荐算法,目前为止可以说最强大的推荐算法不是某一个算法,而是一个适用于不同用户需求的混合式的推荐算法。Duine 的推荐池中采用的推荐器并不太复杂,下面会逐一介绍。


4、Prediction & Explanation:这是推荐器模块直接输出到用户的结果,推荐池依据已知的 User Profile 与Ratable Item(或许你可以认为它是 Item Profile)的输入,对未知的 user-item 作出预测。如果这个推荐系统足够 User Friendly 的话,它还应该输入自己对这个预测的解释,毕竟一个可解释的推荐结果更容易为用户所接受,这也是为什么 amazon 在每个推荐的下面都会给出自己的推荐依据。可解释的东西有很多,比如某一个推荐器的决策依据,再比如下一节要讲的推荐决策过程。


5、Feedback & Feedback Processor:一个有反馈的推荐系统才能向着更优化的方向演进,反馈更快,系统会得到更快的学习机会。Feedback Processor 收集来自用户的显式或隐式的反馈,并把变化更新到 User Profile 中。这里的反馈包括面比较广,不单指用户对推荐结果的爱好表达,还包括一般的收藏、评分行为这类用户与推荐系统之间的交互。


6、Validity Indicators:这个我不知道该如何翻译更合适,所以在下文根据自己的理解把它译为“自省”。每个推荐器都需要一个自我评价与校正的机制,这样才能 促使系统的不断竞争与进化。Duine 中对这一模块的处理比较简单,只是根据测试集的测试结果对每个推荐器的可靠程度作一个评价。实际上这是很难以解决好的一部分,不同的推荐器应该有不同的校 验方法,并且需要有能力根据用户的反馈对自身进行校正,也许拥有一个高级的“自省过程”是一个“有智能”的推荐系统的前提条件。

项目主页:http://www.open-open.com/lib/view/home/1372206091416

</span>