We normally recommend the cheap ideas first.
Dirty air filter, dirty fuel.
I recommend a can of Techron first as this has worked for me several times with symptoms like yours. And also pull the air filter and check that too.
After that, the MAF or the O2 sensors seem to be frequently the culprits.
Are you getting a code of any kind? If not, the dirty fuel may be the deal.