Экспериментировал с различными метриками подобия и даже придумал одну свою:
similarity = cross_count / euclid
Определяет похожесть отношением количества пересечений к евклидову расстоянию.
На моих тестовых данных показала результат rmse чуть лучше чем корреляция пирсона и косинусная метрика