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

Improve performance of ML ALS recommendForAll

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.2.0
    • 2.2.0
    • ML
    • 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.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            mlnick Nicholas Pentreath
            mlnick Nicholas Pentreath
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment