1.PreparePreferenceMatrixJob
I.itemIDIndex:convert items to an internal index
IemIDIndexMapper->Index,ID
ItemIDIndexReducer
II.toUserVectors:convert user preferences into a vector per user
ToItemPrefsMapper
ToUserVectorsReducer
III.toItemVectors:build the rating matrix
ToItemVectorsMapper
ToItemVectorsReducer
2.RowSimilarityJob:calculate the co-occurrence matrix
I.normsAndTranspose
VectorNormMapper
MergeVectorsReducer
II.pairwiseSimilarity
CooccurrencesMapper
SimilarityReducer
III.asMatrix:
UnsymmetrifyMapper
MergeToTopKSimilaritiesReducer
3.outputSimilarityMatrix:write out the similarity matrix if the user specified that behavior
MostSimilarItemPairsMapper
MostSimilarItemPairsReducer
4.partialMultiply:start the multiplication of the co-occurrence matrix by the user vectors
SimilarityMatrixRowWrapperMapper
UserVectorSplitterMapper
ToVectorAndPrefReducer
5.filter out any users we don't care about.
I.itemFiltering:convert the user/item pairs to filter if a filter file has been specified
ItemFilterMapper
ItemFilterAsVectorAndPrefsReducer
II.aggregateAndRecommend:extract out the recommendations
PartialMultiplyMapper
AggregateAndRecommendReducer