010-FactoRizationMachines: Machine Learning with Higher-Order Factorization Machines

Description Details Author(s) References See Also Examples

Description

Implementation of three factorization-based machine learning approaches:

- Support Vector Machines (SVM.train) with a linear kernel,

- second-order Factorization Machines [2] (FM.train),

- and higher-order Factorization Machines [1] (HoFM.train),

- and knowledge-extracting or adaptive-order Factorization Machines [3] (KnoFM.train).

Further informations about Factorization Machines are provided by the papers in the references.

Details

This package includes the following methods:

- SVM.train: Method training a Support Vector Machine,

- FM.train: Method training a second-order Factorization Machine,

- HoFM.train: Method training a higher-order Factorization Machine,

- KnoFM.train: Method training a knowledge-extracting or adaptive-order Factorization Machine,

- predict.FMmodel: Predict Method for FMmodel Objects,

- summary.FMmodel and print.FMmodel: Summary and Print Method for FMmodel Objects.

Two learning methods are supported: coordinate descent (regularization suggested) and Markov Chain Monte Carlo (MCMC). To date the task regression ("r") is supported, the task classifiction ("c") will be supported in the future.

Author(s)

Maintainer: Julian Knoll <julian.knoll@th-nuernberg.de>

References

[1] J. Knoll, Recommending with Higer-Order Factorization Machines, Research and Development in Intelligent Systems XXXIII, 2016.

[2] S. Rendle, Factorization Machines with libFM, ACM Transactions on Intelligent Systems and Technology, 3, 2012.

[3] J. Knoll , J. Stuebinger, and M. Grottke, Exploiting social media with higher-order Factorization Machines: Statistical arbitrage on high-frequency data of the S&P 500. FAU Discussion Papers in Economics, University of Erlangen-Nuernberg, 2017.

See Also

SVM.train, FM.train, HoFM.train, predict.FMmodel

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
## Not run: 

# Load libraries
library(FactoRizationMachines)
library(Matrix)

# Load MovieLens 100k data set
ml100k=as.matrix(read.table("http://files.grouplens.org/datasets/movielens/ml-100k/u.data"))
user=ml100k[,1]
items=ml100k[,2]+max(user)
wdays=(as.POSIXlt(ml100k[,4],origin="1970-01-01")$wday+1)+max(items)

# Transform MovieLens 100k to feature form
data=sparseMatrix(i=rep(1:nrow(ml100k),3),j=c(user,items,wdays),giveCsparse=F)
target=ml100k[,3]

# Subset data to training and test data
set.seed(123)
subset=sample.int(nrow(data),nrow(data)*.8)
data.train=data[subset,]
data.test=data[-subset,]
target.train=target[subset]
target.test=target[-subset]

# Predict ratings with Support Vector Machine with linear kernel
# using MCMC learning method
model=SVM.train(data.train,target.train)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))

# Predict ratings with second-order Factorization Machine 
# with second-order 10 factors (default) 
# using coordinate descent learning method (regularization suggested)
model=FM.train(data.train,target.train,regular=0.1)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))

# Predict ratings with second-order Factorization Machine 
# with second-order 10 factors (default) 
# using Markov Chain Monte Carlo learning method
model=FM.train(data.train,target.train)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))

# Predict ratings with higher-order Factorization Machine 
# with 3 second-order and 1 third-order factor and regularization
# using coordinate descent learning method (regularization suggested)
model=HoFM.train(data.train,target.train,c(1,3,1),regular=0.1)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))

# Predict ratings with higher-order Factorization Machine 
# with 3 second-order and 1 third-order factor and regularization
# using MCMC learning method
model=HoFM.train(data.train,target.train,c(1,3,1))
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))

# Predict ratings with adaptive-order Factorization Machine 
model=KnoFM.train(data.train,target.train)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))


## End(Not run)

FactoRizationMachines documentation built on Nov. 17, 2017, 4:21 a.m.