我正在尝试构建一个简单的推荐系统,该系统使用Google的通用句子编码器将不同产品的描述转换为向量空间。我正在为所有不同的产品预先计算嵌入。目前,我可以通过计算所选产品与所有其他产品之间的余弦距离来给出基于单个产品的前N个建议。
chosen_product_idx = product_df.index[product_df['Name']== chosen_product][0]
ranking_list = []
for i in products['names']
ranking_list.append((products['names'][i],cosine_distance(products['product_vector'][chosen_product_idx],products['product_vector'][i]))
...
...
但是,如果用户说“我喜欢这10种产品”,那么在提出建议时最好的方法是什么?我没有任何用户不喜欢的公司的数据。是否要取所有这10个乘积的平均向量,然后找到与其最接近的向量?
还是将它们视为一个簇并找到质心并据此提出建议?
有人知道对此有什么好的做法吗?