基于标记/关键字的推荐

Hel*_*nar 19 algorithm recommendation-engine machine-learning

我想知道什么算法可以聪明地用于标签驱动的电子商务环境:

  • 每个项目都有几个标签.IE:

    商品名称: "Metallica - Black Album CD",标签: "metallica","black-album","rock","music"

  • 每个用户都有几个标签和绑定到他们的朋友(其他用户).IE:

    用户名: "testguy",兴趣: "蟒蛇","摇滚","金属","计算机科学" 朋友: "testguy2","testguy3"

我需要通过检查他们的兴趣标签并以复杂的方式生成建议来为这些用户生成建议.

思路:

  • 可以使用混合推荐算法,因为每个用户都有朋友(基于协作+上下文的推荐的混合).
  • 也许使用用户标签,可以找到类似的用户(对等方)来生成推荐.

  • 也许通过标签直接匹配用户和项目之间的标签.

任何建议都是受欢迎的.任何基于python的库也是受欢迎的,因为我将在python语言上使用这个实验引擎.

why*_*ird 18

1)给你的标签加权.

标签分为几组:

  • 我的标签没有我的朋友分享
  • 标记了一些我的朋友分享,但我没有
  • 我的标签是由我的一些朋友共享的.

(有时你可能也想考虑朋友的朋友标签,但根据我的经验,努力是不值得的.YMMV.)

识别此人和/或此人的朋友感兴趣的所有标签,并为该个人的标签附加权重.标签重量的一个简单可能的公式是

(tag_is_in_my_list) * 2 + (friends_with_tag)/(number_of_friends)
Run Code Online (Sandbox Code Playgroud)

请注意神奇的数字2,这使得您自己的意见值是所有朋友放在一起的两倍.随意调整:-)

2)重量你的物品

对于列表中包含任何标记的每个项目,只需添加标记的所有加权值即可.更高的价值=更多的兴趣.

3)应用阈值.

最简单的方法是向用户显示前n个结果.

更复杂的系统也应用反标签(即非感兴趣的主题)并做许多其他事情,但我发现这个简单的公式有效而快速.

  • 是的,二进制1或0. (2认同)

reg*_*fry 5

如果可以,请查找 Toby Segaran 撰写的 O'Reilly 的编程集体智能的副本。对于这个问题,其中有一个模型解决方案(还有一大堆非常非常好的其他东西)。