SVDFeature

  SVDFeature 是由上海交大Apex Data & Knowledge Management Lab(APEX)开发的一个推荐系统工具包。他们提出了一种基于feature 的矩阵分解的框架。SVDFeature使设计推荐算法变得非常简单,只需在此框架内增加一些新的feature(如neighborhood特征、时间特征等)。SVDFeature 曾在KDDCup’11 track 1中取得单模型的最好成绩。

SVDFeature 模型如下

Model

这里写图片描述

公式1

其中α表示用户特征,β表示商品特征,γ表示全局特征

Active function and Loss function有以下几种选择:
这里写图片描述

模型训练

SVDFeature 采用随机梯度下降进行训练。对于L2 loss其参数更新规则如下:
这里写图片描述

许多矩阵分解模型都可以包含在此框架内:

(1)矩阵分解模型
矩阵分解
对应的特征表示为:
这里写图片描述

(2)Pairwise rank 模型
这里写图片描述
对应的特征表示为:
这里写图片描述

(3)SVD++ 模型
这里写图片描述
相当于SVDFeature的特例:
这里写图片描述

处理大规模数据

  推荐系统中的数据集通常很大,而单机内存容量有限,很难将所有数据一次性加载到内存中。SVDFeature采用的方案是将数据先存储在硬盘(buffer file)上,当训练过程中用到该数据时再从硬盘中读取。另外,因为是采用随机梯度下降进行训练,需要先将数据进行shuffle后再存到buffer file上。采用这种方案,无论要处理的数据集有多大,只要模型参数能够加载到内存中就可以运行。
  为了降低频繁读取硬盘的开销,SVDFeature采用了pre-fetch 策略。一个专门的线程负责读取数据,一个线程负责模型训练。这样只要I/O的速度和模型训练的速度相近,I/O的开销就可以被隐藏。
  这里写图片描述

软件使用

  1. SVDFeature-1.2.2 下载地址:
    http://apex.sjtu.edu.cn/projects/33

  2. 下载完成后进行编译
    ubuntu 系统:分别在主目录和tools目录下执行make命令

  3. 运行demo文件夹下的例子
    采用movielens ml-100k 数据集
    basicMF:
    这里写图片描述
    迭代40次 rmse:
    这里写图片描述

    implicitFeedback
    这里写图片描述
    每次迭代RMSE为:
    这里写图片描述

    pairwiseRank
    这里写图片描述

参考文献

《Feature-Based Matrix Factorization》
《SVDFeature: A Toolkit for Feature-based Collaborative Filtering》
《Svdfeature-manual》

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值