You can setup the predictive content modules with rich content enabled in Marketo using the Marketo's predictive content tile (check out this documentation page). Web personalization allows you to personalize the web experience based on the demographics / infographic data of a visitor (you can create web personalization segments and create WP campaigns around them), and you can use the predictive content which is based on based on AI and Predictive algorithms in conjunction with the web personalization campaigns if you wish to deliver both the experiences simultaneously. You can refer this page that walks you through adding the rich media recommendation in the web page, it requires a bit of JS to set it up. You can also use the predictive content JS functions in the web personalization campaigns too, just make sure you have the RTP script placed on your web page/template in either cases.
Marketo's web campaign allows you to add the custom HTML code in it. You should be able add the HTML, RTP and predictive content JS to populate the predictive content in the web campaign.
You can also set the "category" and other allowed configurable attributes to in the configuration object of the set method. You would need to set the correct template_id (template1, template2, template3) based on the alignment you want to display the content.
rtp('set', 'rcmd', 'richmedia', 'template_id', conf_obj);
You would use the following predictive JS method to populate/get the recommended content:
rtp('get','rcmd', 'richmedia');
There are other attributes and JS functions that you can use to customize the predictive content output, you may refer on the developer doc page that I'd linked in my earlier comment for same.