I genuinely believe that you're making a mistake over here; you're assuming that machine learning is a magic bullet that can solve anything. I am afraid that isn't the case. Even for a satisfactory level of functioning you need to factor in these "meta" variables;
- Emotional stability of the user: You need to be able to judge if the user can form serious long term relationships before recommending him or her.
- Level of Emotional maturity: Maturity is really different from stability. Stability means that you'll be roughly the same a week from today whereas maturity applies to your ability to handle problems effectively and rise above petty issues.
- Willingness for Engagement/Commitment: Your users are in a portal, but the levels till which they are willing to use your service vary, and it isn't something you can ask in a questionnaire.
- Acceptance: This is a part of emotional maturity, but it deserves a solitary mention. How do you judge if someone is willing to accept divergent points of view and learn from things?
- Perspective: What does the user seek qualitatively in relationships?
I think that one day this might be possible, but you're dealing with one of the greatest unsolved problems we have ever faced. Making a computer understand things.
Further, I believe that even though you might succeed someday it won't work for people all the time. Why? Because emotions are really hard to parse, and what I seek in relationships is far beyond common interests or anything like that. I seek kinship, love and understanding. How can you possibly judge and match that without having some degree of emotional understanding? This is yet again one of those great unsolved problems.
On the other hand, there must be a solution beyond simply matching interests from a long checklist. Maybe you should approach it like Aardvark. You could make a friend of a friend based contextual system. Imagine a giant grid of people remotely connected to each other through friends and you parse the daily routine conversations between users and create a personality profile using current psychometric testing (it's seriously inaccurate, but we need a shot in the dark). After that you offer to match them together anonymously at first (this is important) and then see how they hit off.
Yet again I doubt that it will work at all due to privacy issues and moreover it will be too computationally expensive to justify...