nmfae fits a three-layer nonnegative matrix factorization model
\(Y_1 \approx X_1 \Theta X_2 Y_2\), where \(X_1\) is a decoder basis
(column sum 1), \(\Theta\) is a bottleneck parameter matrix,
\(X_2\) is an encoder basis (row sum 1), and \(Y_2\) is the input matrix.
When Y2 = Y1, the model acts as a non-negative autoencoder.
When Y1 != Y2, it acts as a heteroencoder.
Initialization uses a three-step NMF procedure via nmfkc:
(1) nmfkc(Y1, rank=Q) to obtain \(X_1\),
(2) nmfkc(Y1, A=Y2, rank=Q) with fixed \(X_1\) to obtain \(C = \Theta X_2\),
(3) nmfkc(Y2, rank=R) to factor \(C\) into \(\Theta\) and \(X_2\).
Usage
nmf.rrr(
Y1,
Y2 = Y1,
rank1 = 2,
rank2 = NULL,
epsilon = 1e-04,
maxit = 5000,
verbose = FALSE,
...,
rank = NULL,
rank.encoder = NULL
)Source
Satoh, K. (2025). Applying Non-negative Matrix Factorization with Covariates to Multivariate Time Series. Japanese Journal of Statistics and Data Science.
Arguments
- Y1
Output matrix \(Y_1\) (P1 x N). Non-negative. May contain
NAs (handled viaY1.weights).- Y2
Input matrix \(Y_2\) (P2 x N). Non-negative. Default is
Y1(autoencoder).- rank1
Integer. Rank of the response basis \(X_1\) (P1 x Q). Default is 2.
- rank2
Integer. Rank of the covariate basis \(X_2\) (R x P2). Default (
NULL) setsrank2 = rank1.- epsilon
Positive convergence tolerance. Default is
1e-4.- maxit
Maximum number of multiplicative update iterations. Default is 5000.
- verbose
Logical. If
TRUE, prints progress messages during fitting. Default isFALSE.- ...
Additional arguments:
methodObjective function: Euclidean distance
"EU"(default) or Kullback-Leibler divergence"KL". Both use Lee-Seung multiplicative updates for the three factors \(X_1, \Theta, X_2\) of \(Y_1 \approx X_1 \Theta X_2 Y_2\); for"KL"the residual SEsigmaisNA(not on the data scale).Y1.weightsOptional non-negative weight matrix (P1 x N) or vector for \(Y_1\), analogous to the
weightsargument oflm. Loss becomes \(\sum W_{ij} \, (Y_{1,ij} - \hat Y_{1,ij})^2\) (lm()-style, linear in \(W\)). Logical matrices (TRUE/FALSE) are also accepted. Typical ECV / CV usage passes a binary mask \(W \in \{0,1\}\) for held-out elements; real-valued weights for importance weighting are also supported. Default: ifY1hasNA, a binary mask is auto-generated (0 forNA, 1 elsewhere).C.L1L1 regularization parameter for \(C\). Default is 0.
X1.L2.orthoL2 orthogonality regularization for \(X_1\) columns. Default is 0.
X2.L2.orthoL2 orthogonality regularization for \(X_2\) rows. Default is 0.
seedInteger seed for reproducibility. Default is 123.
nstartNumber of random restarts for the
nmfkc()initialisation steps (passed to the k-means initialiser of the \(X_1\) and \(X_2\) factorisations). Default1(single start; the historical behaviour). A larger value (e.g.\ 10-20) gives a more stable initialisation and is recommended before inference.print.traceLogical. If
TRUE, prints progress. Default isFALSE.
- rank, rank.encoder
Deprecated aliases of
rank1/rank2, kept for backward compatibility (Q/Rare also accepted via...).
Value
An object of class "nmfae", a list with components:
- X1
Decoder basis matrix (P1 x Q), column sum 1.
- C
Parameter matrix (Q x R).
- X2
Encoder basis matrix (R x P2), row sum 1.
- Y1hat
Fitted values \(X_1 \Theta X_2 Y_2\) (P1 x N).
- rank
Named integer vector
c(Q, R).- method
Objective used (
"EU"or"KL").- objfunc
Final objective value.
- objfunc.iter
Objective values by iteration.
- r.squared
\(\mathrm{cor}(Y, \widehat Y)^2\) (Pearson; in \([0,1]\)).
- r.squared.uncentered
Uncentered \(R^2 = 1 - \|Y - \widehat Y\|_F^2 / \|Y\|_F^2\) (baseline = zero matrix).
- r.squared.centered
Row-mean centered \(1 - \|Y - \widehat Y\|_F^2 / \|Y - \bar Y_{p\cdot}\|_F^2\).
- niter
Number of iterations performed.
- runtime
Elapsed time as a
difftimeobject.- n.missing
Number of missing (or zero-weighted) elements in \(Y_1\).
- n.total
Total number of elements in \(Y_1\) (P1 x N).
References
Lee, D. D. and Seung, H. S. (2001). Algorithms for Non-negative Matrix Factorization. Advances in Neural Information Processing Systems, 13.
Saha, S. et al. (2022). Hierarchical Deep Learning Neural Network (HiDeNN): An Artificial Intelligence (AI) Framework for Computational Science and Engineering. Computer Methods in Applied Mechanics and Engineering, 399.