Open suchow opened 4 years ago
Meta
Details
macau_blocked.jl
can be removed.macau_hmc.jl
, macau_sgd.jl
and macau_vb.jl
all solve only the special case of a single matrix without side information, i.e., the standard BPMF. So I don't mind retiring these files as they are not required for the main functionality of the package.Regarding parallelism, do you have a sense of how much effort would be required to implement parallelism for the general multi-relational plus side-information case?
Actually, I think the effort might not be too large at all (unless I've forgotten something). Basically, the algorithm is the same when sampling the latent matrix of one entity, each row can be sampled independently. Thus, one can parallelize over rows. The complexity in the multiple relation case is that for each row one needs to access data from more than one relation. But otherwise the parallelization strategy is the same.
I'm opening this issue to begin a conversation about upgrading BayesianDataFusion.jl to be compatible with the most recent version of Julia, 1.x. We've begun upgrading the package on a fork and have succeeded in bringing most it up to date.
I have a few questions for you:
Meta-level questions
Substantive questions
test/sparse_csr.jl
tests a function namedsparse_csr
that casts a matrix of type SparseMatrixCSC to type SparseMatrixCSR. However, SparseMatrixCSR matrices are not used anywhere in the codebase except in tests. Is this a vestige of previous development? Is there any reason why it cannot be removed entirely?macau_blocked.jl
appears to be a stub that is not used anywhere in the code. Can it be safely removed?macau_hmc.jl
,macau_sgd.jl
, andmacau_vb.jl
appear to implement Hamiltonian Monte Carlo, Stochastic Gradient Descent, and Variational Bayes variants of Macau. However, only the HMC variant has tests. Are all three functional? Are there any limitations? (Specifically, can they be used to fit any model thatmacau.jl
can fit?)