vacaly opened a new pull request, #192:
URL: https://github.com/apache/flink-ml/pull/192
## What is the purpose of the change
* This pull request adds the implementation of Swing recommendation
algorith.*
## Brief change log
- *Adds Transformer and Estimator implementation of Swing recommendation
algorithm in Java*
- *Adds examples of Swing*
## Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): no
- The public API, i.e., is any changed class annotated with
`@Public(Evolving)`: no
## Documentation
Swing[1] recommendation algorithm can measure the similarity between items
by calculating their common users(or purchaser) and the difference of users.
The Swing score is
$$score_(i,j)=\sum_{u \in U_i}\sum_{v \in U_j} \frac{1}{I_u\cap I_v}$$
$U_i$ represents user set who clicked item $i$, $I_u$ represents item set
that user $u$ clicked.
Specifically, for the original input data of user-item click matrix, each
row is a user and a clicked item, eg: "Danny, IPhone".
And the Swing estimator works as follow steps:
1. At the first reducer stage, Swing estimator collects the item clicked
list of the specific user, eg: "Danny, {IPhone, IPad, AirPods}".
2. At the next mapper stage, for each item clicked by a certain user. the
estimator appends the user's item list to the row, eg: "Danny, IPhone, {IPhone,
IPad, AirPods}".
3. Then at the reducer stage, the estimator collects the user set $U_i$ who
clicked item $i$ ,and the item set clicked by each user in $U_i$. Finally Swing
score is calculated and save to SwingModel.
[1]Large Scale Product Graph Construction for Recommendation in
E-commerce,https://arxiv.org/pdf/2010.05525.pdf
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]