Unsupervised Learning in Human-Computer Interfaces