-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy pathrun_graph_dssm.sh
executable file
·79 lines (71 loc) · 2.79 KB
/
run_graph_dssm.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#! /bin/bash
#
# Tencent is pleased to support the open source community by making embedx
# available.
#
# Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
#
# Licensed under the BSD 3-Clause License and other third-party components,
# please refer to LICENSE for details.
#
# Author: Chunchen Su ([email protected])
#
set -e
cd "$(dirname "$0")"
source runtime.sh
readonly DATASET="graph_dssm"
readonly DATASET_DIR="${DEMO_DIR}/data/${DATASET}"
readonly USER_GROUP_CONFIG="${DATASET_DIR}/user_group_config.txt"
readonly ITEM_GROUP_CONFIG="${DATASET_DIR}/item_group_config.txt"
readonly TRAINING_DATA="${DATASET_DIR}/training_data"
readonly USER_EMBEDDING="user_embedding"
readonly ITEM_EMBEDDING="item_embedding"
# graph flags
readonly FLAGS_node_graph="${DATASET_DIR}/context"
readonly FLAGS_node_config="${DATASET_DIR}/freq_file_ns_config"
readonly FLAGS_node_feature="${DATASET_DIR}/item_feature"
# trainer & predictor flags
readonly FLAGS_thread_num=8
readonly FLAGS_deep_model=true
readonly FLAGS_model="graph_dssm"
readonly FLAGS_model_config="user_group_id=4;depth=1;user_config=${USER_GROUP_CONFIG};item_config=${ITEM_GROUP_CONFIG};dim=64,32;alpha=0.1;num_neg=20;sparse=1"
readonly FLAGS_instance_reader="graph_dssm"
readonly FLAGS_optimizer="adam"
readonly FLAGS_optimizer_config="rho1=0.9;rho2=0.999;alpha=1e-4;beta=1e-8"
readonly FLAGS_model_shard=10
readonly FLAGS_freq_file="${DATASET_DIR}/freq_file"
readonly FLAGS_item_feature="${DATASET_DIR}/item_feature"
readonly FLAGS_epoch=10
readonly FLAGS_out_model="model"
################################################################
# Train
################################################################
FLAGS_gnn_model=true
FLAGS_instance_reader_config="num_neg=20;num_neighbors=10;add_node=0;user_group_id=4"
FLAGS_in="${TRAINING_DATA}"
FLAGS_target_type=0
run_trainer ${DATASET}
################################################################
# Predict user embedding
################################################################
FLAGS_gnn_model=false
FLAGS_instance_reader_config="is_train=0"
FLAGS_in_model="${FLAGS_out_model}"
FLAGS_in="${TRAINING_DATA}"
FLAGS_target_type=2
FLAGS_out_predict="${USER_EMBEDDING}"
run_predictor ${DATASET}
################################################################
# Predict item embedding
################################################################
FLAGS_gnn_model=false
FLAGS_instance_reader_config="is_train=0;add_node=0"
FLAGS_in="${FLAGS_item_feature}"
FLAGS_target_type=3
FLAGS_in_model="${FLAGS_out_model}"
FLAGS_out_predict="${ITEM_EMBEDDING}"
run_predictor ${DATASET}
################################################################
# Evaluate
################################################################
evaluate_hit_rate "${USER_EMBEDDING}" "${ITEM_EMBEDDING}" "50,100,200,500"