22 #ifndef __IMPLICIT_ALS_TRAINING_INIT_TYPES_H__
23 #define __IMPLICIT_ALS_TRAINING_INIT_TYPES_H__
25 #include "algorithms/implicit_als/implicit_als_model.h"
26 #include "algorithms/implicit_als/implicit_als_training_types.h"
27 #include "data_management/data/csr_numeric_table.h"
28 #include "algorithms/engines/mt19937/mt19937.h"
34 namespace implicit_als
75 enum Step2LocalInputId
77 inputOfStep2FromStep1,
79 lastStep2LocalInputId = inputOfStep2FromStep1
87 enum PartialResultBaseId
89 outputOfInitForComputeStep3,
93 lastPartialResultBaseId = offsets
103 partialModel = lastPartialResultBaseId + 1,
104 lastPartialResultId = partialModel
112 enum PartialResultCollectionId
114 outputOfStep1ForStep2 = lastPartialResultId + 1,
116 lastPartialResultCollectionId = outputOfStep1ForStep2
124 enum DistributedPartialResultStep2Id
126 transposedData = lastPartialResultBaseId + 1,
127 lastDistributedPartialResultStep2Id = transposedData
152 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
160 Parameter(
size_t nFactors = 10,
size_t fullNUsers = 0,
size_t seed = 777777);
165 engines::EnginePtr engine;
167 services::Status check() const DAAL_C11_OVERRIDE;
178 struct DAAL_EXPORT DistributedParameter : public Parameter
186 DistributedParameter(
size_t nFactors = 10,
size_t fullNUsers = 0,
size_t seed = 777777);
188 data_management::NumericTablePtr partition;
194 services::Status check() const DAAL_C11_OVERRIDE;
202 class DAAL_EXPORT Input : public daal::algorithms::Input
205 Input(
size_t nElements = lastInputId + 1);
206 Input(
const Input& other) : daal::algorithms::Input(other){}
215 data_management::NumericTablePtr
get(InputId id)
const;
222 void set(InputId
id,
const data_management::NumericTablePtr &ptr);
228 size_t getNumberOfItems()
const;
235 services::Status check(
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
242 template<ComputeStep step>
243 class DistributedInput
252 class DAAL_EXPORT DistributedInput<step1Local> :
public Input
259 DistributedInput(
const DistributedInput& other) : Input(other){}
261 virtual ~DistributedInput() {}
273 class DAAL_EXPORT DistributedInput<step2Local> :
public daal::algorithms::Input
280 DistributedInput(
const DistributedInput& other) : daal::algorithms::Input(other){}
282 virtual ~DistributedInput() {}
289 data_management::KeyValueDataCollectionPtr
get(Step2LocalInputId id)
const;
296 void set(Step2LocalInputId
id,
const data_management::KeyValueDataCollectionPtr &ptr);
303 services::Status check(
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
311 class DAAL_EXPORT PartialResultBase :
public daal::algorithms::PartialResult
314 DECLARE_SERIALIZABLE_CAST(PartialResultBase);
321 PartialResultBase(
size_t nElements = 0);
328 data_management::KeyValueDataCollectionPtr
get(PartialResultBaseId id)
const;
336 data_management::NumericTablePtr
get(PartialResultBaseId id,
size_t key)
const;
343 void set(PartialResultBaseId
id,
const data_management::KeyValueDataCollectionPtr &ptr);
351 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
354 template <
typename algorithmFPType>
355 DAAL_EXPORT services::Status allocate(
size_t nParts);
358 template<
typename Archive,
bool onDeserialize>
359 services::Status serialImpl(Archive *arch)
361 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
364 services::Status checkImpl(
size_t nParts)
const;
372 class DAAL_EXPORT PartialResult :
public PartialResultBase
375 DECLARE_SERIALIZABLE_CAST(PartialResult);
379 using PartialResultBase::get;
380 using PartialResultBase::set;
388 template <
typename algorithmFPType>
389 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
const int method);
396 PartialModelPtr
get(PartialResultId id)
const;
403 void set(PartialResultId
id,
const PartialModelPtr &ptr);
410 data_management::KeyValueDataCollectionPtr
get(PartialResultCollectionId id)
const;
418 data_management::NumericTablePtr
get(PartialResultCollectionId id,
size_t key)
const;
425 void set(PartialResultCollectionId
id,
const data_management::KeyValueDataCollectionPtr &ptr);
433 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
437 template<
typename Archive,
bool onDeserialize>
438 services::Status serialImpl(Archive *arch)
440 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
449 class DAAL_EXPORT DistributedPartialResultStep2 :
public PartialResultBase
452 DECLARE_SERIALIZABLE_CAST(DistributedPartialResultStep2);
454 DistributedPartialResultStep2();
456 using PartialResultBase::get;
457 using PartialResultBase::set;
465 template <
typename algorithmFPType>
466 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
const int method);
473 data_management::NumericTablePtr
get(DistributedPartialResultStep2Id id)
const;
480 void set(DistributedPartialResultStep2Id
id,
const data_management::NumericTablePtr &ptr);
488 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
492 template<
typename Archive,
bool onDeserialize>
493 services::Status serialImpl(Archive *arch)
495 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
504 class DAAL_EXPORT Result :
public daal::algorithms::implicit_als::training::Result
507 DECLARE_SERIALIZABLE_CAST(Result);
514 daal::algorithms::implicit_als::ModelPtr
get(ResultId id)
const;
521 void set(ResultId
id,
const daal::algorithms::implicit_als::ModelPtr &ptr);
525 template<
typename Archive,
bool onDeserialize>
526 services::Status serialImpl(Archive *arch)
528 return training::Result::serialImpl<Archive, onDeserialize>(arch);
531 typedef services::SharedPtr<Result> ResultPtr;
532 typedef services::SharedPtr<PartialResult> PartialResultPtr;
533 typedef services::SharedPtr<DistributedPartialResultStep2> DistributedPartialResultStep2Ptr;
536 using interface1::Parameter;
537 using interface1::DistributedParameter;
538 using interface1::Input;
539 using interface1::DistributedInput;
540 using interface1::PartialResultBase;
541 using interface1::PartialResult;
542 using interface1::PartialResultPtr;
543 using interface1::DistributedPartialResultStep2;
544 using interface1::DistributedPartialResultStep2Ptr;
545 using interface1::Result;
546 using interface1::ResultPtr;
daal::algorithms::implicit_als::training::init::Method
Method
Available methods for initializing the implicit ALS algorithm.
Definition: implicit_als_training_init_types.h:54
daal::algorithms::implicit_als::training::init::inputOfStep2FromStep1
Definition: implicit_als_training_init_types.h:77
daal::step2Local
Definition: daal_defines.h:122
daal
Definition: algorithm_base_common.h:31
daal::algorithms::implicit_als::training::init::ResultId
ResultId
Available identifiers of the results of the implicit ALS initialization algorithm.
Definition: implicit_als_training_init_types.h:134
daal::algorithms::implicit_als::training::init::model
Definition: implicit_als_training_init_types.h:136
daal::algorithms::implicit_als::training::init::transposedData
Definition: implicit_als_training_init_types.h:126
daal::algorithms::implicit_als::training::init::interface1::DistributedPartialResultStep2
Provides methods to access partial results obtained with the compute() method of the implicit ALS ini...
Definition: implicit_als_training_init_types.h:449
daal::algorithms::implicit_als::training::init::fastCSR
Definition: implicit_als_training_init_types.h:57
daal::algorithms::implicit_als::training::init::interface1::PartialResult
Provides methods to access partial results obtained with the compute() method of the implicit ALS ini...
Definition: implicit_als_training_init_types.h:372
daal::algorithms::implicit_als::training::init::interface1::DistributedParameter::partition
data_management::NumericTablePtr partition
Definition: implicit_als_training_init_types.h:188
daal::algorithms::implicit_als::training::init::Step2LocalInputId
Step2LocalInputId
Definition: implicit_als_training_init_types.h:75
daal::algorithms::implicit_als::training::init::PartialResultBaseId
PartialResultBaseId
Available identifiers of partial results of the implicit ALS initialization algorithm in the first an...
Definition: implicit_als_training_init_types.h:87
daal::algorithms::implicit_als::training::init::PartialResultId
PartialResultId
Available identifiers of partial results of the implicit ALS initialization algorithm in the first st...
Definition: implicit_als_training_init_types.h:101
daal::algorithms::implicit_als::training::init::interface1::PartialResultBase
Provides interface to access partial results obtained with the implicit ALS initialization algorithm ...
Definition: implicit_als_training_init_types.h:311
daal::algorithms::implicit_als::training::init::interface1::DistributedParameter
Parameters of the compute() method of the implicit ALS initialization algorithm in the distributed co...
Definition: implicit_als_training_init_types.h:178
daal::algorithms::implicit_als::training::init::outputOfStep1ForStep2
Definition: implicit_als_training_init_types.h:114
daal::algorithms::implicit_als::training::init::outputOfInitForComputeStep3
Definition: implicit_als_training_init_types.h:89
daal::algorithms::implicit_als::training::init::DistributedPartialResultStep2Id
DistributedPartialResultStep2Id
Definition: implicit_als_training_init_types.h:124
daal::algorithms::implicit_als::training::init::interface1::PartialResultBase::set
void set(PartialResultBaseId id, const data_management::KeyValueDataCollectionPtr &ptr)
daal::algorithms::implicit_als::training::init::interface1::Parameter::fullNUsers
size_t fullNUsers
Definition: implicit_als_training_init_types.h:163
daal::algorithms::implicit_als::training::init::interface1::Result
Provides methods to access the results obtained with the compute() method of the implicit ALS initial...
Definition: implicit_als_training_init_types.h:504
daal::algorithms::implicit_als::training::init::data
Definition: implicit_als_training_init_types.h:66
daal::algorithms::implicit_als::training::init::InputId
InputId
Available identifiers of input objects for the implicit ALS initialization algorithm.
Definition: implicit_als_training_init_types.h:64
daal::algorithms::implicit_als::training::init::interface1::Parameter::nFactors
size_t nFactors
Definition: implicit_als_training_init_types.h:162
daal::algorithms::implicit_als::training::init::partialModel
Definition: implicit_als_training_init_types.h:103
daal::algorithms::implicit_als::training::init::interface1::Parameter::engine
engines::EnginePtr engine
Definition: implicit_als_training_init_types.h:165
daal::step1Local
Definition: daal_defines.h:117
daal::algorithms::implicit_als::training::init::interface1::Parameter::seed
size_t seed
Definition: implicit_als_training_init_types.h:164
daal::algorithms::implicit_als::training::init::PartialResultCollectionId
PartialResultCollectionId
Available identifiers of partial results of the implicit ALS initialization algorithm in the first st...
Definition: implicit_als_training_init_types.h:112
daal::algorithms::implicit_als::training::init::interface1::Parameter
Parameters of the compute() method of the implicit ALS initialization algorithm.
Definition: implicit_als_training_init_types.h:152
daal::algorithms::implicit_als::training::init::offsets
Definition: implicit_als_training_init_types.h:91
daal::algorithms::implicit_als::training::init::interface1::PartialResultBase::get
data_management::KeyValueDataCollectionPtr get(PartialResultBaseId id) const
daal::algorithms::implicit_als::training::init::defaultDense
Definition: implicit_als_training_init_types.h:56