Detecting multi-timescale consumption patterns from receipt data: A non-negative tensor factorization approach