They mean the same thing, they're synonyms. However, in general everyday usage, I would say that a souvenir is mostly used to describe something you purchased to remember a vacation. A keepsake is more general. You might keep your corsage as a keepsake from your high school prom or movie ticket from your first date with your husband.
But they are mostly interchangeable