Input: score dataset Score, social relation dataset Relation, review dataset Review, vocabulary V; |
Output: user representation U, item representation M, recommendation list L; |
(1): Initialize , embedding size = 300, batch size = 64, negative sample = 5; |
(2): for epoch = 1, 2, …, n do |
(3): split the dataset score, relation, and review into training dataset (70%) and testing dataset (30%); |
(4): construct positive and negative sample triplets (u, i, j) based on BPR; |
(5): learn the frequency of word-review pair fw, dum and the expected value EWN-PV |
(6): get review representation dum; |
(7): learn U1, U2, c1, c2 from score data; |
(8): get score representation ru, rm; |
(9): get distance lab between users; |
(10): calculate Σ(u,i,j) + λ1L1 − λ2L2; |
(11): update = {1, 2} with back propagation; |
(12): get corresponding user and item representations U, M |
(13): end for |
(14): compute s; |
(15): return recommendation list L |