Как использовать универсальный кодировщик предложений Google, чтобы найти наиболее похожий документ на основе нескольких документов? - PullRequest
2 голосов
/ 12 октября 2019

Я пытаюсь создать простую систему рекомендаций, которая использует универсальный кодировщик предложений 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 продуктов, а затем находить ближайшие к нему векторы?

Или относиться к ним как к кластеру, найти центроид и дать рекомендации, основанные на этом?

Кто-нибудь знает какие-либо хорошие практики для этого?

...