我有一份基于内容的推荐信.很好。我确信这是解决这个问题的正确方法(将已建立的“用户”与几乎总是新的、但包含与现有项相似的已知特性的“项目”匹配起来)。
当我进行研究时,我发现几乎所有基于内容的过滤的例子都以文章/电影为例,并且只考虑使用文本块中编码的tf-以色列国防军功能。这并不是我所要处理的,但我的大部分特征都是布尔特征,所以做一个类似的向量和观察余弦距离并不是特别困难。我也有一个连续的特性,我缩放并包含在向量中。就像我说的,它看起来很管用,但是很不确定,我想我知道为什么.
我所使用的持续功能是一个评分(让我们称之为“美味”),在几乎所有的情况下,一个更好的分数将表明一个项目更有利于用户。它是连续的,但它也有一个明确的“方向”(不确定这是否是正确的术语)。一个方向上的错误与另一个方向上的错误不一样。
在我的例子中,一些用户对得分平庸的“美味”项目给予了很高的评价,但从逻辑上讲,他们还是更喜欢更美味的东西。该用户的向量可能具有2.3的平均美味性。我对余弦距离的理解是,在我的模型中,如果用户遇到两个完全相同的新项目,其中一个的美味度为1.0,另一个的美味度为4.5,这实际上有利于前者,因为向量之间的距离较短。
如何修改或合并其他类型的距离度量,其中考虑到在一个方向上的美妙误差/距离与另一个方向上的误差/距离并不相同?
(第二个问题是,我如何决定如何最好地缩放布尔功能旁边的这个连续特性?)
发布于 2018-07-31 16:41:04
解决这一问题的基本方法有两种:
(1)编写自己的距离函数。显而易见的方法是从每个向量中删除deliciousness元素,独立地计算这种差异。在向量的其余部分使用余弦相似度。根据需要将这个图形与味觉差异结合起来。
(2)转换deliciousness数据,使结果的度量是线性的。这将允许一个“正常”距离度量完成其预期的工作。
https://stackoverflow.com/questions/51618103
复制相似问题