Something like:
MATCH (u:User {login:{login}})-[:LIVES_IN]->(location)
MATCH (u)-[:FRIEND]->(friend)<-[:FRIEND]-(other)
WITH u,location,other,count(*) as friends
MATCH (u)-[:LIKED]->(thing)<-[:LIKED]-(other)
WITH u,location,other,friends, count(*) as things
MATCH (other)-[:LIVES_IN]->(location)
RETURN u,other,friends+things as score
ORDER BY score DESC
LIMIT 10