一般推荐问题和搭配问题的异同

现有数据集

三部分:
商品信息 -》 基于内容的、相似度 《- 搭配类目过滤
专家搭配 -》 概率模型(马尔可夫?)专家知识 X
历史记录 -》 同时购买次数-》相关性特征构建

问题角度

一般的推荐问题是: 把物品推荐给人
搭配推荐问题是: 把物品推荐给物品,找搭配

基于协同过滤

  一般的协同过滤,就是原本是直接评价人和物品的关系的,现在通过协同历史评分表现,把对应评分高的物品的相似物品推荐给用户(item-based);或者把物品推荐给评分兴趣相似的用户(user-based)。
  因此,若是用协同过滤,评分rate就是物品对于物品的关系。

  • 第一步,关键在于这个rate的构建,rate就是我所说的搭配度
  • 第二步,对评分矩阵的处理:
    • 稀疏矩阵分解?
    • 用于协同过滤

评价方式

从结果上说:

  • 搭配推荐评价推荐结果的标准是相对于专家搭配套餐的命中、召回率,map@200(Mean Average Precision)。
  • 而普通推荐,是用测试用户的实际购买行为作为参考的准确率、多样性等。

其实是类似的。

  • 普通推荐,评价基于大量用户的行为,具有一定的客观性,答案要接近用户的行为;
  • 物品搭配,评价基于专家的知识,有主观性,但是可以认为是客观的,因为答案的目标是要接近专家搭配。

  所以本搭配问题本质上也是推荐,只不过不叫推荐;推荐也不仅是推荐,而是要模拟用户的行为,这样可以更好地促进购买行为。

数据集

  大多推荐算法所用的公用数据集,都是用户对于item(电影、书籍、新闻)的点击或评分记录,它们本身就有rate,并且表达了用户对item的关系强弱.
  而本问题,不仅要找到一个合适的评分rate,也要研究如何利用这些评分进行搭配。

其他问题

  若要考虑泛化到一般问题,那么就必须提炼出一个点,是可以应用在其他场景下的。

  考虑到原本的问题中,数据较为原始而与大多数据集有区别,通常意义上的相似度无法解释两个物品之间的关系,因此,需要构建一个“搭配度”,而这个“搭配度”应该也是一个创新点吧。那么如何泛化这个搭配度的构建呢?如果需要在这个上面做泛化,就需要找到其它类似的数据集。而什么类型的问题也会涉及到“搭配”这个概念呢?拥有不同分类的商品才可能涉及到“搭配”,但是大多公用数据集,都是电影、书籍、新闻,怎么存在这种类型的搭配另一种更好的情况呢?

  那么,如果对于评分矩阵的处理的话,不就回归成跟别人一样研究协同过滤相关的各种优化了吗?但是本问题的两个对象的维度一样大,都是商品-商品的量。

  若是基于专家搭配套餐,再结合商品基本信息,问题就变成了,通过学习已知的商品间标记知识,模拟专家思路,生成类似的搭配方式。而研究的对象(商品)包含了若干(待提取/预处理的)特征,即寻找代表特征和特征之间的关系。在本问题中,特征可能是商品的某个分词、类别,在其他问题中,可能是对象的标签之类的。这也比较容易泛化。但是一般数据集难找,而这种做法目前仍未深入研究,耗时较长。