I suggest, you represent the data as a matrix with users in rows and questions in columns and with binary values, say 1 for upvote, 0 for downvote.
Then use Multiple correspondence analysis which, similar to PCA, finds the most relevant factors and the factor loadings will tell you how the individual users distribute along each factor.
Your biggest problem are missing values, since I guess that not all user will provide an answer to every thread. This answeranswer suggest that there are solutions for MCA with missing values.