# -*- coding: utf-8 -*-
# @Time : 2020/8/9
# @Author : Yupeng Hou
# @Email : houyupeng@ruc.edu.cn
"""
recbole.utils.enum_type
#######################
"""
from enum import Enum
[docs]class ModelType(Enum):
"""Type of models.
- ``GENERAL``: General Recommendation
- ``SEQUENTIAL``: Sequential Recommendation
- ``CONTEXT``: Context-aware Recommendation
- ``KNOWLEDGE``: Knowledge-based Recommendation
"""
GENERAL = 1
SEQUENTIAL = 2
CONTEXT = 3
KNOWLEDGE = 4
TRADITIONAL = 5
DECISIONTREE = 6
[docs]class KGDataLoaderState(Enum):
"""States for Knowledge-based DataLoader.
- ``RSKG``: Return both knowledge graph information and user-item interaction information.
- ``RS``: Only return the user-item interaction.
- ``KG``: Only return the triplets with negative examples in a knowledge graph.
"""
RSKG = 1
RS = 2
KG = 3
[docs]class EvaluatorType(Enum):
"""Type for evaluation metrics.
- ``RANKING``: Ranking-based metrics like NDCG, Recall, etc.
- ``VALUE``: Value-based metrics like AUC, etc.
"""
RANKING = 1
VALUE = 2
[docs]class FeatureType(Enum):
"""Type of features.
- ``TOKEN``: Token features like user_id and item_id.
- ``FLOAT``: Float features like rating and timestamp.
- ``TOKEN_SEQ``: Token sequence features like review.
- ``FLOAT_SEQ``: Float sequence features like pretrained vector.
"""
TOKEN = 'token'
FLOAT = 'float'
TOKEN_SEQ = 'token_seq'
FLOAT_SEQ = 'float_seq'
[docs]class FeatureSource(Enum):
"""Source of features.
- ``INTERACTION``: Features from ``.inter`` (other than ``user_id`` and ``item_id``).
- ``USER``: Features from ``.user`` (other than ``user_id``).
- ``ITEM``: Features from ``.item`` (other than ``item_id``).
- ``USER_ID``: ``user_id`` feature in ``inter_feat`` and ``user_feat``.
- ``ITEM_ID``: ``item_id`` feature in ``inter_feat`` and ``item_feat``.
- ``KG``: Features from ``.kg``.
- ``NET``: Features from ``.net``.
"""
INTERACTION = 'inter'
USER = 'user'
ITEM = 'item'
USER_ID = 'user_id'
ITEM_ID = 'item_id'
KG = 'kg'
NET = 'net'