Допустим, у меня есть поле данных с именем movie_genre для каждого образца movie
, оно выбрано из следующих жанров:
Action
Adventure
Animation
Comedy
...
И для каждого movie
оно может содержать несколько жанров:
mid genres
1 Action | Adventure
2 Animation
3 Comedy | Adventure | Action
, что означает, что жанры фильма - это список переменных.
Если я использую один горячий вектор для кодирования genre
, действие может быть закодировано как (1, 0, 0,0), приключение может быть закодировано как (0, 1, 0, 0) и т. Д.
Таким образом, фильм с mid1 может быть закодирован как (1, 1, 0, 0), жанр mid2 может бытькодируется как (0, 0, 1, 0) и т. д.
Тем не менее, слой вложения Pytorch nn.Embedding
принимает в качестве входных данных тензор, содержащий индексы, но не один горячий вектор.Так как же мне кодировать данные, чтобы их можно было извлечь в слой внедрения?