metadata
pipeline_tag: sentence-similarity
tags:
- sentence-transformers
- feature-extraction
- sentence-similarity
- transformers
widget:
- source_sentence: 汪汪队立大功第1季动画动画冒险剧情本领高强的狗狗巡逻队精通科技的10岁男孩
sentences:
- 超人总动员2喜剧动作动画冒险家庭亲情超级英雄励志超能先生变奶爸超人家族时隔14年强势回归
- 星汉灿烂·月升沧海剧情爱情星汉灿烂·月升沧海该剧讲述了程家女名少商
- 外星人事件2喜剧科幻剧情山炮大战爆笑来袭传闻,几十年前外星人曾开着飞船造访过下井沟
example_title: Example
RecBERT
RecBERT is a Pretrain-for-Recommentation model. It could serve as an item encoder with the capability of capturing both collaborative filtering signals and text semantic Information. RecBERT is pre-trained on CMCC, an industrial video recommendation dataset collected from China Mobile.
Usage (Sentence-Transformers)
Using this model becomes easy when you have sentence-transformers installed:
pip install -U sentence-transformers
Then you can use the model like this:
from sentence_transformers import SentenceTransformer
sentences = ["汪汪队立大功第1季动画动画冒险剧情本领高强的狗狗巡逻队精通科技的10岁男孩", "超人总动员2喜剧动作动画冒险家庭亲情超级英雄励志超能先生变奶爸超人家族时隔14年强势回归"]
model = SentenceTransformer('YangsHao/RecBERT')
embeddings = model.encode(sentences)
print(embeddings)
Usage (HuggingFace Transformers)
Without sentence-transformers, you can use the model like this: First, you pass your input through the transformer model, then you have to apply the right pooling-operation on-top of the contextualized word embeddings.
from transformers import AutoTokenizer, AutoModel
import torch
def cls_pooling(model_output, attention_mask):
return model_output[0][:,0]
# Sentences we want sentence embeddings for
sentences = ['汪汪队立大功第1季动画动画冒险剧情本领高强的狗狗巡逻队精通科技的10岁男孩', '超人总动员2喜剧动作动画冒险家庭亲情超级英雄励志超能先生变奶爸超人家族时隔14年强势回归']
# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('YangsHao/RecBERT')
model = AutoModel.from_pretrained('YangsHao/RecBERT')
# Tokenize sentences
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
# Compute token embeddings
with torch.no_grad():
model_output = model(**encoded_input)
# Perform pooling. In this case, cls pooling.
sentence_embeddings = cls_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeddings:")
print(sentence_embeddings)
Full Model Architecture
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)