一、学习目标
1.了解内容的定义和获取方法
2.学习基于内容设计的推荐系统
3.认识基于知识的两类推荐系统并进行对比
二、内容定义与获取
1.什么是内容
在推荐系统中,内容主要指对商品的文字描述,所以属于NLP领域,而不是CV领域。而最后提取到的内容是一系列关键词。
2.内容提取
常见的获取关键词的方法就是统计每个词的tf-idf值:
在比较两个商品的相似度,或者用户和商品的相似度,等价为用户向量和商品描述文档向量的相似度,而这个相似度可以使用归一化向量的余弦相似度来表示,即向量的夹角:
3.向量空间模型的改进:
三、基于内容的推荐系统
有了用户向量和商品向量,显然我们可以使用最近邻方法来获取最接近用户向量的前n个商品作推荐:
当然,还可以使用概率模型和线性分类器:
虽然该推荐方法用到了内容的信息,但不可避免的出现很大的局限性:
四、基于知识的推荐系统
基于知识的推荐系统可以解释成下图所示:
第一个问题,为什么要使用知识,它跟内容的区别是什么?知识与内容是相似的东西,都是商品的特征集合,内容是关键词,而知识是商品的属性。
第二个问题,如何推荐?为此,提出了两个方向:基于约束的、基于案例的:
1.基于约束的推荐系统
其包括两个部分:构建知识库和推导可推荐商品:
由于其要求硬性满足用户需求,所以容易产生没有商品匹配的情况。于是可以选择设置默认推荐的方法:
或者列出满足部分需求的商品,其中QuickXPlain算法是一个计算冲突集的算法其过程详细如下:
以一个例子为例:
显然,基于约束的推荐系统由于太硬性导致很多问题,于是又相对宽松的基于案例的推荐系统。
2.基于案例的推荐系统
在这类推荐系统中,也是计算用户需求与商品知识的相似性,但相对宽松,不保证都符合,只是不符合的属性会拉低分数。
例如下图有价格price和像素填充率mpix两个要求,可以很快速找到符合用户要求的商品,并进行排序:
3.小结:
五、总结
基于内容和知识的两类推荐各有各的优势,但实际的技术手段是一样的,内容描述商品的关键词,知识描述商品的属性。