Возможно, я плохо понимаю вашу проблему. Но, как я вижу на картинке, у вас есть более одной записи в день, и это ваша главная проблема. решить это не очень сложно. обратите внимание, что вы можете передать тензор в качестве X
и связать все несколько записей в матрицу.
Например, простой тензор ваших данных будет таким:
date : [Entity vector, Weight vector, …, Cost vector]
----------------------------------------------------------------------------
24/05/2019: [[A, B, C, D], [18.1, 22, 36, 46], …, [25, 24, 23, 50]]
25/05/2019: [[A, B, C], [43, 44, 35], …, [24, 0, 0]]
27/05/2019: [[A, B, C, D, F], [34, 46, 31, 27, 60], …, [27, 24, 23, 50, 35]]
ПРИМЕЧАНИЕ: может потребоваться, чтобы все ваши векторы были водинаковой длины (для матрицы мульт). Тогда вы можете использовать " Padding ". (это означает просто поставить 0
или -1
для пропущенных сущностей. Для вас есть два возможных сенарио:
1), если у вас есть конечные сущности ,вроде бы просто от A
до F
. Вы просто добавляете -1
для не существующих значений. И нет необходимости в первом векторе, потому что они фиксированы и, например, index 1
всегда представляет A
. Окончательные тензоры будут такими после заполнения:
date : "indexes are [A, B, C, D, E, F]" [Weight vector, …, Cost vector]
-----------------------------------------------------------------------
24/05/2019: [[18.1, 22, 36, 46, -1, -1], …, [25, 24, 23, 50, -1, -1]]
25/05/2019: [[43, 44, 35, -1, -1, -1], …, [24, 0, 0, -1, -1, -1]]
27/05/2019: [[34, 46, 31, 27, 60, -1], …, [27, 24, 23, 50, 35, -1]]
2) если у вас есть бесконечные сущности , я имею в виду, могут ли ваши сущности быть чем угодно. тогда вам нужно сохранить первый вектор и просто добавить все векторы к вектору максимальной длины. Окончательные тензоры будут такими в этом случае после заполнения (предположим, 27/05/2019
имеет максимальную длину):
date : [Entity vector, Weight vector, …, Cost vector]
--------------------------------------------------------------------------------
24/05/2019: [[A, B, C, D, -1], [18.1, 22, 36, 46, -1], …, [25, 24, 23, 50, -1]]
25/05/2019: [[A, B, C, -1, -1], [43, 44, 35, -1, -1], …, [24, 0, 0, -1, -1]]
27/05/2019: [[A, B, C, D, F], [34, 46, 31, 27, 60], …, [27, 24, 23, 50, 35]]
СОВЕТ: если ваши сущности состоят из более чем одного слова, то вы можете использовать хеш для перевода их только на один номер. (Я не рекомендую использовать для этого серию встраиваний слов! Это слишком тяжело для этой модели LSTM с 6-ю месяцами, и вы не получите из этого хорошего результата.
Теперь вы подаете эти векторы в свой LSTM. На рисунке ниже X0
и X1
и… эти тензоры (и многие ожидают цену на следующий день от h
с).