第九课:电商推荐系统

补充知识:几种相似度度量方式

现有3个item,user1评分较严,对3个item的评分分别为:3,4,6;user2评分较松,对3个item的评分分别为5,6,5;
如果用“欧氏距离”来计算user1和user2的相似度,则看起来user1和user2的喜好相近。但是,事实上,由于user2评分较松,当其评分为6,表示其不太喜欢,而user1评分较严,评分为6,已经表示其很喜欢。如果用“欧氏距离”,不考虑user之间评分的习惯,则会误认为两个user很相似,事实则不然。
利用Pearson进行度量,将user1和user2的评分去平均,因此,可以真实的表示两个user对item的喜好程度,从而能够更好的评估两个user的相似度。
note that:Pearson为cosin相似度 去平均的结果。
第九课:电商推荐系统_第1张图片

一、推荐系统需求

信息过载的情况下,帮助用户缩短“决策路径”。

二、推荐系统评估指标

1、notation
第九课:电商推荐系统_第2张图片
2、推荐系统评分指标

  • 推荐系统结构
    第九课:电商推荐系统_第3张图片
  • 准确度:评价推荐系统performance的优劣
    1)针对打分系统
    |T|:所有的推荐集合
    第九课:电商推荐系统_第4张图片
    2)针对Top N推荐
    R(u):系统预测推荐;
    T(u):用户实际选择;
    U:all users;
    一般讲,Precision和Recall是相互制约的关系,要想获得较高Precision,往往要牺牲掉部分Recall。
    第九课:电商推荐系统_第5张图片
  • 覆盖度:评估推荐系统对于物品的曝光程度;实际中,希望推荐系统能够曝光更多的物品,使得各个物品均有机会接触到user,出售;
    R(u):系统预测推荐list;
    |I|:全平台的items;
    下列PPT列举了两个评估“曝光度”的方法,其中,利用coverage进行评估时,R(u)可能全为“hot items”,这样,即使coverage很高,但是,实际,推荐系统曝光的都是“hot items”,那些“冷门商品”依然无法接触到user,这种情况,会使Hot items越来越火,而冷门商品越来越冷,到最后,只有hot items能够在“推荐系统平台”存活下来。这是平台不希望看到的,也即:马太效应。
    而第二种方法,利用“熵”来评估推荐系统曝光度,由于,熵在各个item的曝光概率P相等时最大,因而,利用“熵”进行评估,可保证各个item均享有同等的曝光度。其中,熵中P的计算,可以采用频率的方法,在预测出推荐list后,计算各个item曝光的频率,用频率作为P的value。
    第九课:电商推荐系统_第6张图片
  • 多样性:评估推荐系统给user推荐list的多样性
    s(i,j):代表item i 和 item j的相似度;
    R(u):代表推荐系统为user1提供的推荐list;
    下述第一个公式:分子项为推荐list中each two item的相似性,分母为推荐list中item两两组合的组合数,整体表示两个item的平均相似度,1-average similarity表示两个item之间的平均差异度;
    第二个公式:将所有user推荐list item之间的差异度进行加和,求平均,得到推荐系统推荐list中item的差异性(多样性)。
    第九课:电商推荐系统_第7张图片
  • 其它评估推荐系统的指标
    第九课:电商推荐系统_第8张图片

三、推荐算法

1、基于内容的推荐
“基于内容的推荐”在进行推荐时,主要考虑“用户喜欢属性”与“物品属性”之间的相似度,如果相似,则将该物品推荐给用户。其中,“用户喜欢属性”与“物品属性”均可用vector表示。
例如:加入我们要给user推荐news:
首先,我们可以根据news的常用word构建一个dictionary,将news以及“user喜欢属性”均用TF-IDF表示。(我们可以仅根据news set中高频word构建dictionary,然后,将其他鲜见的word都归入unknown中)。
其次,将user看过的news vector进行“加权平均”,作为“user喜欢属性”的vector_user。
第三,将vector_user与各个news的vector_news进行相似度计算(cosin),选择相似度较高的news推荐给user。
具体要点如下PPT:
第九课:电商推荐系统_第9张图片

