You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+97-34Lines changed: 97 additions & 34 deletions
Original file line number
Diff line number
Diff line change
@@ -27,8 +27,8 @@ Cornac is endorsed by ACM RecSys for evaluating and reproducing recommendation a
27
27
The architecture consists of the following components:
28
28
29
29
1.**Cornac-AB Backend Server** ([Backend source code](backend)): Handles API endpoints and business logic.
30
-
2.**Cornac-AB Frontend** ([Frontend source code](frontend)): Offers a user interface for interacting with the A/B tests.
31
-
3.**Books-AB User Interaction Frontend** ([User Interaction Frontend source code](democlient)): Provides a frontend for user interactions.
30
+
2.**Books-AB User Interaction Frontend** ([User Interaction Frontend source code](democlient)): Provides a frontend for user interactions.
31
+
3.**Cornac-AB Frontend** ([Frontend source code](frontend)): Offers a user interface to setup, track and evaluate models for the A/B tests.
32
32
4.**OpenSearch & OpenSearch Dashboards** ([Official site](https://opensearch.org)): Data indexing, search, and visualization.
33
33
5.**GoodReads 10k Dataset** ([Goodbooks-10k repository](https://github.com/zygmuntz/goodbooks-10k)): Preloaded data for demonstration purposes.
34
34
@@ -40,15 +40,92 @@ docker compose up
40
40
```
41
41
This command will start all the required components and load the GoodReads dataset into OpenSearch for A/B testing and visualization.
42
42
43
-
## Accessing the Solution
43
+
## Usage Guide
44
+
45
+
### Accessing the Solution
44
46
45
47
Once the containers are running, you can access the various parts of the solution via the following URLs:
46
-
- Cornac-AB Backend Server `localhost:8080`
47
-
- Cornac-AB Frontend `localhost:8081`
48
-
- Books-AB User Interaction Frontend `localhost:8082`
48
+
-[Books-AB User Interaction Frontend](#2)`localhost:8082`
49
+
-[Cornac-AB Frontend]()`localhost:8081`
49
50
- OpenSearch API `localhost:9200`
50
51
- OpenSearch Dashboards `localhost:5601`
51
52
53
+
### 1. Cornac-AB Backend
54
+
55
+
This backend server is built on [Spring](https://spring.io/). Spring is a production grade scalable framework for building web applications.
56
+
57
+
This solution connects to a local h2 database (which could be easily replaceable with most SQL databases supported by Spring).
58
+
59
+
[Cornac instances](https://cornac.readthedocs.io/en/stable/user/iamadeveloper.html#running-an-api-service) (Based on Flask) are run on this container, and restarts automatically should it be found to be down.
60
+
61
+
The [Spring Data OpenSearch](https://github.com/opensearch-project/spring-data-opensearch) library has been used to connect the backend to the OpenSearch service.
62
+
63
+
### 2. Books-AB User Interaction Frontend
64
+
65
+
#### Accessing the frontend
66
+
http://localhost:8082/
67
+
68
+
Included in this solution is a sample frontend that showcases how the solution receives user interactions.
Click **Explore Books**. A particular model is allocated by the backend, which provides recommendations as on this explore page. Recommendation records are stored in OpenSearch as well.
80
+
81
+
#### C. Providing Book Feedback
82
+
Users could select to view more details by clicking on them.
Further in this view, users will be able to rate the book by click the stars icon, which will be attributed with a **rate** action as a feedback on OpenSearch.
91
+
92
+
#### D. Viewing User Interactions
93
+
94
+
95
+
User interaction in this frontend will be recorded in OpenSearch as **recommendations** and **feedbacks**. These can be viewed in the Cornac-AB frontend dashboards in real-time, as shown in the next section.
Going to the dashboard screen will show you multiple dashboards, including the Users, Recommendations and Feedback dashboards. Sample data based on the Goodbooks 10k dataset has already been generated and inserted for you.
Under the Feedback Dashboard section, you will be able to filter data, and further compare your models using the Cornac evaluation features by selecting the **Run Cornac Evaluation** button.
A summary of the data that will be put through Cornac's evaluation services will be shown. You could add more metrics by selecting the **Add Metric** button will allow you to add more metrics as shown below.
You will then be shown with the metric results, along with the p-values of individual models to evaluate the performance of your models.
128
+
52
129
## Further Usage
53
130
54
131
Cornac-AB is a solution which showcases how A/B Testing could be done and visualized as a forward testing experiment. Feel free to further contribute, or fork the repository and extend it to your own application needs.
@@ -61,6 +138,20 @@ This project welcomes contributions and suggestions. Before contributing, please
61
138
62
139
If you use Cornac in a scientific publication, we would appreciate citations to the following papers:
63
140
141
+
<details>
142
+
<summary><ahref="https://ieeexplore.ieee.org/abstract/document/9354572">Cornac-AB: An Open-Source Recommendation Framework with Native A/B Testing Integration</a>, Ong <i>et al.</i>, In Proceedings of the ACM Web Conference 2024.</summary>
143
+
144
+
```
145
+
@inproceedings{ong2024cornacab,
146
+
title={Cornac-AB: An Open-Source Recommendation Framework with Native A/B Testing Integration},
147
+
author={Ong, Darryl and Truong, Quoc-Tuan and Lauw, Hady W},
148
+
journal={Proceedings of the ACM Web Conference 2024},
149
+
pages={xx--yy},
150
+
year={2024}
151
+
}
152
+
```
153
+
</details>
154
+
64
155
<details>
65
156
<summary><ahref="http://jmlr.org/papers/v21/19-805.html">Cornac: A Comparative Framework for Multimodal Recommender Systems</a>, Salah <i>et al.</i>, Journal of Machine Learning Research, 21(95):1–5, 2020.</summary>
66
157
@@ -77,34 +168,6 @@ If you use Cornac in a scientific publication, we would appreciate citations to
77
168
```
78
169
</details>
79
170
80
-
<details>
81
-
<summary><ahref="https://ieeexplore.ieee.org/abstract/document/9354572">Exploring Cross-Modality Utilization in Recommender Systems</a>, Truong <i>et al.</i>, IEEE Internet Computing, 25(4):50–57, 2021.</summary>
82
-
83
-
```
84
-
@article{truong2021exploring,
85
-
title={Exploring Cross-Modality Utilization in Recommender Systems},
86
-
author={Truong, Quoc-Tuan and Salah, Aghiles and Tran, Thanh-Binh and Guo, Jingyao and Lauw, Hady W},
0 commit comments