def update_sim_rid_list(self, rid, pid):

        for review in self.pid_history.get(pid, []):
            rid_tar = review[0]

            if rid_tar == rid:
                continue

            sim = Amazon.pf_overall(rid_tar, rid, (self.rid_history,))
            assert sim <= 1.

            # update rid_tar's most sim list
            self.rid_most_sim.setdefault(rid_tar, [(1e-6, 'nan')] * self.k)
            heapq.heappushpop(self.rid_most_sim[rid_tar], (sim, rid))

            # update rid's most sim list
            self.rid_most_sim.setdefault(rid, [(1e-6, 'nan')] * self.k)
            heapq.heappushpop(self.rid_most_sim[rid], (sim, rid_tar))
 def update_cur_rid_inherent(self, rid):
     if_overall = Amazon.if_overall(rid, (self.rid_history,))
     assert if_overall <= 1.
     self.rid_inherent[rid] = if_overall