2、基于用户行为的推荐(协同过滤CF:neighborhood-based algorithm)
协同过滤是基于“近邻”的一种推荐算法,他有两个执行途径:
1)user-based CF;
2)item-based CF;
note that:协同过滤不等于KNN。
其核心思想是:构建一个item-user matrix,matrix的每个元素为user对某一item的评分,根据这个matrix即可进行item 推荐,如下所示为item-user matrix:
第九课:电商推荐系统_第10张图片
1)user-based CF 执行过程:
假设recommender要对user1进行item推荐,现我们通过user vector(item-user matrix column),根据cosin similarity寻找与user1最相近的若干个user。找到以后,将这些user进行加权平均,比如:user1与user_i的相似度为w1,user1与user_j的相似度为w2,则summation中,给user_i乘以w1,给user_j乘以w2,在获得summation后,我们可以将summation中,对各个item的评分看作是user1的评分,将user1未看过,且评分最高的item推荐给user1,即完成了user-based CF。
具体计算公式如下所示:
第九课:电商推荐系统_第11张图片
2)item-based CF 执行过程:
假设recommender要对user1进行item推荐,先要计算movie1的“预测评分”,其具体过程如下:
寻找与movie1相近的几个movie(similarity用cosin计算),然后根据user1对这些movie的评分的加权和来估算user1对movie1的评分,具体计算公式如下所示:
第九课:电商推荐系统_第12张图片
其中,各个movie vector为item-user matrix的row,如下所示:
第九课:电商推荐系统_第13张图片
3)user-base 和 item-based CF比较
一般,item-based CF用的比user-based CF要多。因为,人喜好的易变性;user数量级往往>item数量级。
第九课:电商推荐系统_第14张图片
4)协同过滤优缺点
第九课:电商推荐系统_第15张图片
由于“协同过滤”基于用户行为,因此,对于一个 new recommander 无法使用CF为user进行推荐,此时,应该用“基于内容的推荐”实施“冷启动”。
以下罗列了一些解决“冷启动”的一些措施:
第九课:电商推荐系统_第16张图片

在Collaborative filtering中,存在一个缺陷,即:user/item vector中很多元素为空值,这种情况很可能会造成users/items inner product无法计算的局面,为了避免这一情况的发生,我们可以采用“隐语义模型”,重新计算user-item matrix,使得为空的元素,有值。

3、隐语义模型(latent semantic analysis : LSA)
隐语义模型的主要目的是,重新计算user-item matrix,对original matrix中为空的元素进行数值填充,使得可以直接根据user-item matrix来为user进行item推荐。
隐语义模型的核心思想是:将user-item matrix进行分解,利用分解的两个matrix,重新构建user-item matrix,以便对original matrix中为空的元素进行数值填充,图示如下:
第九课:电商推荐系统_第17张图片
在构建“隐语义模型”时,我们可以简单的利用SVD进行“矩阵分解”,但是,1)SVD的计算复杂度非常高,为O(m3);2)原user-item matrix中为空的元素非常多,不宜用0填充,进行矩阵分解。因此,SVD不适合实际应用。

我们可以简单的利用“优化目标函数”的方法来构建“隐语义模型”,其核心思想如下:
构建目标函数:(r-pq)2+regularization(pq),求分解矩阵p,q,使得目标函数可达到最小。(r为user-item matrix中各个元素的值,为空的元素不需要加入目标函数进行计算)。
在上述目标函数中,我们还可以加入“偏置项”,使得预测值rhat=pq+u+b1+b2,通过这种处理方式,可以使得p,q的计算更容易,其原理类似于(y=wx+b中w的优化,较,y=wx中w的优化,容易)。
该方法的具体思路如下PPT所示:
以下PPT为user-item matrix:
第九课:电商推荐系统_第18张图片
第九课:电商推荐系统_第19张图片
第九课:电商推荐系统_第20张图片
第九课:电商推荐系统_第21张图片
第九课:电商推荐系统_第22张图片
第九课:电商推荐系统_第23张图片

4、word2vec在推荐系统中的应用
个人理解:将商品用“用户行为序列”表示,而“用户行为序列”用word2vec表示。根据这种“商品表示”,寻找商品之间的关联性。
第九课:电商推荐系统_第24张图片

参考博文:word2vec
???工业界中word2vec的具体实现方法;

三、推荐系统其它信息

一个推荐系统平台的成功不仅与“技术”有关,还与他的呈现形式有关(work of product manager):
第九课:电商推荐系统_第25张图片

你可能感兴趣的:(Course-七月-机器学习,推荐算法,机器学习,深度学习)