为了模拟我的问题,我将使用约会网站作为示例(尽管这不是实际情况)。我的问题是我有一组关键字,用户可以输入他们喜欢的关键字。说“高个子、黑头发、蓝眼睛”等,我想将它们映射到符合该标准的其他用户。然而,不仅如此,我还需要能够从我返回的数据中学习,以便在不那么精确匹配的情况下做出更好的预测。
例如,如果正在寻找“黑头发”人的其他用户喜欢“黑头发”的用户,或者高度为 6'4 但没有提到他们很高。我希望能够在这些相似的关键字之间建立关联,并且也能够建议这些关键字,以便最好地返回用户想要的内容,即使这不是他们所要求的。
我的问题是什么算法/方法最适合这个?我一直在研究以下领域:
- 决策树,但当没有关键字匹配时,它们似乎会崩溃。
- 朴素贝叶斯,它似乎对丢失的连接更能容忍一些,但需要一些关于连接的先验知识,而且由于关键字可以是任何东西,这似乎是一个障碍
- ANN,但这些似乎不太适合文本输入
- KNN,但我不确定如何处理可能无限多的用户分类?
- 某种 A* map 搜索,每次用户 1 喜欢用户 2 时,我都会在用户 1 的喜好和用户 2 的特征之间建立 map 连接,如果该连接已经存在,我就缩短它,然后找到最接近的 N 个用户。我只是不确定它的可扩展性如何。
任何输入表示赞赏, 谢谢!
最佳答案
这听起来像是 association rule learning 的一个相当经典的应用: 基本上,如果人们寻找像很多“黑发”帐户一样具有“黑发”的合作伙伴,那么您在两者之间有一个关联规则。有一些算法可以检测到这一点。
至于您的建议,您是否尝试过 ANN?人工神经网络根本不适用于文本输入,但对于大多数机器学习 + 文本任务,您可以将文本转换为数字数据(例如,参见词袋模型)。一旦你有了数字特征,它们就不会做得太差。
例如,您希望您的网络经过培训能够根据个人资料设置返回足够的推荐,对吧?您可以为它提供配置文件设置,如果您有训练数据显示用户寻找“黑头发”的人喜欢“黑头发”的用户,ANN 应该了解这种关系。
关联规则听起来像是要走的路。
关于algorithm - 关键词联想学习算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28082922/