神经网络推荐引擎

时间:2010-02-22 23:59:01

标签: artificial-intelligence neural-network recommendation-engine

如何为推荐引擎设计神经网络。我假设每个用户都需要自己的网络,但是如何设计用于在数据库中推荐项目的输入和输出。是否有任何好的教程或什么?

编辑:我更想到如何设计网络。与输入神经元的数量以及输出神经元如何指向数据库中的记录一样。你会说6个输出神经元,将它转换成一个整数(从0到63可以是任何东西),这是数据库中记录的ID吗?是人们这样做的吗?

2 个答案:

答案 0 :(得分:8)

我建议使用无监督学习(例如self organising maps)来研究神经网络。除非您可以非常精确地将数据分类用于学习,否则使用常规监督神经网络来执行您想要的操作非常困难。自组织地图没有这个问题,因为网络自己学习分类组。

看看这篇描述音乐音乐推荐系统的论文 http://www.springerlink.com/content/xhcyn5rj35cvncvf/

还有更多来自谷歌学者的论文 http://www.google.com.au/search?q=%09+A+Self-Organizing+Map+Based+Knowledge+Discovery+for+Music+Recommendation+Systems+&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:official&client=firefox-a&safe=active

答案 1 :(得分:2)

首先,您必须确定您的推荐内容以及在何种情况下。有许多事情需要考虑。您是否会考虑“购买X的其他用户还购买了Y?”您是否只推荐彼此具有相似性质的物品?您是否推荐具有这种一种更有用的项目的项目?

我确信还有更多的决定,每个决定都有自己的目标。训练一个巨大的网络来处理上述所有事情是非常困难的。

神经网络归结为同样的事情。您有一组给定的输入。您有一个网络拓扑。你有一个激活功能。您对节点的输入有权重。您有输出,并且您有一种测量和纠正错误的方法。每种类型的神经网络都可能有自己的方式来完成这些事情,但它们一直存在(我的知识有限)。然后,通过输入一系列具有已知输出结果的输入集来训练网络。你可以在没有经过训练的情况下尽可能多地运行这个训练集(这与你下一个人的猜测一样多),然后你就可以开始练习了。

基本上,您的输入集可以被描述为您认为与手头的基础功能相关的一组特质(例如:降水,湿度,温度,疾病,年龄,位置,成本,技能,时间)日,星期几,工作状态和性别都可能在决定某人是否会在某一天打高尔夫球时发挥重要作用。因此,您必须确定您要确切推荐的内容以及在什么条件下。您的网络输入本质上可以是布尔值(例如,0.0为假,1.0为真)或映射到伪连续空间(其中0.0可能根本不表示,.45表示有些,.8表示可能,1.0表示是)。第二个选项可以为您提供映射某个输入的置信度的工具,或者您认为相关的简单数学计算。

希望这有帮助。你没有给予太多的回报:)