我有一个音乐收听数据矩阵,其中行是独特的音乐艺术家和~90,000列(数据集中每个用户的onne),其中每个值是给定用户听取给定艺术家的标准化次数(即用户收听艺术家的次数除以该用户的听众总数。
我正在使用这些数据来计算艺术家对之间的余弦相似度。基本上,为了计算两位艺术家之间的相似性,您只需确定矩阵中两个相应行之间的余弦相似度(这些行基本上是向量,其中每个特征是数据中每个用户听取艺术家的数量)。那部分相当简单,但这是我的问题:
是否有任何经验法则(甚至更好,有原则的方法)确定您需要使用此方法计算有意义的相似性所需的最小非零维数?作为一个极端的例子,假设我们有一些用户是两个非常模糊的艺术家的唯一听众。我在这里描述的方法会导致这两位艺术家的相似度为1.0,尽管常识告诉我们这两位艺术家根本不是(必然)相似的。
我现在的想法是设置一些最低门槛,无论是对整体受欢迎程度(即所有用户的总听众)和艺术家有,或者是否已经听过艺术家的独特用户的数量。但是,选择一个任意的门槛是很随意的。那些遇到类似问题的人的想法是什么?