Here's your dog talking to a human behaviorist:
"I have this owner, she's really a good person 99% of the time, but she's possessive over the trash, and gets aggressive if I try to get any of it for me. She hits me on the butt and now she's started holding me down by my neck. I love her very much but I'm afraid she's going to hurt somebody one of these days. What should I do? I don't want to bite her, but I've been snapping at her to let her know her behavior is wrong and she seems to be getting worse."
Your dog doesn't know that getting in the trash is wrong. It's normal, instinctive behavior for a dog to be opportunistic about finding food. In fact, it's an absolutely vital instinct for wolves and wild dogs, and so cannot be bred out of the domestic dog very easily. A dog can be trained to stay out of the trash, although personally I will never trust my dog around an uncovered trash can. It's too much of a temptation for him, and I've got bigger fish to fry in the training area.
So stop punishing your dog by hitting him and holding him down, it doesn't tell him anything about you except that your behavior is unpredictable and dangerous at times and that he may need to protect himself. That's all he's doing by snapping at you, he feels you are threatening him and he MUST defend himself (another survival instinct not easily overcome). Get some good books on training and aggression, you can find them in the Books forum on this site, and start working on rebuilding a trusting relationship with your dog. And cover the trash can!!!