隐性的反馈在spark MLlib 中怎样处理这种数据的方法

隐式反馈在spark https://spark.apache.org/docs/2.2.0/mllib-collaborative-filtering.html) 中有介绍,主要基于论文Collaborative Filtering for Implicit Feedback Datasets实现,核心思想:
跟显式反馈不同的是,由于没有显式的rating,因此引入preference以及confidence level, preference表示user对item是否感兴趣;confidence level表示preference的置信度(比如user对item的操作时长或者次数越高,user对item感兴趣的可信度就越高,而对于负样本,即user没有对item操作过,不感兴趣的置信度相对较低,因为user没有操作过item的原因很多,不一定是由于user对item不感兴趣,可能是没有看到等);
数学表达:
隐性的反馈在spark MLlib 中怎样处理这种数据的方法

隐性的反馈在spark MLlib 中怎样处理这种数据的方法
即preference, 隐性的反馈在spark MLlib 中怎样处理这种数据的方法
为user对item的操作次数或者时长等;
隐性的反馈在spark MLlib 中怎样处理这种数据的方法

【隐性的反馈在spark MLlib 中怎样处理这种数据的方法】 隐性的反馈在spark MLlib 中怎样处理这种数据的方法
为confidence,可以有多种量化方法的选择,这里列出的是论文中使用的一种, 隐性的反馈在spark MLlib 中怎样处理这种数据的方法
隐性的反馈在spark MLlib 中怎样处理这种数据的方法
呈正相关;
loss function定义为:
隐性的反馈在spark MLlib 中怎样处理这种数据的方法

confidence在其中体现为, 隐性的反馈在spark MLlib 中怎样处理这种数据的方法
越大,该条样本在整体loss function中的影响就越大。
训练数据的格式为:
user_i item_j rij
….
….
具体可以参考官网https://spark.apache.org/docs/2.2.0/mllib-collaborative-filtering.html以及论文Collaborative Filtering for Implicit Feedback Datasets ,里面有更为详细的说明。


    推荐阅读