[
https://issues.apache.org/jira/browse/MAHOUT-1464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14028342#comment-14028342
]
Ted Dunning commented on MAHOUT-1464:
-------------------------------------
I don't understand the question.
In fact, the transpose is never computed explicitly. There is a special
operation that does A' A in a single pass and step. It is possible to fuse the
down-sampling into this multiplication, but not possible to fuse the column
counts. For large sparse A, the value of A'A is computed using a map-reduce
style data flow where each row is examined and all cooccurrence counts are
emitted to be grouped by row number later.
In order to save memory, it is probably a good idea to discard the original
counts as soon as they are reduced to binary form and down-sampled.
For computing counts, it is possible to accumulate column sums in a row-wise
accumulator at the same time that row sums are accumulated one element at a
time. This avoids a pass over A and probably helps significantly on speed.
> Cooccurrence Analysis on Spark
> ------------------------------
>
> Key: MAHOUT-1464
> URL: https://issues.apache.org/jira/browse/MAHOUT-1464
> Project: Mahout
> Issue Type: Improvement
> Components: Collaborative Filtering
> Environment: hadoop, spark
> Reporter: Pat Ferrel
> Assignee: Pat Ferrel
> Fix For: 1.0
>
> Attachments: MAHOUT-1464.patch, MAHOUT-1464.patch, MAHOUT-1464.patch,
> MAHOUT-1464.patch, MAHOUT-1464.patch, MAHOUT-1464.patch, run-spark-xrsj.sh
>
>
> Create a version of Cooccurrence Analysis (RowSimilarityJob with LLR) that
> runs on Spark. This should be compatible with Mahout Spark DRM DSL so a DRM
> can be used as input.
> Ideally this would extend to cover MAHOUT-1422. This cross-cooccurrence has
> several applications including cross-action recommendations.
--
This message was sent by Atlassian JIRA
(v6.2#6252)