matchzoo.models¶
Submodules¶
matchzoo.models.anmmmatchzoo.models.arcimatchzoo.models.arciimatchzoo.models.bertmatchzoo.models.bimpmmatchzoo.models.cdssmmatchzoo.models.conv_knrmmatchzoo.models.dense_baselinematchzoo.models.diinmatchzoo.models.drmmmatchzoo.models.drmmtksmatchzoo.models.dssmmatchzoo.models.duetmatchzoo.models.esimmatchzoo.models.hbmpmatchzoo.models.knrmmatchzoo.models.match_pyramidmatchzoo.models.match_srnnmatchzoo.models.matchlstmmatchzoo.models.mvlstmmatchzoo.models.parameter_readme_generator
Package Contents¶
Classes¶
A simple densely connected baseline model. |
|
Deep structured semantic model. |
|
CDSSM Model implementation. |
|
DRMM Model. |
|
DRMMTKS Model. |
|
ESIM Model. |
|
KNRM Model. |
|
ConvKNRM Model. |
|
BiMPM Model. |
|
MatchLSTM Model. |
|
ArcI Model. |
|
ArcII Model. |
|
Bert Model. |
|
MVLSTM Model. |
|
MatchPyramid Model. |
|
aNMM: Ranking Short Answer Texts with Attention-Based Neural Matching Model. |
|
HBMP model. |
|
Duet Model. |
|
DIIN model. |
|
Match-SRNN Model. |
Functions¶
|
-
class
matchzoo.models.DenseBaseline(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelA simple densely connected baseline model.
Examples
>>> model = DenseBaseline() >>> model.params['mlp_num_layers'] = 2 >>> model.params['mlp_num_units'] = 300 >>> model.params['mlp_num_fan_out'] = 128 >>> model.params['mlp_activation_func'] = 'relu' >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Build.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.DSSM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelDeep structured semantic model.
Examples
>>> model = DSSM() >>> model.params['mlp_num_layers'] = 3 >>> model.params['mlp_num_units'] = 300 >>> model.params['mlp_num_fan_out'] = 128 >>> model.params['mlp_activation_func'] = 'relu' >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_preprocessor(cls, truncated_mode: str = 'pre', truncated_length_left: typing.Optional[int] = None, truncated_length_right: typing.Optional[int] = None, filter_mode: str = 'df', filter_low_freq: float = 1, filter_high_freq: float = float('inf'), remove_stop_words: bool = False, ngram_size: typing.Optional[int] = 3) → BasePreprocessor¶ Model default preprocessor.
The preprocessor’s transform should produce a correctly shaped data pack that can be used for training.
- Returns
Default preprocessor.
-
classmethod
get_default_padding_callback(cls)¶ - Returns
Default padding callback.
-
build(self)¶ Build model structure.
DSSM use Siamese arthitecture.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.CDSSM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelCDSSM Model implementation.
Learning Semantic Representations Using Convolutional Neural Networks for Web Search. (2014a) A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval. (2014b)
Examples
>>> import matchzoo as mz >>> model = CDSSM() >>> model.params['task'] = mz.tasks.Ranking() >>> model.params['vocab_size'] = 4 >>> model.params['filters'] = 32 >>> model.params['kernel_size'] = 3 >>> model.params['conv_activation_func'] = 'relu' >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_preprocessor(cls, truncated_mode: str = 'pre', truncated_length_left: typing.Optional[int] = None, truncated_length_right: typing.Optional[int] = None, filter_mode: str = 'df', filter_low_freq: float = 1, filter_high_freq: float = float('inf'), remove_stop_words: bool = False, ngram_size: typing.Optional[int] = 3) → BasePreprocessor¶ Model default preprocessor.
The preprocessor’s transform should produce a correctly shaped data pack that can be used for training.
- Returns
Default preprocessor.
-
classmethod
get_default_padding_callback(cls, fixed_length_left: int = None, fixed_length_right: int = None, pad_word_value: typing.Union[int, str] = 0, pad_word_mode: str = 'pre', with_ngram: bool = True, fixed_ngram_length: int = None, pad_ngram_value: typing.Union[int, str] = 0, pad_ngram_mode: str = 'pre') → BaseCallback¶ Model default padding callback.
The padding callback’s on_batch_unpacked would pad a batch of data to a fixed length.
- Returns
Default padding callback.
-
_create_base_network(self) → nn.Module¶ Apply conv and maxpooling operation towards to each letter-ngram.
The input shape is fixed_text_length`*`number of letter-ngram, as described in the paper, n is 3, number of letter-trigram is about 30,000 according to their observation.
- Returns
A
nn.Moduleof CDSSM network, tensor in tensor out.
-
build(self)¶ Build model structure.
CDSSM use Siamese architecture.
-
forward(self, inputs)¶ Forward.
-
guess_and_fill_missing_params(self, verbose: int = 1)¶ Guess and fill missing parameters in
params.Use this method to automatically fill-in hyper parameters. This involves some guessing so the parameter it fills could be wrong. For example, the default task is Ranking, and if we do not set it to Classification manually for data packs prepared for classification, then the shape of the model output and the data will mismatch.
- Parameters
verbose – Verbosity.
-
classmethod
-
class
matchzoo.models.DRMM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelDRMM Model.
Examples
>>> model = DRMM() >>> model.params['mlp_num_layers'] = 1 >>> model.params['mlp_num_units'] = 5 >>> model.params['mlp_num_fan_out'] = 1 >>> model.params['mlp_activation_func'] = 'tanh' >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_padding_callback(cls, fixed_length_left: int = None, fixed_length_right: int = None, pad_value: typing.Union[int, str] = 0, pad_mode: str = 'pre')¶ - Returns
Default padding callback.
-
build(self)¶ Build model structure.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.DRMMTKS(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelDRMMTKS Model.
Examples
>>> model = DRMMTKS() >>> model.params['top_k'] = 10 >>> model.params['mlp_num_layers'] = 1 >>> model.params['mlp_num_units'] = 5 >>> model.params['mlp_num_fan_out'] = 1 >>> model.params['mlp_activation_func'] = 'tanh' >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_padding_callback(cls, fixed_length_left: int = 10, fixed_length_right: int = 100, pad_word_value: typing.Union[int, str] = 0, pad_word_mode: str = 'pre', with_ngram: bool = False, fixed_ngram_length: int = None, pad_ngram_value: typing.Union[int, str] = 0, pad_ngram_mode: str = 'pre') → BaseCallback¶ Model default padding callback.
The padding callback’s on_batch_unpacked would pad a batch of data to a fixed length.
- Returns
Default padding callback.
-
build(self)¶ Build model structure.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.ESIM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelESIM Model.
Examples
>>> model = ESIM() >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Instantiating layers.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.KNRM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelKNRM Model.
Examples
>>> model = KNRM() >>> model.params['kernel_num'] = 11 >>> model.params['sigma'] = 0.1 >>> model.params['exact_sigma'] = 0.001 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Build model structure.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.ConvKNRM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelConvKNRM Model.
Examples
>>> model = ConvKNRM() >>> model.params['filters'] = 128 >>> model.params['conv_activation_func'] = 'tanh' >>> model.params['max_ngram'] = 3 >>> model.params['use_crossmatch'] = True >>> model.params['kernel_num'] = 11 >>> model.params['sigma'] = 0.1 >>> model.params['exact_sigma'] = 0.001 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Build model structure.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.BiMPM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelBiMPM Model.
Reference: - https://github.com/galsang/BIMPM-pytorch/blob/master/model/BIMPM.py
Examples
>>> model = BiMPM() >>> model.params['num_perspective'] = 4 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Make function layers.
-
forward(self, inputs)¶ Forward.
-
reset_parameters(self)¶ Init Parameters.
-
dropout(self, v)¶ Dropout Layer.
-
classmethod
-
class
matchzoo.models.MatchLSTM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelMatchLSTM Model.
https://github.com/shuohangwang/mprc/blob/master/qa/rankerReader.lua.
Examples
>>> model = MatchLSTM() >>> model.params['dropout'] = 0.2 >>> model.params['hidden_size'] = 200 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Instantiating layers.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.ArcI(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelArcI Model.
Examples
>>> model = ArcI() >>> model.params['left_filters'] = [32] >>> model.params['right_filters'] = [32] >>> model.params['left_kernel_sizes'] = [3] >>> model.params['right_kernel_sizes'] = [3] >>> model.params['left_pool_sizes'] = [2] >>> model.params['right_pool_sizes'] = [4] >>> model.params['conv_activation_func'] = 'relu' >>> model.params['mlp_num_layers'] = 1 >>> model.params['mlp_num_units'] = 64 >>> model.params['mlp_num_fan_out'] = 32 >>> model.params['mlp_activation_func'] = 'relu' >>> model.params['dropout_rate'] = 0.5 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_padding_callback(cls, fixed_length_left: int = 10, fixed_length_right: int = 100, pad_word_value: typing.Union[int, str] = 0, pad_word_mode: str = 'pre', with_ngram: bool = False, fixed_ngram_length: int = None, pad_ngram_value: typing.Union[int, str] = 0, pad_ngram_mode: str = 'pre') → BaseCallback¶ Model default padding callback.
The padding callback’s on_batch_unpacked would pad a batch of data to a fixed length.
- Returns
Default padding callback.
-
build(self)¶ Build model structure.
ArcI use Siamese arthitecture.
-
forward(self, inputs)¶ Forward.
-
classmethod
_make_conv_pool_block(cls, in_channels: int, out_channels: int, kernel_size: int, activation: nn.Module, pool_size: int) → nn.Module¶ Make conv pool block.
-
classmethod
-
class
matchzoo.models.ArcII(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelArcII Model.
Examples
>>> model = ArcII() >>> model.params['embedding_output_dim'] = 300 >>> model.params['kernel_1d_count'] = 32 >>> model.params['kernel_1d_size'] = 3 >>> model.params['kernel_2d_count'] = [16, 32] >>> model.params['kernel_2d_size'] = [[3, 3], [3, 3]] >>> model.params['pool_2d_size'] = [[2, 2], [2, 2]] >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_padding_callback(cls, fixed_length_left: int = 10, fixed_length_right: int = 100, pad_word_value: typing.Union[int, str] = 0, pad_word_mode: str = 'pre', with_ngram: bool = False, fixed_ngram_length: int = None, pad_ngram_value: typing.Union[int, str] = 0, pad_ngram_mode: str = 'pre') → BaseCallback¶ Model default padding callback.
The padding callback’s on_batch_unpacked would pad a batch of data to a fixed length.
- Returns
Default padding callback.
-
build(self)¶ Build model structure.
ArcII has the desirable property of letting two sentences meet before their own high-level representations mature.
-
forward(self, inputs)¶ Forward.
-
classmethod
_make_conv_pool_block(cls, in_channels: int, out_channels: int, kernel_size: tuple, activation: nn.Module, pool_size: tuple) → nn.Module¶ Make conv pool block.
-
classmethod
-
class
matchzoo.models.Bert(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelBert Model.
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_preprocessor(cls, mode: str = 'bert-base-uncased') → BasePreprocessor¶ - Returns
Default preprocessor.
-
classmethod
get_default_padding_callback(cls, fixed_length_left: int = None, fixed_length_right: int = None, pad_value: typing.Union[int, str] = 0, pad_mode: str = 'pre')¶ - Returns
Default padding callback.
-
build(self)¶ Build model structure.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.MVLSTM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelMVLSTM Model.
Examples
>>> model = MVLSTM() >>> model.params['hidden_size'] = 32 >>> model.params['top_k'] = 50 >>> model.params['mlp_num_layers'] = 2 >>> model.params['mlp_num_units'] = 20 >>> model.params['mlp_num_fan_out'] = 10 >>> model.params['mlp_activation_func'] = 'relu' >>> model.params['dropout_rate'] = 0.0 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_padding_callback(cls, fixed_length_left: int = 10, fixed_length_right: int = 40, pad_word_value: typing.Union[int, str] = 0, pad_word_mode: str = 'pre', with_ngram: bool = False, fixed_ngram_length: int = None, pad_ngram_value: typing.Union[int, str] = 0, pad_ngram_mode: str = 'pre') → BaseCallback¶ Model default padding callback.
The padding callback’s on_batch_unpacked would pad a batch of data to a fixed length.
- Returns
Default padding callback.
-
build(self)¶ Build model structure.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.MatchPyramid(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelMatchPyramid Model.
Examples
>>> model = MatchPyramid() >>> model.params['embedding_output_dim'] = 300 >>> model.params['kernel_count'] = [16, 32] >>> model.params['kernel_size'] = [[3, 3], [3, 3]] >>> model.params['dpool_size'] = [3, 10] >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Build model structure.
MatchPyramid text matching as image recognition.
-
forward(self, inputs)¶ Forward.
-
classmethod
_make_conv_pool_block(cls, in_channels: int, out_channels: int, kernel_size: tuple, activation: nn.Module) → nn.Module¶ Make conv pool block.
-
classmethod
-
class
matchzoo.models.aNMM(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelaNMM: Ranking Short Answer Texts with Attention-Based Neural Matching Model.
Examples
>>> model = aNMM() >>> model.params['embedding_output_dim'] = 300 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Build model structure.
aNMM: Ranking Short Answer Texts with Attention-Based Neural Matching Model.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.HBMP(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelHBMP model.
Examples
>>> model = HBMP() >>> model.params['embedding_input_dim'] = 200 >>> model.params['embedding_output_dim'] = 100 >>> model.params['mlp_num_layers'] = 1 >>> model.params['mlp_num_units'] = 10 >>> model.params['mlp_num_fan_out'] = 10 >>> model.params['mlp_activation_func'] = nn.LeakyReLU(0.1) >>> model.params['lstm_hidden_size'] = 5 >>> model.params['lstm_num'] = 3 >>> model.params['num_layers'] = 3 >>> model.params['dropout_rate'] = 0.1 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Build model structure.
HBMP use Siamese arthitecture.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.DUET(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelDuet Model.
Examples
>>> model = DUET() >>> model.params['left_length'] = 10 >>> model.params['right_length'] = 40 >>> model.params['lm_filters'] = 300 >>> model.params['mlp_num_layers'] = 2 >>> model.params['mlp_num_units'] = 300 >>> model.params['mlp_num_fan_out'] = 300 >>> model.params['mlp_activation_func'] = 'relu' >>> model.params['vocab_size'] = 2000 >>> model.params['dm_filters'] = 300 >>> model.params['dm_conv_activation_func'] = 'relu' >>> model.params['dm_kernel_size'] = 3 >>> model.params['dm_right_pool_size'] = 8 >>> model.params['dropout_rate'] = 0.5 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_preprocessor(cls, truncated_mode: str = 'pre', truncated_length_left: int = 10, truncated_length_right: int = 40, filter_mode: str = 'df', filter_low_freq: float = 1, filter_high_freq: float = float('inf'), remove_stop_words: bool = False, ngram_size: int = 3)¶ - Returns
Default preprocessor.
-
classmethod
get_default_padding_callback(cls, fixed_length_left: int = 10, fixed_length_right: int = 40, pad_word_value: typing.Union[int, str] = 0, pad_word_mode: str = 'pre', with_ngram: bool = True, fixed_ngram_length: int = None, pad_ngram_value: typing.Union[int, str] = 0, pad_ngram_mode: str = 'pre') → BaseCallback¶ Model default padding callback.
The padding callback’s on_batch_unpacked would pad a batch of data to a fixed length.
- Returns
Default padding callback.
-
classmethod
_xor_match(cls, x, y)¶ Xor match of two inputs.
-
build(self)¶ Build model structure.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.DIIN(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelDIIN model.
Examples
>>> model = DIIN() >>> model.params['embedding_input_dim'] = 10000 >>> model.params['embedding_output_dim'] = 300 >>> model.params['mask_value'] = 0 >>> model.params['char_embedding_input_dim'] = 100 >>> model.params['char_embedding_output_dim'] = 8 >>> model.params['char_conv_filters'] = 100 >>> model.params['char_conv_kernel_size'] = 5 >>> model.params['first_scale_down_ratio'] = 0.3 >>> model.params['nb_dense_blocks'] = 3 >>> model.params['layers_per_dense_block'] = 8 >>> model.params['growth_rate'] = 20 >>> model.params['transition_scale_down_ratio'] = 0.5 >>> model.params['conv_kernel_size'] = (3, 3) >>> model.params['pool_kernel_size'] = (2, 2) >>> model.params['dropout_rate'] = 0.2 >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
classmethod
get_default_preprocessor(cls, truncated_mode: str = 'pre', truncated_length_left: typing.Optional[int] = None, truncated_length_right: typing.Optional[int] = None, filter_mode: str = 'df', filter_low_freq: float = 1, filter_high_freq: float = float('inf'), remove_stop_words: bool = False, ngram_size: typing.Optional[int] = 1) → BasePreprocessor¶ Model default preprocessor.
The preprocessor’s transform should produce a correctly shaped data pack that can be used for training.
- Returns
Default preprocessor.
-
classmethod
get_default_padding_callback(cls, fixed_length_left: int = 10, fixed_length_right: int = 30, pad_word_value: typing.Union[int, str] = 0, pad_word_mode: str = 'pre', with_ngram: bool = True, fixed_ngram_length: int = None, pad_ngram_value: typing.Union[int, str] = 0, pad_ngram_mode: str = 'pre') → BaseCallback¶ Model default padding callback.
The padding callback’s on_batch_unpacked would pad a batch of data to a fixed length.
- Returns
Default padding callback.
-
build(self)¶ Build model structure.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
class
matchzoo.models.MatchSRNN(params: typing.Optional[ParamTable] = None)¶ Bases:
matchzoo.engine.base_model.BaseModelMatch-SRNN Model.
Examples
>>> model = MatchSRNN() >>> model.params['channels'] = 4 >>> model.params['units'] = 10 >>> model.params['dropout'] = 0.2 >>> model.params['direction'] = 'lt' >>> model.guess_and_fill_missing_params(verbose=0) >>> model.build()
-
classmethod
get_default_params(cls) → ParamTable¶ - Returns
model default parameters.
-
build(self)¶ Build model structure.
-
forward(self, inputs)¶ Forward.
-
classmethod
-
matchzoo.models.list_available() → list¶