Disclaimer: I have Ultegra 9 speed triple on my bike and have been thinking about this as well. This is based on a lot of reading but no 1st-hand experience. You need a new crank and probably a new bottom bracket. I've seen a few compact cranks (I think Ritchey makes one) that work with the Octalink spindle. But make sure it's the right Octalink - there's a V1 and V2 and I don't recall which one 105 9speed uses or which one the Ritchey uses. Your chainline will be off (spindle on the triple BB is too long) but it *might* work. Your rear derailluer has enough range to handle the 16 tooth difference up front. You will have to adjust the upper and lower limits on the front deralluer and probbably lower it a little as the 50 tooth chainring is slightly smaller than the 52 or 53 you have now. The front brifter will work but you'll have 2 "trim" positions between high and low.
There's a good chance you will need to replace the BB as well, though.
OTOH, why bother? A properly adjusted triple will shift quite well and as I'm not racing crits, I don't need lightning fast shift response up front. Check the Parktool website for excellent step-by-step instructions on front derailluer adjustment.