Hierarchical Embedding Model (HEM)
This is an implementation of the Hierarchical Embedding Model (HEM) for personalized product search.
The HEM is a deep neural network model that jointly learn latent representations for queries, products and users. It is designed as a generative model and the embedding representations for queries, users and items in the HEM are learned through optimizing the log likelihood of observed user-query-item purchases.
The probability (which is also the rank score) of an item being purchased by a user with a query can be computed with their corresponding latent representations.
Details on HEM and its use can be found in the paper listed below. Please cite this paper if planning to
you it for your project.
- Qingyao Ai, Yongfeng Zhang, Keping Bi, Xu Chen, W. Bruce Croft. "Learning a Hierarchical Embedding Model for Personalized ProductSearch". In Proceedings of SIGIR 2017.
Additional references relating to this methodology are listed in the README.txt file in this release.
Email Qingyao Ai for questions or comments concerning this software or methodology.
- Python version 2.7+
- Tensorflow version 1.0+
- Java 1.7 to compile Java sources
- One may download Galago from the Lemur Project repository on SourceForge if one wishes to compile latest version. Note Java 1.8 is required for the latest versions of Galago, but Galago packages are provided in the jars/ directory of this HEM release.
See the README.txt file for details.
- Data must first be prepared. This involves obtaining the datasets, stem and stop words in the data if desired, index the datasets and finally extract queries and split data into train and test sets.
- Train the model.
- Test the model.
- Evaluate the model.
The README.txt file is included in both archives, but is available here individually so one may obtain an overview of dataset characteristics and content.
Uncompress the zip archive using unzip or (7zip) on Windows machines. Both these
utilities may also be installed on Unix machines.
7zip x -r HEM.zip
On Unix machines, untar the gziped tar archive using tar.
tar xvzf HEM.tar.gz
|HEM zip archive||
|HEM gzip tar archive||
This work was supported in part by the Center for
Intelligent Information Retrieval and in part by the
National Science Foundation grant #IIS-1160894. Any opinions, findings and
conclusions or recommendations expressed in this material are those of the authors
and do not necessarily reflect those of the sponsor.