Keyword cannibalization in a nutshell: Google only shows 1 result from your site for any given query (unless it thinks you're REALLY relevant). That means you want the page that shows up to be the one with the greatest relevance and conversion potential. If you have multiple pages that target the same keyword, Google could end up confused and display the non-optimal page over your desired landing page.
Title tag, url, and on-page content all play a role in keyword cannibalization.
It's only a problem if you're finding that the non-optimal page is ranking over your optimal one. For example, if your category page ('wool sweaters') is outranking your product page ('knit wool turtleneck sweater') for the search team "knit wool turtleneck sweater", then you have a problem. In that case, make sure you improve your internal & external linking to the product page, and make sure it has higher quality, targeted content than the category page.