1. 相似度模型的应用场景
简单的说,相似度模型的应用场景就是,需要找到和某个实体相似的其他实体。
比如:
(1)商铺选址:某公司要在新城市开新的店铺,需要选址,可以使用相似度模型,找到和现有市场中表现好的商铺地址相似的地点;
(2)广告宣传:其实和商铺选址类似,要选择一个好的宣传地点,可以使用相似度模型,找到和现有最好的宣传地点最相似的地点;
(3)个性化推荐:这是现在互联网领域,尤其是电子商务领域应用很多的场景。用户购买了某个产品,或使用了某个功能,找到和该产品或功能相似的其他产品或者功能推荐给用户。当然,实际的模型不仅仅是计算相似度这么简单,个性化推荐本身就是一个很大的领域。以后有机会在详细写。但是个性化推荐的一个核心环节就是相似度的计算。
2. 相似度的一种常用计算方法:根据实体之间的距离确定相似度
1) 距离越大,相似度越低,距离越小,相似度越高。距离计算方式:item各特征的欧氏距离。
2) 为了避免量级大的特征对最终结果的影响太大,应该把item的各特征值标准化。
3) 标准化的特征值表示的是特征值和均值相差几个标准差。
3. 实例:新店选址
(1) 背景:公司X卖木材火炉,业务从A州扩大到B州,需要确定在B州的哪个城镇设销售点。
(2) 方法:
1) 找到A州销售好的城镇和销售差的城镇;
2) 找到特征集T,这些特征值在A州销售好的城镇和销售差的城镇有明显的差别;
3) 确定T中每一个特征的理想值,得到理想特征值的集合;
4) 找到B州特征集T和理想特征值集合的相似度最高(距离最近)的城镇。
(3) 销售好的标准:X公司产品在当地家庭的覆盖率Y。
(4) 把A州各城镇的Y值按从高到底排序。
(5) 把候选变量集中的各变量按对应的Y值从高到低的顺序排序。
(6) 找到候选变量集中按Y值从高到低具有明显差异的变量(尤其是有单调性的变量),得到初选变量集。
(7) 从初选变量集里进一步筛选变量,比如用相关分析,得到特征变量集T。
(8) 确定T里各变量的理想值(最佳理想值:比A州销售最好的30%的城镇的变量的平均值更好一些),形成理想特征值集合Tb;
(9) 计算Tb里各变量的标准化值(z分值):
(10) 把B州所有城镇的T里各变量标准化(使用A州的均值和标准差);
(11) 使用标准化值计算B州所有城镇和Tb欧氏距离;
(12) 把距离值用改变单调性的方式进行转换,得到相似度得分;
(13) 取相似度得分高的作为目标城镇。
(14) 模型验证方法:
1) 使用A州的数据计算T里变量和目标变量Y的相似性;
2) 进行卡方检验;
3) 计算A州各城镇和Tb的距离,做距离和Y的二维散点图,直观观察。
4. 计算相似度的方式
(1) 距离度量
1) 欧氏距离(标准化后的欧氏距离):
2) 明氏距离:欧氏距离的推广
3) 曼哈顿距离:明氏距离的p取1时的计算方式
4) 切比雪夫距离:p趋向于无穷大时的明氏距离
5) 马氏距离
(2) 相似度度量
1) 余弦相似度:两个个体向量夹角的余弦值,和距离度量相比,余弦相似度更加注重两个向量方向上的差异,而不是距离
2) 皮尔森相关系数:即相关分析中的相关系数r,对两个个体的向量基于总体标准化后计算向量夹角的余弦值。
3) Jaccard相似系数:主要用于计算符号度量或者布尔度量的个体的相似度,因为符号度量或者布尔度量只能看出向量各维度值是否相同,所以Jaccard相似系数只关心个体间的各维度值是否一致这个问题。
4) 调整的余弦相似度:把X和Y各属性值都减去X和Y所有属性值相加后的均值后,再用余弦函数计算相似度
(3) 欧氏距离和余弦相似度的区别:欧氏距离是最常见的距离度量,而余弦相似度则是最常见的相似度度量,很多的距离度量和相似度度量都是基于这两者的变形和衍生
从图上可以看出距离度量衡量的是空间各点间的绝对距离,跟各个点所在的位置坐标(即个体特征维度的数值)直接相关;而余弦相似度衡量的是空间向量的夹角,更加的是体现在方向上的差异,而不是位置。如果保持A点的位置不变,B点朝原方向远离坐标轴原点,那么这个时候余弦相似度cosθ是保持不变 的,因为夹角不变,而A、B两点的距离显然在发生改变,这就是欧氏距离和余弦相似度的不同之处。
根据欧氏距离和余弦相似度各自的计算方式和衡量特征,分别适用于不同的数据分析模型:欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异;而余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分用户兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题(因为余弦相似度对绝对数值不敏感)。