NVIDIA-Merlin / Transformers4Rec

Transformers4Rec is a flexible and efficient library for sequential and session-based recommendation and works with PyTorch.
https://nvidia-merlin.github.io/Transformers4Rec/main
Apache License 2.0
1.07k stars 142 forks source link

[QST] ValueError: For masking a categorical_module is required including an item_id. #749

Closed ralgond closed 10 months ago

ralgond commented 10 months ago

ValueError: For masking a categorical_module is required including an item_id.

My code is as following:

inputs = tr.TabularSequenceFeatures.from_schema( schema, max_sequence_length=20, continuous_projection=64, masking="mlm", d_output=100, )

And the output is:

ValueError Traceback (most recent call last) /data/thuang/newsrec/t4rec_learn_003.ipynb 单元格 4 line 1 ----> 1 inputs = tr.TabularSequenceFeatures.from_schema( 2 schema, 3 max_sequence_length=20, 4 continuous_projection=64, 5 masking="mlm", 6 d_output=100, 7 )

File ~/miniconda3/envs/newsrec/lib/python3.9/site-packages/transformers4rec/torch/features/sequence.py:226, in TabularSequenceFeatures.from_schema(cls, schema, continuous_tags, categorical_tags, pretrained_embeddings_tags, aggregation, automatic_build, max_sequence_length, continuous_projection, continuous_soft_embeddings, projection, d_output, masking, kwargs) 222 masking = masking_registry.parse(masking)( 223 hidden_size=output.output_size()[-1], kwargs 224 ) 225 if masking and not getattr(output, "item_id", None): --> 226 raise ValueError("For masking a categorical_module is required including an item_id.") 227 output.set_masking(masking) # type: ignore 229 return output

ValueError: For masking a categorical_module is required including an item_id.

The schema is

name | tags | dtype | is_list | is_ragged | properties.value_count.min | properties.value_count.max -- | -- | -- | -- | -- | -- | -- user_id | () | DType(name='int64', element_type=