1. A method for providing an answer to an input query respective of a user using a user device, comprising: collecting data respective of the user by using a plurality of sensors on the user device, wherein the plurality of sensors sense the user activity on the user device; generating a plurality of uniquifiers from the data, wherein each uniquifier of the plurality of uniquifiers characterizes the user, wherein an uniquifier is at least a global uniquifier; evaluating periodically the plurality of uniquifiers, wherein each of the plurality of uniquifiers are further accompanied by a confidence level value and a current relevancy level value both indicating the current relevancy of the plurality of uniquifiers, wherein the relevancy of the plurality of uniquifers changes over time based on the user activity and context of a usage of the user device; storing at least the evaluated plurality of uniquifiers in a memory of the user device; responsive to the input query, providing an answer based on at least one evaluated uniquifier of the evaluated plurality of uniquifiers stored in the memory, wherein the input query queries whether a certain content is likely to be accessed by the user if displayed on the user device; creating a plurality of clusters from at least a portion of the data; finding a centroid vector for each of the plurality of clusters; periodically reclustering at least a portion of the data into new clusters; and finding a centroid vector for each of the new clusters.