J'espère que les camarades de classe de passage pourront donner une étoile au framework JStarCraft, ce qui peut être considéré comme un encouragement à l'auteur !
JStarCraft RNS est un moteur léger orienté vers le domaine de la recherche d'informations. Il suit le protocole Apache 2.0.
Concentrez-vous sur la résolution de problèmes de base dans le domaine de la recherche d'informations : recommandation et recherche.
Fournir une conception et une mise en œuvre de moteurs de recommandations qui répondent aux exigences des scénarios de niveau industriel.
Fournir une conception et une mise en œuvre de moteurs de recherche qui répondent aux exigences des scénarios de niveau industriel.
JStarCraft RNS nécessite que les utilisateurs disposent de l'environnement suivant :
git clone https://github.com/HongZhaoHua/jstarcraft-core.git
mvn install -Dmaven.test.skip=true
git clone https://github.com/HongZhaoHua/jstarcraft-ai.git
mvn install -Dmaven.test.skip=true
git clone https://github.com/HongZhaoHua/jstarcraft-rns.git
mvn install -Dmaven.test.skip=true
<dependency>
<groupId>com.jstarcraft</groupId>
<artifactId>rns</artifactId>
<version>1.0</version>
</dependency>
compile group : ' com.jstarcraft ' , name : ' rns ' , version : ' 1.0 '
Properties keyValues = new Properties ();
keyValues . load ( this . getClass (). getResourceAsStream ( "/data.properties" ));
keyValues . load ( this . getClass (). getResourceAsStream ( "/recommend/benchmark/randomguess-test.properties" ));
Configurator configurator = new Configurator ( keyValues );
RankingTask task = new RankingTask ( RandomGuessModel . class , configurator );
// 训练与评估排序模型
task . execute ();
RatingTask task = new RatingTask ( RandomGuessModel . class , configurator );
// 训练与评估评分模型
task . execute ();
// 获取模型
Model model = task . getModel ();
随着信息技术和互联网的发展,人们逐渐从信息匮乏(Information Underload)的时代走入了信息过载(Information Overload)的时代.
无论是信息消费者还是信息生产者都遇到了挑战:
* 对于信息消费者,从海量信息中寻找信息,是一件非常困难的事情;
* 对于信息生产者,从海量信息中暴露信息,也是一件非常困难的事情;
信息检索的任务就是联系用户和信息,一方面帮助用户寻找对自己有价值的信息,另一方面帮助信息暴露给对它感兴趣的用户,从而实现信息消费者和信息生产者的双赢.
从信息检索的角度:
* 搜索和推荐是获取信息的两种主要手段;
* 搜索和推荐是获取信息的两种不同方式;
* 搜索(Search)是主动明确的;
* 推荐(Recommend)是被动模糊的;
搜索和推荐是两个互补的工具.
JStarCraft-RNS引擎旨在解决推荐与搜索领域的两个核心任务:排序预测(Ranking)和评分预测(Rating).
根据解决基本问题的不同,将算法与评估指标划分为排序(Ranking)与评分(Rating).
两者之间的根本区别在于目标函数的不同.
通俗点的解释:
Ranking算法基于隐式反馈数据,趋向于拟合用户的排序.(关注度)
Rating算法基于显示反馈数据,趋向于拟合用户的评分.(满意度)
关键在于具体场景中,关注度与满意度是否保持一致.
通俗点的解释:
人们关注的东西,并不一定是满意的东西.(例如:个人所得税)
Exemple complet
Écrivez un script BeanShell pour entraîner et évaluer le modèle et enregistrez-le dans le fichier Model.bsh
// 构建配置
keyValues = new Properties();
keyValues.load(loader.getResourceAsStream("data.properties"));
keyValues.load(loader.getResourceAsStream("model/benchmark/randomguess-test.properties"));
configurator = new Configurator(keyValues);
// 此对象会返回给Java程序
_data = new HashMap();
// 构建排序任务
task = new RankingTask(RandomGuessModel.class, configurator);
// 训练与评估模型并获取排序指标
measures = task.execute();
_data.put("precision", measures.get(PrecisionEvaluator.class));
_data.put("recall", measures.get(RecallEvaluator.class));
// 构建评分任务
task = new RatingTask(RandomGuessModel.class, configurator);
// 训练与评估模型并获取评分指标
measures = task.execute();
_data.put("mae", measures.get(MAEEvaluator.class));
_data.put("mse", measures.get(MSEEvaluator.class));
_data;
// 获取BeanShell脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.bsh" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置BeanShell脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置BeanShell脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行BeanShell脚本
ScriptExpression expression = new GroovyExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
Assert . assertEquals ( 0.005825241F , data . get ( "precision" ), 0F );
Assert . assertEquals ( 0.011579763F , data . get ( "recall" ), 0F );
Assert . assertEquals ( 1.2708743F , data . get ( "mae" ), 0F );
Assert . assertEquals ( 2.425075F , data . get ( "mse" ), 0F );
Exemple complet
Écrivez des scripts Groovy pour entraîner et évaluer le modèle et enregistrez-le dans le fichier Model.groovy
// 构建配置
def keyValues = new Properties ();
keyValues . load(loader . getResourceAsStream( " data.properties " ));
keyValues . load(loader . getResourceAsStream( " recommend/benchmark/randomguess-test.properties " ));
def configurator = new Configurator (keyValues);
// 此对象会返回给Java程序
def _data = [:];
// 构建排序任务
task = new RankingTask ( RandomGuessModel . class, configurator);
// 训练与评估模型并获取排序指标
measures = task . execute();
_data . precision = measures . get( PrecisionEvaluator . class);
_data . recall = measures . get( RecallEvaluator . class);
// 构建评分任务
task = new RatingTask ( RandomGuessModel . class, configurator);
// 训练与评估模型并获取评分指标
measures = task . execute();
_data . mae = measures . get( MAEEvaluator . class);
_data . mse = measures . get( MSEEvaluator . class);
_data;
// 获取Groovy脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.groovy" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Groovy脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Groovy脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Groovy脚本
ScriptExpression expression = new GroovyExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
Exemple complet
Écrivez des scripts JS pour entraîner et évaluer le modèle et enregistrez-le dans le fichier Model.js
// 构建配置
var keyValues = new Properties ( ) ;
keyValues . load ( loader . getResourceAsStream ( "data.properties" ) ) ;
keyValues . load ( loader . getResourceAsStream ( "recommend/benchmark/randomguess-test.properties" ) ) ;
var configurator = new Configurator ( [ keyValues ] ) ;
// 此对象会返回给Java程序
var _data = { } ;
// 构建排序任务
task = new RankingTask ( RandomGuessModel . class , configurator ) ;
// 训练与评估模型并获取排序指标
measures = task . execute ( ) ;
_data [ 'precision' ] = measures . get ( PrecisionEvaluator . class ) ;
_data [ 'recall' ] = measures . get ( RecallEvaluator . class ) ;
// 构建评分任务
task = new RatingTask ( RandomGuessModel . class , configurator ) ;
// 训练与评估模型并获取评分指标
measures = task . execute ( ) ;
_data [ 'mae' ] = measures . get ( MAEEvaluator . class ) ;
_data [ 'mse' ] = measures . get ( MSEEvaluator . class ) ;
_data ;
// 获取JS脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.js" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置JS脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置JS脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行JS脚本
ScriptExpression expression = new JsExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
Exemple complet
Écrivez un script Kotlin pour entraîner et évaluer le modèle et enregistrez-le dans le fichier Model.kt
// 构建配置
var keyValues = Properties ( ) ;
var loader = bindings [ "loader" ] as ClassLoader ;
keyValues . load ( loader . getResourceAsStream ( "data.properties" ) ) ;
keyValues . load ( loader . getResourceAsStream ( "model/benchmark/randomguess-test.properties" ) ) ;
var option = Option ( keyValues ) ;
// 此对象会返回给Java程序
var _data = mutableMapOf < String , Float > ( ) ;
// 构建排序任务
var rankingTask = RankingTask ( RandomGuessModel :: class . java , option ) ;
// 训练与评估模型并获取排序指标
val rankingMeasures = rankingTask . execute ( ) ;
_data [ "precision" ] = rankingMeasures . getFloat ( PrecisionEvaluator :: class . java ) ;
_data [ "recall" ] = rankingMeasures . getFloat ( RecallEvaluator :: class . java ) ;
// 构建评分任务
var ratingTask = RatingTask ( RandomGuessModel :: class . java , option ) ;
// 训练与评估模型并获取评分指标
var ratingMeasures = ratingTask . execute ( ) ;
_data [ "mae" ] = ratingMeasures . getFloat ( MAEEvaluator :: class . java ) ;
_data [ "mse" ] = ratingMeasures . getFloat ( MSEEvaluator :: class . java ) ;
_data ;
// 获取Kotlin脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.kt" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Kotlin脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Option" , MapOption . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Kotlin脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Kotlin脚本
ScriptExpression expression = new KotlinExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
Exemple complet
Écrivez des scripts Lua pour entraîner et évaluer le modèle et enregistrez-le dans le fichier Model.lua
-- 构建配置
local keyValues = Properties . new ();
keyValues : load ( loader : getResourceAsStream ( " data.properties " ));
keyValues : load ( loader : getResourceAsStream ( " recommend/benchmark/randomguess-test.properties " ));
local configurator = Configurator . new ({ keyValues });
-- 此对象会返回给Java程序
local _data = {};
-- 构建排序任务
task = RankingTask . new ( RandomGuessModel , configurator );
-- 训练与评估模型并获取排序指标
measures = task : execute ();
_data [ " precision " ] = measures : get ( PrecisionEvaluator );
_data [ " recall " ] = measures : get ( RecallEvaluator );
-- 构建评分任务
task = RatingTask . new ( RandomGuessModel , configurator );
-- 训练与评估模型并获取评分指标
measures = task : execute ();
_data [ " mae " ] = measures : get ( MAEEvaluator );
_data [ " mse " ] = measures : get ( MSEEvaluator );
return _data ;
// 获取Lua脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.lua" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Lua脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Lua脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Lua脚本
ScriptExpression expression = new LuaExpression ( context , scope , script );
LuaTable data = expression . doWith ( LuaTable . class );
Exemple complet
Écrivez des scripts Python pour entraîner et évaluer le modèle et enregistrez-le dans le fichier Model.py
# 构建配置
keyValues = Properties ()
keyValues . load ( loader . getResourceAsStream ( "data.properties" ))
keyValues . load ( loader . getResourceAsStream ( "recommend/benchmark/randomguess-test.properties" ))
configurator = Configurator ([ keyValues ])
# 此对象会返回给Java程序
_data = {}
# 构建排序任务
task = RankingTask ( RandomGuessModel , configurator )
# 训练与评估模型并获取排序指标
measures = task . execute ()
_data [ 'precision' ] = measures . get ( PrecisionEvaluator )
_data [ 'recall' ] = measures . get ( RecallEvaluator )
# 构建评分任务
task = RatingTask ( RandomGuessModel , configurator )
# 训练与评估模型并获取评分指标
measures = task . execute ()
_data [ 'mae' ] = measures . get ( MAEEvaluator )
_data [ 'mse' ] = measures . get ( MSEEvaluator )
// 设置Python环境变量
System . setProperty ( "python.console.encoding" , StringUtility . CHARSET . name ());
// 获取Python脚本
File file = new File ( PythonTestCase . class . getResource ( "Model.py" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Python脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Python脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Python脚本
ScriptExpression expression = new PythonExpression ( context , scope , script );
Map < String , Double > data = expression . doWith ( Map . class );
Exemple complet
Écrivez un script Ruby pour entraîner et évaluer le modèle et enregistrez-le dans le fichier Model.rb
# 构建配置
keyValues = Properties . new ( )
keyValues . load ( $loader . getResourceAsStream ( "data.properties" ) )
keyValues . load ( $loader . getResourceAsStream ( "model/benchmark/randomguess-test.properties" ) )
configurator = Configurator . new ( keyValues )
# 此对象会返回给Java程序
_data = Hash . new ( )
# 构建排序任务
task = RankingTask . new ( RandomGuessModel . java_class , configurator )
# 训练与评估模型并获取排序指标
measures = task . execute ( )
_data [ 'precision' ] = measures . get ( PrecisionEvaluator . java_class )
_data [ 'recall' ] = measures . get ( RecallEvaluator . java_class )
# 构建评分任务
task = RatingTask . new ( RandomGuessModel . java_class , configurator )
# 训练与评估模型并获取评分指标
measures = task . execute ( )
_data [ 'mae' ] = measures . get ( MAEEvaluator . java_class )
_data [ 'mse' ] = measures . get ( MSEEvaluator . java_class )
_data ;
// 获取Ruby脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.rb" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Ruby脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Ruby脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Ruby脚本
ScriptExpression expression = new RubyExpression ( context , scope , script );
Map < String , Double > data = expression . doWith ( Map . class );
Assert . assertEquals ( 0.005825241096317768D , data . get ( "precision" ), 0D );
Assert . assertEquals ( 0.011579763144254684D , data . get ( "recall" ), 0D );
Assert . assertEquals ( 1.270874261856079D , data . get ( "mae" ), 0D );
Assert . assertEquals ( 2.425075054168701D , data . get ( "mse" ), 0D );
nom | Ensemble de données | entraînement (millisecondes) | Prédiction (millisecondes) | AUC | CARTE | MRR | NDCG | Nouveauté | Précision | Rappel |
---|---|---|---|---|---|---|---|---|---|---|
Les plus populaires | filmtrust | 43 | 273 | 0,92080 | 0,41246 | 0,57196 | 0,51583 | 11.79295 | 0,33230 | 0,62385 |
Devinette aléatoire | filmtrust | 38 | 391 | 0,51922 | 0,00627 | 0,02170 | 0,01121 | 91.94900 | 0,00550 | 0,01262 |
nom | Ensemble de données | entraînement (millisecondes) | Prédiction (millisecondes) | AUC | CARTE | MRR | NDCG | Nouveauté | Précision | Rappel |
---|---|---|---|---|---|---|---|---|---|---|
AHr | filmtrust | 12448 | 253 | 0,89324 | 0,38967 | 0,53990 | 0,48338 | 21.13004 | 0,32295 | 0,56864 |
Classement des aspects | filmtrust | 177 | 58 | 0,85130 | 0,15498 | 0,42480 | 0,26012 | 37.36273 | 0,13302 | 0,31292 |
BHFreeClassement | filmtrust | 5720 | 4257 | 0,92080 | 0,41316 | 0,57231 | 0,51662 | 11.79567 | 0,33276 | 0,62500 |
BPR | filmtrust | 4228 | 137 | 0,89390 | 0,39886 | 0,54790 | 0,49180 | 21.46738 | 0,32268 | 0,57623 |
BUCMClassement | filmtrust | 2111 | 1343 | 0,90782 | 0,39794 | 0,55776 | 0,49651 | 13.08073 | 0,32407 | 0,59141 |
CDAE | filmtrust | 89280 | 376 | 0,91880 | 0,40759 | 0,56855 | 0,51089 | 11.82466 | 0,33051 | 0,61967 |
CLIMF | filmtrust | 48429 | 140 | 0,88293 | 0,37395 | 0,52407 | 0,46572 | 19.38964 | 0,32049 | 0,54605 |
DeepFM | filmtrust | 69264 | 99 | 0,91679 | 0,40580 | 0,56995 | 0,50985 | 11.90242 | 0,32719 | 0,61426 |
EAL | filmtrust | 850 | 185 | 0,86132 | 0,31263 | 0,45680 | 0,39475 | 20.08964 | 0,27381 | 0,46271 |
FISMAUC | filmtrust | 2338 | 663 | 0,91216 | 0,40032 | 0,55730 | 0,50114 | 12.07469 | 0,32845 | 0,60294 |
FISMRMSE | filmtrust | 4030 | 729 | 0,91482 | 0,40795 | 0,56470 | 0,50920 | 11.91234 | 0,33044 | 0,61107 |
USDR | filmtrust | 14827 | 150 | 0,92113 | 0,41003 | 0,57144 | 0,51464 | 11.87609 | 0,33090 | 0,62512 |
HMM | jeu | 38697 | 11223 | 0,80559 | 0,18156 | 0,37516 | 0,25803 | 16.01041 | 0,14572 | 0,22810 |
ArticleBigram | filmtrust | 12492 | 61 | 0,88807 | 0,33520 | 0,46870 | 0,42854 | 17.11172 | 0,29191 | 0,53308 |
ArticleKNNClassement | filmtrust | 2683 | 250 | 0,87438 | 0,33375 | 0,46951 | 0,41767 | 20.23449 | 0,28581 | 0,49248 |
LDA | filmtrust | 696 | 161 | 0,91980 | 0,41758 | 0,58130 | 0,52003 | 12.31348 | 0,33336 | 0,62274 |
LambdaFMStatique | jeu | 25052 | 27078 | 0,87064 | 0,27294 | 0,43640 | 0,34794 | 16.47330 | 0,13941 | 0,35696 |
LambdaFMPoids | jeu | 25232 | 28156 | 0,87339 | 0,27333 | 0,43720 | 0,34728 | 14.71413 | 0,13742 | 0,35252 |
LambdaFMDynamique | jeu | 74218 | 27921 | 0,87380 | 0,27288 | 0,43648 | 0,34706 | 13.50578 | 0,13822 | 0,35132 |
ListewiseMF | filmtrust | 714 | 161 | 0,90820 | 0,40511 | 0,56619 | 0,50521 | 15.53665 | 0,32944 | 0,60092 |
PLSA | filmtrust | 1027 | 116 | 0,89950 | 0,41217 | 0,57187 | 0,50597 | 16.01080 | 0,32401 | 0,58557 |
ClassementALS | filmtrust | 3285 | 182 | 0,85901 | 0,29255 | 0,51014 | 0,38871 | 25.27197 | 0,22931 | 0,42509 |
RangCD | produit | 1442 | 8905 | 0,56271 | 0,01253 | 0,04618 | 0,02682 | 55.42019 | 0,01548 | 0,03520 |
RangSGD | filmtrust | 309 | 113 | 0,80388 | 0,23587 | 0,42290 | 0,32081 | 42.83305 | 0,19363 | 0,35374 |
RangVFCD | produit | 54273 | 6524 | 0,58022 | 0,01784 | 0,06181 | 0,03664 | 62.95810 | 0,01980 | 0,04852 |
MINCE | filmtrust | 62434 | 91 | 0,91849 | 0,44851 | 0,61083 | 0,54557 | 16.67990 | 0,34019 | 0,63021 |
UtilisateurKNNClassement | filmtrust | 1154 | 229 | 0,90752 | 0,41616 | 0,57525 | 0,51393 | 12.90921 | 0,32891 | 0,60152 |
VBPR | produit | 184473 | 15304 | 0,54336 | 0,00920 | 0,03522 | 0,01883 | 45.05101 | 0,01037 | 0,02266 |
WBPR | filmtrust | 20705 | 183 | 0,78072 | 0,24647 | 0,33373 | 0,30442 | 17.18609 | 0,25000 | 0,35516 |
WRMF | filmtrust | 482 | 158 | 0,90616 | 0,43278 | 0,58284 | 0,52480 | 15.17956 | 0,32918 | 0,60780 |
RangGeoFM | QuatreCarré | 368436 | 1093 | 0,72708 | 0,05485 | 0,24012 | 0,11057 | 37.50040 | 0,07866 | 0,08640 |
SBPR | filmtrust | 41481 | 247 | 0,91010 | 0,41189 | 0,56480 | 0,50726 | 15.67905 | 0,32440 | 0,59699 |
nom | Ensemble de données | entraînement (millisecondes) | Prédiction (millisecondes) | AUC | CARTE | MRR | NDCG | Nouveauté | Précision | Rappel |
---|---|---|---|---|---|---|---|---|---|---|
Classement EFM | dc_dense | 2066 | 2276 | 0,61271 | 0,01611 | 0,04631 | 0,04045 | 53.26140 | 0,02387 | 0,07357 |
TFIDF | instruments_de_musique | 942 | 1085 | 0,52756 | 0,01067 | 0,01917 | 0,01773 | 72.71228 | 0,00588 | 0,03103 |
nom | Ensemble de données | entraînement (millisecondes) | Prédiction (millisecondes) | MAE | MPE | MSE |
---|---|---|---|---|---|---|
ConstanteGuess | filmtrust | 137 | 45 | 1.05608 | 1.00000 | 1.42309 |
Moyenne globale | filmtrust | 60 | 13 | 0,71977 | 0,77908 | 0,85199 |
ArticleMoyenne | filmtrust | 59 | 12 | 0,72968 | 0,97242 | 0,86413 |
ÉlémentCluster | filmtrust | 471 | 41 | 0,71976 | 0,77908 | 0,85198 |
Devinette aléatoire | filmtrust | 38 | 8 | 1.28622 | 0,99597 | 2.47927 |
Moyenne de l'utilisateur | filmtrust | 35 | 9 | 0,64618 | 0,97242 | 0,70172 |
Cluster d'utilisateurs | filmtrust | 326 | 45 | 0,71977 | 0,77908 | 0,85199 |
nom | Ensemble de données | entraînement (millisecondes) | Prédiction (millisecondes) | MAE | MPE | MSE |
---|---|---|---|---|---|---|
Note d'aspect | filmtrust | 220 | 5 | 0,65754 | 0,97918 | 0,71809 |
ASVDPlusPlus | filmtrust | 5631 | 8 | 0,71975 | 0,77921 | 0,85196 |
BiaisMF | filmtrust | 92 | 6 | 0,63157 | 0,98387 | 0,66220 |
BHFreeNote | filmtrust | 6667 | 76 | 0,71974 | 0,77908 | 0,85198 |
BPMF | filmtrust | 25942 | 52 | 0,66504 | 0,98465 | 0,70210 |
Cote BUCMR | filmtrust | 1843 | 30 | 0,64834 | 0,99102 | 0,67992 |
CCD | produit | 15715 | 9 | 0,96670 | 0,93947 | 1,62145 |
FFM | filmtrust | 5422 | 6 | 0,63446 | 0,98413 | 0,66682 |
FMALS | filmtrust | 1854 | 5 | 0,64788 | 0,96032 | 0,73636 |
fmsgd | filmtrust | 3496 | 10 | 0,63452 | 0,98426 | 0,66710 |
GPLSA | filmtrust | 2567 | 7 | 0,67311 | 0,98972 | 0,79883 |
IRRG | filmtrust | 40284 | 6 | 0,64766 | 0,98777 | 0,73700 |
ArticleKNNRating | filmtrust | 2052 | 27 | 0,62341 | 0,95394 | 0,67312 |
PMMA | filmtrust | 8650 | 84 | 0,66383 | 0,99284 | 0,70666 |
LLORMA | filmtrust | 16618 | 82 | 0,64930 | 0,96591 | 0,76067 |
MFALS | filmtrust | 2944 | 5 | 0,82939 | 0,94549 | 1.30547 |
NMF | filmtrust | 1198 | 8 | 0,67661 | 0,96604 | 0,83493 |
PMF | filmtrust | 215 | 7 | 0,72959 | 0,98165 | 0,99948 |
GAR | filmtrust | 19551 | 270 | 0,74484 | 0,98504 | 0,88968 |
RFRec | filmtrust | 16330 | 54 | 0,64008 | 0,97112 | 0,69390 |
SVDPlusPlus | filmtrust | 452 | 26 | 0,65248 | 0,99141 | 0,68289 |
URP | filmtrust | 1514 | 25 | 0,64207 | 0,99128 | 0,67122 |
UtilisateurKNNRating | filmtrust | 1121 | 135 | 0,63933 | 0,94640 | 0,69280 |
RSTE | filmtrust | 4052 | 10 | 0,64303 | 0,99206 | 0,67777 |
SocialMF | filmtrust | 918 | 13 | 0,64668 | 0,98881 | 0,68228 |
SoRec | filmtrust | 1048 | 10 | 0,64305 | 0,99232 | 0,67776 |
SoReg | filmtrust | 635 | 8 | 0,65943 | 0,96734 | 0,72760 |
HeureSVD | filmtrust | 11545 | 36 | 0,68954 | 0,93326 | 0,87783 |
ConfianceMF | filmtrust | 2038 | 7 | 0,63787 | 0,98985 | 0,69017 |
ConfianceSVD | filmtrust | 12465 | vingt-deux | 0,61984 | 0,98933 | 0,63875 |
AssociationRègle | filmtrust | 2628 | 195 | 0,90853 | 0,41801 | 0,57777 |
PersonnalitéDiagnostic | filmtrust | 45 | 642 | 0,72964 | 0,76620 | 1.03071 |
PrankD | filmtrust | 3321 | 170 | 0,74472 | 0,22894 | 0,32406 |
PenteUn | filmtrust | 135 | 28 | 0,63788 | 0,96175 | 0,71057 |
nom | Ensemble de données | entraînement (millisecondes) | Prédiction (millisecondes) | MAE | MPE | MSE |
---|---|---|---|---|---|---|
Cote EFMR | dc_dense | 659 | 8 | 0,61546 | 0,85364 | 0,78279 |
HFT | instruments_de_musique | 162753 | 13 | 0,64272 | 0,94886 | 0,81393 |
SujetMFAT | instruments_de_musique | 6907 | 7 | 0,61896 | 0,98734 | 0,72545 |
SujetMFMT | instruments_de_musique | 6323 | 7 | 0,61896 | 0,98734 | 0,72545 |
nom | question | Description/thèse |
---|---|---|
Devinette aléatoire | Classement Note | supposition aléatoire |
Les plus populaires | Classement | le plus populaire |
ConstanteGuess | Notation | supposition constante |
Moyenne globale | Notation | moyenne mondiale |
ArticleMoyenne | Notation | Moyenne des articles |
ÉlémentCluster | Notation | Regroupement d'articles |
Moyenne de l'utilisateur | Notation | utilisateur moyen |
Cluster d'utilisateurs | Notation | Regroupement d'utilisateurs |
nom | question | Description/thèse |
---|---|---|
Modèle d'aspect | Classement Note | Modèles de classes latentes pour le filtrage collaboratif |
BHGratuit | Classement Note | Équilibrer la précision des prévisions et des recommandations : facteurs latents hiérarchiques pour les données de préférence |
BUCM | Classement Note | Sélection et pertinence des éléments de modélisation pour des recommandations précises |
ArticleKNN | Classement Note | Filtrage collaboratif basé sur les éléments |
UtilisateurKNN | Classement Note | Filtrage collaboratif basé sur l'utilisateur |
AHr | Classement | Améliorer l'apprentissage par paires pour la recommandation d'articles à partir de commentaires implicites |
BPR | Classement | BPR : classement bayésien personnalisé à partir de commentaires implicites |
CLIMF | Classement | CLiMF : apprendre à maximiser le classement réciproque grâce au filtrage collaboratif « moins c'est plus » |
EAL | Classement | Filtrage collaboratif pour un ensemble de données de commentaires implicites |
FISM | Classement | FISM : modèles de similarité d'éléments pondérés pour les systèmes de recommandation Top-N |
USDR | Classement | GBPR : classement personnalisé bayésien basé sur les préférences de groupe pour le filtrage collaboratif à une classe |
HMMPourCF | Classement | Un modèle de Markov caché Objectif : Une classe pour le modèle, comprenant des paramètres |
ArticleBigram | Classement | Modélisation de sujets : au-delà du sac de mots |
LambdaFM | Classement | LambdaFM : apprendre le classement optimal avec des machines de factorisation utilisant des substituts Lambda |
LDA | Classement | Allocation de Dirichlet latente pour la rétroaction implicite |
ListewiseMF | Classement | Apprendre par liste à classer avec la factorisation matricielle pour le filtrage collaboratif |
PLSA | Classement | Modèles sémantiques latents pour le filtrage collaboratif |
ClassementALS | Classement | Alternance des moindres carrés pour un classement personnalisé |
RangSGD | Classement | Ensemble de filtrage collaboratif pour le classement |
MINCE | Classement | SLIM : méthodes linéaires clairsemées pour les systèmes de recommandation Top-N |
WBPR | Classement | Classement bayésien personnalisé pour les éléments échantillonnés de manière non uniforme |
WRMF | Classement | Filtrage collaboratif pour les ensembles de données de commentaires implicites |
Rang-GeoFM | Classement | Rank-GeoFM : une méthode de factorisation géographique basée sur un classement pour la recommandation de points d'intérêt |
SBPR | Classement | Tirer parti des connexions sociales pour améliorer le classement personnalisé pour le filtrage collaboratif |
AssociationRègle | Classement | Un algorithme de recommandation utilisant des règles d'association multi-niveaux |
PrankD | Classement | Classement personnalisé avec diversité |
AsymétriqueSVD++ | Notation | La factorisation rencontre le quartier : un modèle de filtrage collaboratif à multiples facettes |
Enregistrement automatique | Notation | AutoRec : les encodeurs automatiques rencontrent le filtrage collaboratif |
BPMF | Notation | Factorisation matricielle probabiliste bayésienne à l'aide de la chaîne de Markov Monte Carlo |
CCD | Notation | Filtrage collaboratif parallèle à grande échelle pour le prix Netflix |
FFM | Notation | Machines de factorisation sensibles au champ pour la prédiction du CTR |
GPLSA | Notation | Filtrage collaboratif via l'analyse sémantique latente probabiliste gaussienne |
IRRG | Notation | Exploiter les relations d'articles implicites pour les systèmes de recommandation |
MFALS | Notation | Filtrage collaboratif parallèle à grande échelle pour le prix Netflix |
NMF | Notation | Algorithmes de factorisation matricielle non négative |
PMF | Notation | PMF : Factorisation matricielle probabiliste |
GAR | Notation | Machines Boltzman restreintes pour le filtrage collaboratif |
RF-Enregistrement | Notation | RF-Rec : calcul rapide et précis des recommandations basées sur les fréquences de notation |
SVD++ | Notation | La factorisation rencontre le quartier : un modèle de filtrage collaboratif à multiples facettes |
URP | Notation | Profil d'évaluation des utilisateurs : un modèle LDA pour la prédiction des évaluations |
RSTE | Notation | Apprendre à recommander avec Social Trust Ensemble |
SocialMF | Notation | Une technique de factorisation matricielle avec propagation de confiance pour la recommandation dans les réseaux sociaux |
SoRec | Notation | SoRec : recommandation sociale utilisant la factorisation matricielle probabiliste |
SoReg | Notation | Systèmes de recommandation avec régularisation sociale |
TempsSVD++ | Notation | Filtrage collaboratif avec dynamique temporelle |
ConfianceMF | Notation | Filtrage collaboratif social par confiance |
ConfianceSVD | Notation | TrustSVD : filtrage collaboratif avec l'influence à la fois explicite et implicite de la confiance des utilisateurs et des évaluations des éléments |
PersonnalitéDiagnostic | Notation | Une brève introduction au diagnostic de personnalité |
PenteUn | Notation | Prédicteurs de pente un pour le filtrage collaboratif basé sur la notation en ligne |
nom | question | Description/thèse |
---|---|---|
EFM | Classement Note | Modèles factoriels explicites pour des recommandations explicables basées sur une analyse des sentiments au niveau de la phrase |
TF-IDF | Classement | Fréquence des termes-fréquence des documents inverse |
HFT | Notation | Facteurs cachés et sujets cachés : comprendre les dimensions de l'évaluation avec le texte de l'avis |
SujetMF | Notation | TopicMF : Exploiter simultanément les notes et les avis pour la recommandation |
JStarCraft RNS suit le protocole Apache 2.0 et toutes les œuvres dérivées basées sur celui-ci appartiennent à l'auteur de l'œuvre dérivée.
auteur | Hong Zhaohua |
---|---|
[email protected], [email protected] |
Un merci spécial à l'équipe LibRec et au groupe du système de recommandation QQ (274750470) pour leur soutien et leur aide dans la recommandation.
Un merci spécial à Lu Xugang pour son soutien et son aide dans la recherche.
Un merci spécial à Hangzhou Chengzi Information Technology Co., Ltd. pour son don au projet JStarCraft.