算法实际表现和数据污染问题

推荐系统初上线后,表现很可能低于算法预期。一部分原因是,实际数据并不像测试数据那样合理。尤其可能存在部分特异数据,严重影响推荐效果。

举个例子:基于用户兴趣直接推荐。用户兴趣、物品都被表现为特征向量,通过统计用户和物品向量中相同项值之积的综合,表现用户和物品的相似关系。

物品的特征一般是TFIDF的结果。
用户特征是其喜好的物品特征的合成,再归一化的结果。

假设,用户A,归一化特征为[(F1, 1.0), (F2, 0.7), (F3, 0.5),...]
那么对物品B和C,B特征为[(F1, 0.7), (F3, 0.2),...],C特征为[(F2, 0.7), (F3, 0.3),...]
结果B比C更应该被推荐。
以上是正常的情况。

这时,添加大量的物品,特征为[F1, 1.0]。这些物品计算结果都为1.0*1.0=1.0,可能比绝大部分物品都更容易被推荐,即使这些单特征物品是信息很少,不应该被推荐的物品。

而且,在TFIDF运算中,越是内容丰富的,各特征值都不会特别高;反而一两个词的,特征值会很高。(一个就是1.0)

解决这个问题,一般可以:
1、物品特征归一化,最大值为1.0。
2、过滤特征向量过短的物品。

你可能感兴趣的:(算法实际表现和数据污染问题)