I am new to this too but I found a blog post where the ecto joins are being explained. I am not sure if the way described in the article is the best way or a best practice.
Are you 100% sure you need CROSS JOIN? Because from what I see you need INNER JOIN tags t ON t.id = ANY(tag_ids) and this is supported by Ecto via in/2.