Code cleanup and Write pseudo code
Collect the data and group them by user id
Redistribute the data grouped by user id
Collect and redistribute the data by item id
Add Item matrix to broadcast and reduce