Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-20587

Improve performance of ML ALS recommendForAll

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.0
    • Fix Version/s: 2.2.0
    • Component/s: ML
    • Labels:
      None

      Description

      SPARK-11968 relates to excessive GC pressure from using the "blocked BLAS 3" approach for generating top-k recommendations in mllib.recommendation.MatrixFactorizationModel.

      The solution there is still based on blocking factors, but efficiently computes the top-k elements per block first (using BoundedPriorityQueue) and then computes the global top-k elements.

      This improves performance and GC pressure substantially for mllib's ALS model. The same approach is also a lot more efficient than the current "crossJoin and score per-row" used in ml's DataFrame-based method. This adapts the solution in SPARK-11968 for DataFrame.

        Issue Links

          Activity

          Hide
          apachespark Apache Spark added a comment -

          User 'MLnick' has created a pull request for this issue:
          https://github.com/apache/spark/pull/17845

          Show
          apachespark Apache Spark added a comment - User 'MLnick' has created a pull request for this issue: https://github.com/apache/spark/pull/17845
          Hide
          mlnick Nick Pentreath added a comment -

          Issue resolved by pull request 17845
          https://github.com/apache/spark/pull/17845

          Show
          mlnick Nick Pentreath added a comment - Issue resolved by pull request 17845 https://github.com/apache/spark/pull/17845

            People

            • Assignee:
              mlnick Nick Pentreath
              Reporter:
              mlnick Nick Pentreath
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development