Does FactorizationRecommender disregard solver param?

User 3218 | 3/1/2016, 5:09:23 PM

I'm creating a FactorizationRecommender via the factorization_recommender.create() method and explicitly pass solver=adagrad as an argument. But in the console output I see this:

<pre> Training factorizationrecommender for recommendations. +--------------------------------+--------------------------------------------------+----------+ | Parameter | Description | Value | +--------------------------------+--------------------------------------------------+----------+ | numfactors | Factor Dimension | 8 | | regularization | L2 Regularization on Factors | 1e-08 | | solver | Solver used for training | adagrad | | linearregularization | L2 Regularization on Linear Coefficients | 1e-10 | | binarytarget | Assume Binary Targets | True | | sidedatafactorization | Assign Factors for Side Data | True | | max_iterations | Maximum Number of Iterations | 50 | +--------------------------------+--------------------------------------------------+----------+ Optimizing model using SGD; tuning step size. ...
+---------+-------------------+------------------------------------------+ </pre>

If you notice the last line pasted here, it says "Optimizing model using SGD". What's going on? I'm using version 1.8.3.

Comments

User 1207 | 3/1/2016, 9:11:14 PM

Hello Delip,

Adagrad is just a variant of SGD that adaptively scales the gradients based on historical information from previous steps. Thus it's still SGD :-). I'll look in to making that message clearer, though -- I can see the confusion.

-- Hoyt


User 3218 | 3/1/2016, 10:22:15 PM

@hoytak yes, that's right (about adagrad and sgd). The console output is confusing. Thanks!