2.1.0
User Documentation for Apache MADlib
lmf.sql_in File Reference

SQL functions for low-rank matrix factorization. More...

Functions

float8 [] lmf_igd_transition (float8[] state, integer row_num, integer column_num, float8 val, float8[] previous_state, integer row_dim, integer column_dim, integer max_rank, float8 stepsize, float8 scale_factor)
 
float8 [] lmf_igd_merge (float8[] state1, float8[] state2)
 
float8 [] lmf_igd_final (float8[] state)
 
aggregate float8 [] lmf_igd_step (integer row_num, integer column_num, float8 val, float8[] previous_state, integer row_dim, integer column_dim, integer max_rank, float8 stepsize, float8 scale_factor)
 
float8 internal_lmf_igd_distance (float8[] state1, float8[] state2)
 
lmf_result internal_lmf_igd_result (float8[] state)
 
void internal_execute_using_lmf_igd_args (varchar sql, integer, integer, integer, float8, float8, integer, float8)
 
integer internal_compute_lmf_igd (varchar rel_args, varchar rel_state, varchar rel_source, varchar col_row, varchar col_column, varchar col_value)
 
integer lmf_igd_run (varchar rel_output, regclass rel_source, varchar col_row, varchar col_column, varchar col_value, integer row_dim="SELECT max(col_row) FROM rel_source", integer column_dim="SELECT max(col_col) FROM rel_source", integer max_rank=20, float8 stepsize=0.01, float8 scale_factor=0.1, integer num_iterations=10, float8 tolerance=0.0001)
 Low-rank matrix factorization of a incomplete matrix into two factors. More...
 
integer lmf_igd_run (varchar rel_output, regclass rel_source, varchar col_row, varchar col_column, varchar col_value, integer row_dim, integer column_dim, integer max_rank, float8 stepsize, float8 scale_factor)
 
integer lmf_igd_run (varchar rel_output, regclass rel_source, varchar col_row, varchar col_column, varchar col_value, integer row_dim, integer column_dim, integer max_rank, float8 stepsize)
 
integer lmf_igd_run (varchar rel_output, regclass rel_source, varchar col_row, varchar col_column, varchar col_value, integer row_dim, integer column_dim, integer max_rank)
 
integer lmf_igd_run (varchar rel_output, regclass rel_source, varchar col_row, varchar col_column, text col_value)
 

Detailed Description

Date
June 2012
See also
For a brief introduction to Low-rank Matrix Factorization, see the module description Low-Rank Matrix Factorization.

Function Documentation

◆ internal_compute_lmf_igd()

integer internal_compute_lmf_igd ( varchar  rel_args,
varchar  rel_state,
varchar  rel_source,
varchar  col_row,
varchar  col_column,
varchar  col_value 
)

◆ internal_execute_using_lmf_igd_args()

void internal_execute_using_lmf_igd_args ( varchar  sql,
integer  ,
integer  ,
integer  ,
float8  ,
float8  ,
integer  ,
float8   
)

◆ internal_lmf_igd_distance()

float8 internal_lmf_igd_distance ( float8 []  state1,
float8 []  state2 
)

◆ internal_lmf_igd_result()

lmf_result internal_lmf_igd_result ( float8 []  state)

◆ lmf_igd_final()

float8 [] lmf_igd_final ( float8 []  state)

◆ lmf_igd_merge()

float8 [] lmf_igd_merge ( float8 []  state1,
float8 []  state2 
)

◆ lmf_igd_run() [1/5]

integer lmf_igd_run ( varchar  rel_output,
regclass  rel_source,
varchar  col_row,
varchar  col_column,
varchar  col_value,
integer  row_dim = "SELECT max(col_row) FROM rel_source",
integer  column_dim = "SELECT max(col_col) FROM rel_source",
integer  max_rank = 20,
float8  stepsize = 0.01,
float8  scale_factor = 0.1,
integer  num_iterations = 10,
float8  tolerance = 0.0001 
)

This function takes as input the table representation of a incomplete matrix in the sparse (i, j, value) format and decomposes it into the specified set of most significant features of matrices of U and V matrix. The input matrix is expected to have dimension [1:row_dim][1:column_dim], but in sparse format.

Parameters
rel_outputName of the table that the factors will be appended to
rel_sourceName of the table/view with the source data
col_rowName of the column containing cell row number
col_columnName of the column containing cell column number
col_valueName of the column containing cell value
row_dimMaximum number of rows of input
column_dimMaximum number of columns of input
max_rankRank of desired approximation
stepsizeHyper-parameter that decides how aggressive that the gradient steps are
scale_factorHyper-parameter that decides scale of initial factors
num_iterationsMaximum number if iterations to perform regardless of convergence
toleranceAcceptable level of error in convergence.

◆ lmf_igd_run() [2/5]

integer lmf_igd_run ( varchar  rel_output,
regclass  rel_source,
varchar  col_row,
varchar  col_column,
varchar  col_value,
integer  row_dim,
integer  column_dim,
integer  max_rank,
float8  stepsize,
float8  scale_factor 
)

◆ lmf_igd_run() [3/5]

integer lmf_igd_run ( varchar  rel_output,
regclass  rel_source,
varchar  col_row,
varchar  col_column,
varchar  col_value,
integer  row_dim,
integer  column_dim,
integer  max_rank,
float8  stepsize 
)

◆ lmf_igd_run() [4/5]

integer lmf_igd_run ( varchar  rel_output,
regclass  rel_source,
varchar  col_row,
varchar  col_column,
varchar  col_value,
integer  row_dim,
integer  column_dim,
integer  max_rank 
)

◆ lmf_igd_run() [5/5]

integer lmf_igd_run ( varchar  rel_output,
regclass  rel_source,
varchar  col_row,
varchar  col_column,
text  col_value 
)

◆ lmf_igd_step()

aggregate float8 [] lmf_igd_step ( integer  row_num,
integer  column_num,
float8  val,
float8 []  previous_state,
integer  row_dim,
integer  column_dim,
integer  max_rank,
float8  stepsize,
float8  scale_factor 
)

◆ lmf_igd_transition()

float8 [] lmf_igd_transition ( float8 []  state,
integer  row_num,
integer  column_num,
float8  val,
float8 []  previous_state,
integer  row_dim,
integer  column_dim,
integer  max_rank,
float8  stepsize,
float8  scale_factor 
)