Skip to content

jiawei-chen/Samwalker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SamWalker & SamWalker++

This is our source codes for the conference paper (SamWalker) and its extension (SamWalker++):
[1] Jiawei Chen, Can Wang, Sheng Zhou, Qihao Shi, Yan Feng, and Chun Chen. "SamWalker: Social Recommendation with Informative Sampling Strategy." In The World Wide Web Conference, pp. 228-239. ACM, 2019.
[2] Can Wang, Jiawei Chen, Sheng Zhou, Qihao Shi, Yan Feng, and Chun Chen. "SamWalker++: recommendation with informative sampling strategy." In IEEE Transactions on Knowledge and Data Engineering.

Example to Run SamWalker++

We implement SamWalker++ in Python 3.6. The required packages are as follows:

  • pytorch=1.5.1
  • numpy=1.19.2
  • pandas=0.20.3
  • cppimport == 18.11.8
  • pybind11 == 2.5.0

We can run the code for the example data:

python Samwalkerplus.py

Where the inputs of the Samwalkerplus function are the paths of the trainning data, the test data and some parameters.

Each line of trainingdata.txt is: UserID \t ItemID \t 1
Each line of testdata.txt is :UserID \t ItemID \t 1
Noting: when the number of users or items are above a certain theroshold (500000), you need to enlarge the setting of 'maxnm' in the source code biwalker.cpp (line 12).

Example to Run SamWalker

We implement SamWalker in MATLAB. Also, we implement sampling process (Personalized random walk) in C++ to improve effeiciency. Before running the code, please compile c++ source codes to generate mex file in matlab enviornment:

mex mysamwalknew.cpp
mex myv2s.cpp

Then, we can run the code for the example data:

 samwalker('trainingdata.txt','testdata.txt','trustnetwork.txt')

Where the inputs of the Samwalker function are the paths of the trainning data, the test data and the social network data respectively.
Each line of trainingdata.txt is: UserID \t ItemID \t 1
Each line of testdata.txt is :UserID \t ItemID \t 1
Each line of trustnetwork.txt is: User1ID \t User2ID \t 1

Releases

No releases published

Packages

No packages published