解构电商、O2O:挖掘用户的“潜意识”-推荐系统( 五 )


由下图我们可以看到首先我们会将所有的样本数据与当前需要比对的样本进行距离测算 , 根据测算距离生成一个由近及远的列表 。 在所有样本比对完毕后将当前列表选取K个样本并判断当前样本中多数项的属性特征 , 将该属性特征赋予被比对的商品完成推荐结果输出 。 我们通过图来看下临近算法运行的原理 。
当范围K选取的是C1值时 , 则认为当前比对样本的特征应该是圆形 , 因为在范围内圆形占多数项 。 而当我们把范围K的值调整为C2时 , 我们发现比对样的特征变为了正方形 。 所以kNN的临近算法会因为K的范围选取产生结果的巨大变化 。 如下图
解构电商、O2O:挖掘用户的“潜意识”-推荐系统
文章图片
而目前的主流协同过滤虽然还是使用计算相似度来进行推荐 , 但策略上已经发生了变化 。 按维度分包括基于用户维度和基于商品维度 。 基于用户维度(User-Based:Rowsimilarity)是指以用户为参照物判断和当前用户相似的用户群体的喜好 , 从而得到相似用户群体中包含且当前用户未曾购买的商品进行推荐 。
如果我们把用户和商品关系列一个矩阵 , 则按用户维度也可以看做是行相似性 。 下表可以看到用户A购买时 , 我们通过查询比对发现用户A和用户C是相似群体 , 所以根据用户C的特征推荐商品D给用户A 。
解构电商、O2O:挖掘用户的“潜意识”-推荐系统
文章图片
基于商品维度(Item-Based:Colunmsimilarity)也叫做基于项目维度 , 通常指除人以外的实体 。 项目在电商平台则代表商品维度 , 而新闻、音乐类平台则代表其他的实体 。 与基于用户维度不同的地方 , 基于项目维度是以商品(下文将项目统一称作商品)为参照物判断找到和当前物品偏好相似的物品 , 然后根据用户历史的拍好情况推荐相似品 。
我们还用上述的这个关系矩阵来看基于商品维度的处理方式 。 购买商品A的用户和商品D的人群很相似 , 所以当用户购买A时 , 我们可以推荐商品D给用户 。 所以基于商品维度又叫做列相似性 。
解构电商、O2O:挖掘用户的“潜意识”-推荐系统
文章图片
两种维度的算法都各有优缺点 , 衡量使用的标准主要是选取参照物叫少的维度 。 例如电商平台相对于庞大的用户群体来说商品相对固定 , 商品之间的关系变化也较少 , 所以使用以商品为参照物可以大大减少计算的量级和复杂度 。 而新闻类则相反 , 用户相对内容更为稳定 , 则使用用户为参照处理起来更为便捷 。
同时基于商品维度的算法相对于基于用户维度的算法 , 结果集更为稳定 , 但丰富性相对较低 。 所以如何取舍要依赖于平台对于推荐的实际业务要求 。 更多的时候可以使用混合算法 , 即按照一定的配比从多种算法上获取商品进行去重、加权、排序 。
一般来说在使用协同过滤算法时候有几个技巧:
低频的物品可以做过滤 , 减少杂质对于整体计算的影响降低高频热门物品的权重 , 避免出现大量推荐重复显示高频商品的问题 。 打分的分值可以根据时间的递进进行衰减 , 即越靠近现在越高这里简单介绍几种算法的公式 , 具体的算法细节可以自行百度 。 产品层面知悉就可以了 。
Cosine-basedSimilarity(Cosine相似度):常用于计算文档数据相似度 。
PearsonCorrelationSimilarity(皮尔逊相关度):计算两个定距变量的相似度 。
AdjustedCosineSimilarity(校正Cosine相似度):修正了余弦相似度算法对于绝对数值不敏感的部分 。
三、推荐系统架构推荐系统按照处理流程的划分也有若干层 。 从效果来看业务特征加特殊特征的精细度决定效果的最终上限 。 结构如下图