2011年7月20日,星期三

推荐多样性

在推荐系统中,仅使用总体平均评分,每个用户的平均评分和每个项目的平均评分的预测变量形成了强大的基线,令人惊讶地难以超越(就原始预测准确性而言)。当我向查尔斯·埃尔坎(Charles Elkan)询问此事时,他提到有已发表的论文,其报告的结果未能超过该基线。尽管这很有趣,但他指出(释义)``这不仅与准确性有关;没有人喜欢线性基线,因为它向所有人提出了相同的建议。''

我决定使用 电影镜头10m 数据集。首先,对于每个用户,我随机保留其两个评分,然后将其余评分添加到训练集中。我使用 分析重要性感知更新,用于分位数损失。然后,我在测试集中计算了评级MAE。我还计算了每个用户的AUC,如果模型正确地订购了两个保留的等级,则定义为1,否则定义为0;将整个用户的平均数量得出的结果称为``用户AUC''。当然,如果要针对AUC进行优化,则应简化为成对分类,并使用铰链损耗,而不要使用分位数损耗。但是我也很感兴趣,我在MAE中看到的适度收益是否会导致AUC收益更大。结果如下:\ [
\ begin {array} {| c | c | c |}
\ mbox {模型}&\ mbox {MAE(测试集)}&\ mbox {用户AUC(测试集)} \\ \ hline
\ mbox {最佳常数}&\ mbox {0.420}&\ mbox {0.5} \\
\ mbox {线性}&\ mbox {0.356}&\ mbox {0.680} \\
\ mbox {Dyadic $ k = 1 $}&\ mbox {0.349}&\ mbox {0.692} \\
\ mbox {Dyadic $ k = 5 $}&\ mbox {0.338}&\ mbox {0.706} \\
\ mbox {Dyadic $ k = 10 $}&\ mbox {0.335}&\ mbox {0.709}
\ end {array}
\]如前所述,预测升幅(针对两个指标)的最大份额来自线性基线,即$ \ alpha_ {user} + \ beta_ {movie} + c $形式的模型。添加具有潜在维度$ k $的形式为$ a_ {user} ^ \ top b_ {movie} $的附加二项项会稍微提高准确性(尽管我没有进行交叉验证,将User AUC视为二项式意味着$ 0.004 $的标准误,这表明用户AUC的二元提升几乎没有意义)。

接下来,我介绍了推荐多样性。我从用户中随机抽取了一个子样本(结果大小为11597),详尽估计了数据集中每个电影的排名,然后为每个用户计算了前三部电影。在每种尺寸$ n = \ {1,2,3 \} $下,我查看了建议该尺寸的最受欢迎电影集的发布频率($ \ max p_n $),并且还计算了推荐的电影(集合,而不是列表:如果一个用户有推荐$ a,b,c $,而另一个用户有推荐$ c,b,a $,则认为它们相同)。 \ [
\ begin {array} {| c | c | c | c | c | c | c |}
\ mbox {模型}&\ max p_1&\ mbox {独特的1组}&\ max p_2&\ mbox {独特的2组}&\ max p_3&\ mbox {独特的3组} \\ \ hline
\ mbox {线性}&\ mbox {1}&\ mbox {1}&\ mbox {1}&\ mbox {1}&\ mbox {1}&\ mbox {1} \\
\ mbox {Dyadic $ k = 1 $}&\ mbox {0.478}&\ mbox {6}&\ mbox {0.389}&\ mbox {10}&\ mbox {0.218}&\ mbox {18} \\
\ mbox {Dyadic $ k = 5 $}&\ mbox {0.170}&\ mbox {112}&\ mbox {0.120}&\ mbox {614}&\ mbox {0.069}&\ mbox {1458} \\
\ mbox {Dyadic $ k = 10 $}&\ mbox {0.193}&\ mbox {220}&\ mbox {0.102}&\ mbox {1409}&\ mbox {0.035}&\ mbox {3390}
\ end {array}
\]正如预期的那样,线性模型中没有推荐的多样性。然而,有趣的是,即使准确性指标没有显着提高,分集也会随着潜在维数的增加而爆炸。对于$ k = 10 $,前3个建议集中的多样性是巨大的:共享相同前3个建议的最大用户组仅占用户群的3.5%。 ($ k = 10 $和$ \ max p_1 $的0.193结果不是错别字;即使有更多推荐的独特电影被推荐为用户的顶级电影,$ k = 10的最受欢迎的#1电影与$ k = 5 $相比,选择$的频率更高。不确定发生了什么。)

如果您要去产品经理那里说:“我有两个推荐模型,它们具有相同的准确性,但是一个向所有人提出相同的建议,而另一个向不同的人提出不同的建议,您想要哪个?”您可以打赌产品经理会说第二个。实际上,为了达到推荐多样性而牺牲一些准确性可能是可以接受的。考虑到二元模型可以提高准确性和多样性,因此是双赢的。

1条评论:

  1. 让我想起了克里斯·迪克森's "chipotle problem."

    """个性化网站Hunch的联合创始人Chris Dixon称此为"Chipotle问题。"事实证明,如果您正在设计就餐推荐算法,'很难避免大部分时间将大多数人送往Chipotle。像Chipotle这样的人,周围有很多人,尽管它永远不会打击任何人's mind, it'一贯的三到四星级的体验。由于许多个性化和推荐算法的设计方式,它们'这样我会比较保守—那些五星级的体验更难预测,有时甚至会成为结果。当然,他们'重新记住我们的经历。"""
    http://blogs.hbr.org/cs/2011/05/seven_things_human_editors_do.html

    也许应该为用户提供选择他们希望自己的推荐有多高风险(高差异)的选项。

    回复删除