java - IBk with custom similarity function as a recommender system -
i'm trying implement recommender system based on content-based similarity function (which uses description logics). using similarity function built similarity matrix items of dataset. decided use kind of information in order implement knn classifier.
i'm using weka's implementation of knn , implemented similarity function extending normalizabledistance. it gets distance score between 2 instance , returns it, because has been computed.
using function construct classifier in way:
ibk knn = new ibk(numneigh); knn.getnearestneighboursearchalgorithm().setdistancefunction(new mycustomfunction());
in context, i'm not able understand how should use dataset. dataset in form:
(user_id, item_id)
where each pair represents user has seen item (implicit feedback).
if try construct instances object using dataset have, i'm not able run appropriately knn algorithm because each instance not item can used similarity function.
so should create dataset contains items' ids of items user likes , build classifier one.
is correct or i'm doing wrong?
it seems need use one-class classifier each user, e.g. svm. trained using descriptions of items user have seen. these can ranked interior distance hypersphere enclosing them (the radius). greater distance, greater ranking. thus, items outside hypersphere wouldn't recommended. if had metadata indicating how interested user has been in each seen item (e.g. observation time), woud possible using information downranking items or discarding outliers.
Comments
Post a Comment