Oi Luciana,
eu não sei se foi um exemplo específico nesse caso, mas o método mais conhecido para essa otimização é o de Gradiente Descendente (Gradient Descent), e ele é usado em algoritmos como o de Regressão Linear e Gradiente Descendente Estocástico (Stochastic Gradient Descent, SGD).
Falando específicamente dos algoritmos do Mahout, eles apresentam uma lista no site. Se você quiser saber só sobre os de Recomendação, olhe aqueles abaixo de Collaborative Filtering.
Aqui tem um exemplo de recomendação com SGD, e aqui uma explicação do gradiente descendente, ambos em português.
Como o destaque que o Mahout tem é justamente por tratar do machine learning escalável (scalable machine learning, SML), eu aposto nos algoritmos citados acima, pois eles reduzirão o volume de dados a serem guardados na memória ou irão reduzir o tamanho da matriz preservando as informações (como o de ALS).
Mas, além disso, também temos as estruturas e algoritmos usados para fazer a distribuição e o processamento desses dados, que, no caso do Mahout, podemos escolher se usaremos MapReduce, Spark, H2O ou Flink, cada um deles tem um funcionamento interior específico, que geralmente envolve processamento paralelo, e dá para saber mais clicando no link da documentação dos algoritmos. Ele tem uma tabela que vai mostrando qual algoritmo roda em qual engine.
Espero ter ajudado a esclarecer, qualquer outra dúvida, só postar :).