Collaborative Similarity Embedding
- g++ > 4.9 (In macOS, it needs OpenMP-enabled compilers. or try installing lateast version of gcc)
$ git clone https://github.com/cnclabs/codes.cse.rec
$ cd codes.cse.rec
$ make
Given a network input net.txt:
userA itemA 3
userA itemC 5
userB itemA 1
userB itemB 5
userC itemA 4
and a input for specifying the fields field.txt:
userA u
userB u
userC u
itemA i
itemB i
itemC i
The model learns the representations of each vertex:
6 5
userA 0.0815412 0.0205459 0.288714 0.296497 0.394043
itemA -0.207083 -0.258583 0.233185 0.0959801 0.258183
itemC 0.0185886 0.138003 0.213609 0.276383 0.45732
userB -0.0137994 -0.227462 0.103224 -0.456051 0.389858
itemB -0.317921 -0.163652 0.103891 -0.449869 0.318225
userC -0.156576 -0.3505 0.213454 0.10476 0.259673
Directly call the execution file to see the usage like:
./cli/nemf # for RATE-CSE
./cli/nerank $ for RANK-CSE
then you will see the options description like:
[CSE]
command nerank interface for proNet-core
Options Description:
-train <string>
Train the Network data
-save <string>
Save the representation data
-field <string>
Field data
-dimensions <int>
Dimension of vertex representation; default is 64
-sample_times <int>
Number of training samples *Million; default is 10
-walk_steps <int>
Walk steps; default is 5
-threads <int>
Number of training threads; default is 1
-alpha <float>
Init learning rate; default is 0.025
Usage:
[NERANK]
./nerank -train net.txt -field field.txt -walk_steps 2 -save rep.txt -dimensions 64 -sample_times 10 -alpha 0.025 -threads 1