Espero que los compañeros que pasen puedan darle una estrella al marco JStarCraft, ¡lo que puede considerarse como un estímulo para el autor!
JStarCraft RNS es un motor ligero orientado al campo de la recuperación de información. Sigue el protocolo Apache 2.0.
Centrado en la resolución de problemas básicos en el ámbito de la recuperación de información: recomendación y búsqueda.
Proporcionar diseño e implementación de motores de recomendaciones que cumplan con los requisitos de escenarios de nivel industrial.
Proporcionar diseño e implementación de motores de búsqueda que cumplan con los requisitos de escenarios de nivel industrial.
JStarCraft RNS requiere que los usuarios tengan el siguiente entorno:
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算法基于显示反馈数据,趋向于拟合用户的评分.(满意度)
关键在于具体场景中,关注度与满意度是否保持一致.
通俗点的解释:
人们关注的东西,并不一定是满意的东西.(例如:个人所得税)
Ejemplo completo
Escriba un script BeanShell para entrenar y evaluar el modelo y guárdelo en el archivo 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 );
Ejemplo completo
Escriba scripts de Groovy para entrenar y evaluar el modelo y guárdelo en el archivo 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 );
Ejemplo completo
Escriba scripts JS para entrenar y evaluar el modelo y guardarlo en el archivo 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 );
Ejemplo completo
Escriba un script Kotlin para entrenar y evaluar el modelo y guárdelo en el archivo 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 );
Ejemplo completo
Escriba scripts de Lua para entrenar y evaluar el modelo y guárdelo en el archivo 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 );
Ejemplo completo
Escriba scripts de Python para entrenar y evaluar el modelo y guardarlo en el archivo 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 );
Ejemplo completo
Escriba un script Ruby para entrenar y evaluar el modelo y guárdelo en el archivo 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 );
nombre | Conjunto de datos | entrenamiento (milisegundos) | Predicción (milisegundos) | AUC | MAPA | MRR | NDCG | Novedad | Precisión | Recordar |
---|---|---|---|---|---|---|---|---|---|---|
más popular | confianza cinematográfica | 43 | 273 | 0.92080 | 0.41246 | 0.57196 | 0.51583 | 11.79295 | 0.33230 | 0.62385 |
Adivina al azar | confianza cinematográfica | 38 | 391 | 0.51922 | 0.00627 | 0.02170 | 0.01121 | 91.94900 | 0.00550 | 0.01262 |
nombre | Conjunto de datos | entrenamiento (milisegundos) | Predicción (milisegundos) | AUC | MAPA | MRR | NDCG | Novedad | Precisión | Recordar |
---|---|---|---|---|---|---|---|---|---|---|
AHr | confianza cinematográfica | 12448 | 253 | 0.89324 | 0.38967 | 0.53990 | 0.48338 | 21.13004 | 0,32295 | 0.56864 |
Clasificación de aspecto | confianza cinematográfica | 177 | 58 | 0.85130 | 0,15498 | 0,42480 | 0.26012 | 37.36273 | 0.13302 | 0.31292 |
BHFreeRanking | confianza cinematográfica | 5720 | 4257 | 0.92080 | 0.41316 | 0.57231 | 0.51662 | 11.79567 | 0.33276 | 0,62500 |
BPR | confianza cinematográfica | 4228 | 137 | 0.89390 | 0.39886 | 0.54790 | 0.49180 | 21.46738 | 0.32268 | 0.57623 |
Clasificación BUCM | confianza cinematográfica | 2111 | 1343 | 0.90782 | 0.39794 | 0.55776 | 0.49651 | 13.08073 | 0,32407 | 0.59141 |
CDAE | confianza cinematográfica | 89280 | 376 | 0.91880 | 0.40759 | 0.56855 | 0.51089 | 11.82466 | 0.33051 | 0.61967 |
Clima | confianza cinematográfica | 48429 | 140 | 0.88293 | 0,37395 | 0.52407 | 0,46572 | 19.38964 | 0.32049 | 0.54605 |
ProfundoFM | confianza cinematográfica | 69264 | 99 | 0.91679 | 0.40580 | 0.56995 | 0.50985 | 11.90242 | 0.32719 | 0.61426 |
EALS | confianza cinematográfica | 850 | 185 | 0.86132 | 0.31263 | 0.45680 | 0,39475 | 20.08964 | 0.27381 | 0.46271 |
FISMAUC | confianza cinematográfica | 2338 | 663 | 0.91216 | 0.40032 | 0.55730 | 0.50114 | 12.07469 | 0,32845 | 0.60294 |
FISMRMSE | confianza cinematográfica | 4030 | 729 | 0.91482 | 0.40795 | 0.56470 | 0.50920 | 11.91234 | 0.33044 | 0.61107 |
GBPR | confianza cinematográfica | 14827 | 150 | 0.92113 | 0.41003 | 0.57144 | 0.51464 | 11.87609 | 0.33090 | 0.62512 |
MMM | juego | 38697 | 11223 | 0.80559 | 0.18156 | 0.37516 | 0.25803 | 16.01041 | 0.14572 | 0.22810 |
ArtículoBigram | confianza cinematográfica | 12492 | 61 | 0.88807 | 0.33520 | 0,46870 | 0,42854 | 17.11172 | 0.29191 | 0.53308 |
ArtículoKNNRanking | confianza cinematográfica | 2683 | 250 | 0.87438 | 0.33375 | 0.46951 | 0.41767 | 20.23449 | 0.28581 | 0.49248 |
LDA | confianza cinematográfica | 696 | 161 | 0.91980 | 0.41758 | 0.58130 | 0.52003 | 12.31348 | 0.33336 | 0.62274 |
LambdaFMEstática | juego | 25052 | 27078 | 0.87064 | 0.27294 | 0.43640 | 0.34794 | 16.47330 | 0.13941 | 0,35696 |
LambdaFMPeso | juego | 25232 | 28156 | 0.87339 | 0.27333 | 0.43720 | 0,34728 | 14.71413 | 0.13742 | 0,35252 |
LambdaFMDinámico | juego | 74218 | 27921 | 0.87380 | 0.27288 | 0.43648 | 0.34706 | 13.50578 | 0.13822 | 0,35132 |
ListwiseMF | confianza cinematográfica | 714 | 161 | 0.90820 | 0.40511 | 0.56619 | 0.50521 | 15.53665 | 0.32944 | 0.60092 |
plsa | confianza cinematográfica | 1027 | 116 | 0.89950 | 0.41217 | 0.57187 | 0.50597 | 16.01080 | 0,32401 | 0.58557 |
RangoALS | confianza cinematográfica | 3285 | 182 | 0.85901 | 0,29255 | 0.51014 | 0.38871 | 25.27197 | 0.22931 | 0,42509 |
RangoCD | producto | 1442 | 8905 | 0.56271 | 0.01253 | 0.04618 | 0.02682 | 55.42019 | 0.01548 | 0.03520 |
RangoSGD | confianza cinematográfica | 309 | 113 | 0.80388 | 0,23587 | 0.42290 | 0.32081 | 42.83305 | 0.19363 | 0,35374 |
RangoVFCD | producto | 54273 | 6524 | 0.58022 | 0.01784 | 0.06181 | 0.03664 | 62.95810 | 0.01980 | 0.04852 |
DELGADO | confianza cinematográfica | 62434 | 91 | 0.91849 | 0,44851 | 0.61083 | 0.54557 | 16.67990 | 0.34019 | 0.63021 |
UsuarioKNNRanking | confianza cinematográfica | 1154 | 229 | 0.90752 | 0.41616 | 0.57525 | 0.51393 | 12.90921 | 0.32891 | 0.60152 |
VBPR | producto | 184473 | 15304 | 0.54336 | 0.00920 | 0.03522 | 0.01883 | 45.05101 | 0.01037 | 0.02266 |
WBPR | confianza cinematográfica | 20705 | 183 | 0.78072 | 0,24647 | 0.33373 | 0.30442 | 17.18609 | 0,25000 | 0.35516 |
WRMF | confianza cinematográfica | 482 | 158 | 0.90616 | 0.43278 | 0.58284 | 0.52480 | 15.17956 | 0.32918 | 0.60780 |
RangoGeoFM | Firme | 368436 | 1093 | 0.72708 | 0.05485 | 0.24012 | 0.11057 | 37.50040 | 0.07866 | 0.08640 |
SBPR | confianza cinematográfica | 41481 | 247 | 0.91010 | 0.41189 | 0.56480 | 0.50726 | 15.67905 | 0,32440 | 0.59699 |
nombre | Conjunto de datos | entrenamiento (milisegundos) | Predicción (milisegundos) | AUC | MAPA | MRR | NDCG | Novedad | Precisión | Recordar |
---|---|---|---|---|---|---|---|---|---|---|
Clasificación EFM | dc_denso | 2066 | 2276 | 0.61271 | 0.01611 | 0.04631 | 0.04045 | 53.26140 | 0.02387 | 0.07357 |
TFIDF | instrumentos_musicales | 942 | 1085 | 0.52756 | 0.01067 | 0.01917 | 0.01773 | 72.71228 | 0.00588 | 0.03103 |
nombre | Conjunto de datos | entrenamiento (milisegundos) | Predicción (milisegundos) | MAE | MPE | MSE |
---|---|---|---|---|---|---|
Adivina constante | confianza cinematográfica | 137 | 45 | 1.05608 | 1.00000 | 1.42309 |
Promedio global | confianza cinematográfica | 60 | 13 | 0.71977 | 0.77908 | 0.85199 |
ArtículoPromedio | confianza cinematográfica | 59 | 12 | 0.72968 | 0.97242 | 0.86413 |
Clúster de artículos | confianza cinematográfica | 471 | 41 | 0.71976 | 0.77908 | 0.85198 |
Adivina al azar | confianza cinematográfica | 38 | 8 | 1.28622 | 0.99597 | 2.47927 |
Usuario promedio | confianza cinematográfica | 35 | 9 | 0.64618 | 0.97242 | 0.70172 |
Clúster de usuarios | confianza cinematográfica | 326 | 45 | 0.71977 | 0.77908 | 0.85199 |
nombre | Conjunto de datos | entrenamiento (milisegundos) | Predicción (milisegundos) | MAE | MPE | MSE |
---|---|---|---|---|---|---|
Clasificación de aspecto | confianza cinematográfica | 220 | 5 | 0.65754 | 0.97918 | 0.71809 |
ASVDPlusPlus | confianza cinematográfica | 5631 | 8 | 0.71975 | 0.77921 | 0.85196 |
MF sesgado | confianza cinematográfica | 92 | 6 | 0.63157 | 0.98387 | 0.66220 |
BHFreeRating | confianza cinematográfica | 6667 | 76 | 0.71974 | 0.77908 | 0.85198 |
BPMF | confianza cinematográfica | 25942 | 52 | 0.66504 | 0.98465 | 0.70210 |
BUCMRating | confianza cinematográfica | 1843 | 30 | 0.64834 | 0.99102 | 0.67992 |
CCD | producto | 15715 | 9 | 0.96670 | 0.93947 | 1.62145 |
ffm | confianza cinematográfica | 5422 | 6 | 0.63446 | 0.98413 | 0.66682 |
FMALES | confianza cinematográfica | 1854 | 5 | 0.64788 | 0.96032 | 0.73636 |
fmsgd | confianza cinematográfica | 3496 | 10 | 0.63452 | 0.98426 | 0.66710 |
GPLSA | confianza cinematográfica | 2567 | 7 | 0.67311 | 0.98972 | 0.79883 |
IRRG | confianza cinematográfica | 40284 | 6 | 0.64766 | 0.98777 | 0,73700 |
ArtículoKNNRating | confianza cinematográfica | 2052 | 27 | 0.62341 | 0.95394 | 0.67312 |
PMA | confianza cinematográfica | 8650 | 84 | 0.66383 | 0.99284 | 0.70666 |
LLORMA | confianza cinematográfica | 16618 | 82 | 0.64930 | 0.96591 | 0.76067 |
MFALS | confianza cinematográfica | 2944 | 5 | 0.82939 | 0.94549 | 1.30547 |
NMF | confianza cinematográfica | 1198 | 8 | 0.67661 | 0.96604 | 0.83493 |
PMF | confianza cinematográfica | 215 | 7 | 0.72959 | 0.98165 | 0.99948 |
GBR | confianza cinematográfica | 19551 | 270 | 0,74484 | 0.98504 | 0.88968 |
RFRec | confianza cinematográfica | 16330 | 54 | 0.64008 | 0.97112 | 0.69390 |
SVDPlusPlus | confianza cinematográfica | 452 | 26 | 0.65248 | 0.99141 | 0.68289 |
URP | confianza cinematográfica | 1514 | 25 | 0.64207 | 0.99128 | 0.67122 |
UsuarioKNNRating | confianza cinematográfica | 1121 | 135 | 0.63933 | 0.94640 | 0.69280 |
RSTE | confianza cinematográfica | 4052 | 10 | 0.64303 | 0.99206 | 0.67777 |
SocialMF | confianza cinematográfica | 918 | 13 | 0.64668 | 0.98881 | 0.68228 |
SoRec | confianza cinematográfica | 1048 | 10 | 0.64305 | 0.99232 | 0.67776 |
SoReg | confianza cinematográfica | 635 | 8 | 0.65943 | 0.96734 | 0.72760 |
HoraSVD | confianza cinematográfica | 11545 | 36 | 0.68954 | 0.93326 | 0.87783 |
confianzaMF | confianza cinematográfica | 2038 | 7 | 0.63787 | 0.98985 | 0.69017 |
ConfianzaSVD | confianza cinematográfica | 12465 | Veintidós | 0.61984 | 0.98933 | 0.63875 |
AsociaciónRegla | confianza cinematográfica | 2628 | 195 | 0.90853 | 0.41801 | 0.57777 |
PersonalidadDiagnóstico | confianza cinematográfica | 45 | 642 | 0.72964 | 0.76620 | 1.03071 |
PRankingD | confianza cinematográfica | 3321 | 170 | 0.74472 | 0.22894 | 0,32406 |
pendiente uno | confianza cinematográfica | 135 | 28 | 0.63788 | 0.96175 | 0.71057 |
nombre | Conjunto de datos | entrenamiento (milisegundos) | Predicción (milisegundos) | MAE | MPE | MSE |
---|---|---|---|---|---|---|
Calificación EFMR | dc_denso | 659 | 8 | 0.61546 | 0.85364 | 0.78279 |
HFT | instrumentos_musicales | 162753 | 13 | 0.64272 | 0.94886 | 0.81393 |
TemaMFAT | instrumentos_musicales | 6907 | 7 | 0.61896 | 0.98734 | 0,72545 |
TemaMFMT | instrumentos_musicales | 6323 | 7 | 0.61896 | 0.98734 | 0,72545 |
nombre | pregunta | Descripción/tesis |
---|---|---|
Adivina al azar | Clasificación Clasificación | conjetura aleatoria |
más popular | Categoría | más popular |
Adivina constante | Clasificación | conjetura constante |
Promedio global | Clasificación | promedio mundial |
ArtículoPromedio | Clasificación | Promedio del artículo |
Clúster de elementos | Clasificación | Agrupación de artículos |
Usuario promedio | Clasificación | usuario promedio |
Clúster de usuarios | Clasificación | Agrupación de usuarios |
nombre | pregunta | Descripción/tesis |
---|---|---|
Modelo de aspecto | Clasificación Clasificación | Modelos de clases latentes para filtrado colaborativo. |
BHGratis | Clasificación Clasificación | Equilibrio entre la precisión de la predicción y la recomendación: factores latentes jerárquicos para los datos de preferencia |
BUCM | Clasificación Clasificación | Modelado de selección y relevancia de elementos para recomendaciones precisas |
ArtículoKNN | Clasificación Clasificación | Filtrado colaborativo basado en elementos |
UsuarioKNN | Clasificación Clasificación | Filtrado colaborativo basado en el usuario |
AHr | Categoría | Mejorar el aprendizaje por pares para la recomendación de elementos a partir de comentarios implícitos |
BPR | Categoría | BPR: clasificación personalizada bayesiana a partir de comentarios implícitos |
Clima | Categoría | CLiMF: aprender a maximizar el rango recíproco con un filtrado colaborativo de menos es más |
EALS | Categoría | Filtrado colaborativo para conjuntos de datos de retroalimentación implícita |
FISM | Categoría | FISM: Modelos de similitud de elementos factorizados para sistemas de recomendación Top-N |
GBPR | Categoría | GBPR: clasificación bayesiana personalizada basada en preferencias de grupo para filtrado colaborativo de una clase |
HMMForCF | Categoría | Un modelo de Markov oculto Propósito: una clase para el modelo, incluidos los parámetros |
ArtículoBigram | Categoría | Modelado de temas: más allá de la bolsa de palabras |
LambdaFM | Categoría | LambdaFM: aprendizaje de la clasificación óptima con máquinas de factorización utilizando sustitutos de Lambda |
LDA | Categoría | Asignación latente de Dirichlet para retroalimentación implícita |
ListwiseMF | Categoría | Aprendizaje por listas para clasificar con factorización matricial para filtrado colaborativo |
plsa | Categoría | Modelos semánticos latentes para filtrado colaborativo. |
RangoALS | Categoría | Mínimos cuadrados alternos para una clasificación personalizada |
RangoSGD | Categoría | Conjunto de filtrado colaborativo para clasificación |
DELGADO | Categoría | SLIM: métodos lineales dispersos para sistemas de recomendación Top-N |
WBPR | Categoría | Clasificación bayesiana personalizada para elementos muestreados de manera no uniforme |
WRMF | Categoría | Filtrado colaborativo para conjuntos de datos de retroalimentación implícita |
Rank-GeoFM | Categoría | Rank-GeoFM: un método de factorización geográfica basado en clasificaciones para recomendaciones de puntos de interés |
SBPR | Categoría | Aprovechar las conexiones sociales para mejorar la clasificación personalizada para el filtrado colaborativo |
AsociaciónRegla | Categoría | Un algoritmo de recomendación que utiliza reglas de asociación multinivel |
PRankingD | Categoría | Ranking personalizado con diversidad |
AsimétricoSVD++ | Clasificación | La factorización se encuentra con el vecindario: un modelo de filtrado colaborativo multifacético |
Grabación automática | Clasificación | AutoRec: los codificadores automáticos cumplen con el filtrado colaborativo |
BPMF | Clasificación | Factorización de matriz probabilística bayesiana utilizando la cadena de Markov Monte Carlo |
CCD | Clasificación | Filtrado colaborativo paralelo a gran escala para el premio Netflix |
ffm | Clasificación | Máquinas de factorización con reconocimiento de campo para la predicción del CTR |
GPLSA | Clasificación | Filtrado colaborativo mediante análisis semántico latente probabilístico gaussiano |
IRRG | Clasificación | Explotación de relaciones implícitas entre elementos para sistemas de recomendación |
MFALS | Clasificación | Filtrado colaborativo paralelo a gran escala para el premio Netflix |
NMF | Clasificación | Algoritmos para la factorización de matrices no negativas |
PMF | Clasificación | PMF: Factorización de matriz probabilística |
GBR | Clasificación | Máquinas Boltzman restringidas para filtrado colaborativo |
Grabación RF | Clasificación | RF-Rec: Cálculo rápido y preciso de recomendaciones basadas en frecuencias de calificación |
SVD++ | Clasificación | La factorización se encuentra con el vecindario: un modelo de filtrado colaborativo multifacético |
URP | Clasificación | Perfil de calificación de usuario: un modelo LDA para la predicción de calificaciones |
RSTE | Clasificación | Aprendiendo a recomendar con Social Trust Ensemble |
SocialMF | Clasificación | Una técnica de factorización matricial con propagación de confianza para recomendación en redes sociales. |
SoRec | Clasificación | SoRec: recomendación social mediante factorización matricial probabilística |
SoReg | Clasificación | Sistemas de recomendación con regularización social. |
HoraSVD++ | Clasificación | Filtrado colaborativo con dinámica temporal |
confianzaMF | Clasificación | Filtrado social colaborativo por confianza |
ConfianzaSVD | Clasificación | TrustSVD: filtrado colaborativo con la influencia tanto explícita como implícita de la confianza del usuario y de las valoraciones de los artículos |
PersonalidadDiagnóstico | Clasificación | Una breve introducción al diagnóstico de personalidad |
pendiente uno | Clasificación | Predictores de pendiente uno para filtrado colaborativo basado en calificaciones en línea |
nombre | pregunta | Descripción/tesis |
---|---|---|
EFM | Clasificación Clasificación | Modelos de factores explícitos para recomendaciones explicables basadas en análisis de sentimiento a nivel de frase |
TF-IDF | Categoría | Término frecuencia-frecuencia de documento inversa |
HFT | Clasificación | Factores ocultos y temas ocultos: comprender las dimensiones de calificación con texto de revisión |
TemaMF | Clasificación | TopicMF: Explotación simultánea de calificaciones y reseñas para recomendaciones |
JStarCraft RNS sigue el protocolo Apache 2.0 y todos los trabajos derivados basados en él pertenecen al autor del trabajo derivado.
autor | Hong Zhaohua |
---|---|
Correo electrónico | [email protected], [email protected] |
Un agradecimiento especial al equipo de LibRec y al grupo QQ del sistema de recomendación (274750470) por su apoyo y ayuda en la recomendación.
Un agradecimiento especial a Lu Xugang por su apoyo y ayuda en la búsqueda.
Un agradecimiento especial a Hangzhou Chengzi Information Technology Co., Ltd. por su donación al proyecto JStarCraft.