آمل أن يتمكن زملاء الدراسة المارة من منح إطار عمل JStarCraft نجمة، وهو ما يمكن اعتباره بمثابة تشجيع للمؤلف!
JStarCraft RNS هو محرك خفيف الوزن موجه إلى مجال استرجاع المعلومات ويتبع بروتوكول Apache 2.0.
التركيز على حل المشكلات الأساسية في مجال استرجاع المعلومات: التوصية والبحث.
توفير تصميم وتنفيذ محرك التوصيات الذي يلبي متطلبات السيناريوهات على المستوى الصناعي.
توفير تصميم وتنفيذ محرك البحث الذي يلبي متطلبات السيناريوهات على المستوى الصناعي.
يتطلب JStarCraft RNS أن يكون لدى المستخدمين البيئة التالية:
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算法基于显示反馈数据,趋向于拟合用户的评分.(满意度)
关键在于具体场景中,关注度与满意度是否保持一致.
通俗点的解释:
人们关注的东西,并不一定是满意的东西.(例如:个人所得税)
مثال كامل
اكتب برنامج BeanShell لتدريب النموذج وتقييمه وحفظه في ملف 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 );
مثال كامل
اكتب نصوص Groovy لتدريب النموذج وتقييمه وحفظه في ملف 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 );
مثال كامل
اكتب نصوص JS لتدريب النموذج وتقييمه وحفظه في ملف 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 );
مثال كامل
اكتب برنامج Kotlin لتدريب النموذج وتقييمه وحفظه في ملف 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 );
مثال كامل
اكتب نصوص Lua لتدريب النموذج وتقييمه وحفظه في ملف 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 );
مثال كامل
اكتب نصوص Python لتدريب النموذج وتقييمه وحفظه في ملف 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 );
مثال كامل
اكتب برنامج نصي Ruby لتدريب النموذج وتقييمه وحفظه في ملف 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 );
اسم | مجموعة البيانات | التدريب (ملي ثانية) | التنبؤ (ملي ثانية) | الجامعة الأمريكية بالقاهرة | رسم خريطة | MRR | NDCG | بدعة | دقة | يتذكر |
---|---|---|---|---|---|---|---|---|---|---|
الأكثر شعبية | com.filmtrust | 43 | 273 | 0.92080 | 0.41246 | 0.57196 | 0.51583 | 11.79295 | 0.33230 | 0.62385 |
RandomGuess | com.filmtrust | 38 | 391 | 0.51922 | 0.00627 | 0.02170 | 0.01121 | 91.94900 | 0.00550 | 0.01262 |
اسم | مجموعة البيانات | التدريب (ملي ثانية) | التنبؤ (ملي ثانية) | الجامعة الأمريكية بالقاهرة | رسم خريطة | MRR | NDCG | بدعة | دقة | يتذكر |
---|---|---|---|---|---|---|---|---|---|---|
أهر | com.filmtrust | 12448 | 253 | 0.89324 | 0.38967 | 0.53990 | 0.48338 | 21.13004 | 0.32295 | 0.56864 |
AspectRanking | com.filmtrust | 177 | 58 | 0.85130 | 0.15498 | 0.42480 | 0.26012 | 37.36273 | 0.13302 | 0.31292 |
BHFreeRanking | com.filmtrust | 5720 | 4257 | 0.92080 | 0.41316 | 0.57231 | 0.51662 | 11.79567 | 0.33276 | 0.62500 |
إعادة هندسة العمليات | com.filmtrust | 4228 | 137 | 0.89390 | 0.39886 | 0.54790 | 0.49180 | 21.46738 | 0.32268 | 0.57623 |
تصنيف BUCMR | com.filmtrust | 2111 | 1343 | 0.90782 | 0.39794 | 0.55776 | 0.49651 | 13.08073 | 0.32407 | 0.59141 |
كداي | com.filmtrust | 89280 | 376 | 0.91880 | 0.40759 | 0.56855 | 0.51089 | 11.82466 | 0.33051 | 0.61967 |
CliMF | com.filmtrust | 48429 | 140 | 0.88293 | 0.37395 | 0.52407 | 0.46572 | 19.38964 | 0.32049 | 0.54605 |
ديب اف ام | com.filmtrust | 69264 | 99 | 0.91679 | 0.40580 | 0.56995 | 0.50985 | 11.90242 | 0.32719 | 0.61426 |
إيلس | com.filmtrust | 850 | 185 | 0.86132 | 0.31263 | 0.45680 | 0.39475 | 20.08964 | 0.27381 | 0.46271 |
فيسماك | com.filmtrust | 2338 | 663 | 0.91216 | 0.40032 | 0.55730 | 0.50114 | 12.07469 | 0.32845 | 0.60294 |
FISMRMSE | com.filmtrust | 4030 | 729 | 0.91482 | 0.40795 | 0.56470 | 0.50920 | 11.91234 | 0.33044 | 0.61107 |
GBPR | com.filmtrust | 14827 | 150 | 0.92113 | 0.41003 | 0.57144 | 0.51464 | 11.87609 | 0.33090 | 0.62512 |
همم | لعبة | 38697 | 11223 | 0.80559 | 0.18156 | 0.37516 | 0.25803 | 16.01041 | 0.14572 | 0.22810 |
ItemBigram | com.filmtrust | 12492 | 61 | 0.88807 | 0.33520 | 0.46870 | 0.42854 | 17.11172 | 0.29191 | 0.53308 |
تصنيف العنصرKNN | com.filmtrust | 2683 | 250 | 0.87438 | 0.33375 | 0.46951 | 0.41767 | 20.23449 | 0.28581 | 0.49248 |
LDA | com.filmtrust | 696 | 161 | 0.91980 | 0.41758 | 0.58130 | 0.52003 | 12.31348 | 0.33336 | 0.62274 |
LambdaFMSstatic | لعبة | 25052 | 27078 | 0.87064 | 0.27294 | 0.43640 | 0.34794 | 16.47330 | 0.13941 | 0.35696 |
لامدا FMالوزن | لعبة | 25232 | 28156 | 0.87339 | 0.27333 | 0.43720 | 0.34728 | 14.71413 | 0.13742 | 0.35252 |
LambdaFMDynamic | لعبة | 74218 | 27921 | 0.87380 | 0.27288 | 0.43648 | 0.34706 | 13.50578 | 0.13822 | 0.35132 |
ListwiseMF | com.filmtrust | 714 | 161 | 0.90820 | 0.40511 | 0.56619 | 0.50521 | 15.53665 | 0.32944 | 0.60092 |
بلسا | com.filmtrust | 1027 | 116 | 0.89950 | 0.41217 | 0.57187 | 0.50597 | 16.01080 | 0.32401 | 0.58557 |
رانكالس | com.filmtrust | 3285 | 182 | 0.85901 | 0.29255 | 0.51014 | 0.38871 | 25.27197 | 0.22931 | 0.42509 |
RankCD | منتج | 1442 | 8905 | 0.56271 | 0.01253 | 0.04618 | 0.02682 | 55.42019 | 0.01548 | 0.03520 |
رتبةSGD | com.filmtrust | 309 | 113 | 0.80388 | 0.23587 | 0.42290 | 0.32081 | 42.83305 | 0.19363 | 0.35374 |
رتبةVFCD | منتج | 54273 | 6524 | 0.58022 | 0.01784 | 0.06181 | 0.03664 | 62.95810 | 0.01980 | 0.04852 |
نحيل | com.filmtrust | 62434 | 91 | 0.91849 | 0.44851 | 0.61083 | 0.54557 | 16.67990 | 0.34019 | 0.63021 |
تصنيف المستخدمKNN | com.filmtrust | 1154 | 229 | 0.90752 | 0.41616 | 0.57525 | 0.51393 | 12.90921 | 0.32891 | 0.60152 |
VBPR | منتج | 184473 | 15304 | 0.54336 | 0.00920 | 0.03522 | 0.01883 | 45.05101 | 0.01037 | 0.02266 |
WBPR | com.filmtrust | 20705 | 183 | 0.78072 | 0.24647 | 0.33373 | 0.30442 | 17.18609 | 0.25000 | 0.35516 |
WRMF | com.filmtrust | 482 | 158 | 0.90616 | 0.43278 | 0.58284 | 0.52480 | 15.17956 | 0.32918 | 0.60780 |
RankGeoFM | شخصيات قصص الابطال الخارقين | 368436 | 1093 | 0.72708 | 0.05485 | 0.24012 | 0.11057 | 37.50040 | 0.07866 | 0.08640 |
SBPR | com.filmtrust | 41481 | 247 | 0.91010 | 0.41189 | 0.56480 | 0.50726 | 15.67905 | 0.32440 | 0.59699 |
اسم | مجموعة البيانات | التدريب (ملي ثانية) | التنبؤ (ملي ثانية) | الجامعة الأمريكية بالقاهرة | رسم خريطة | MRR | NDCG | بدعة | دقة | يتذكر |
---|---|---|---|---|---|---|---|---|---|---|
تصنيف EFMR | dc_dense | 2066 | 2276 | 0.61271 | 0.01611 | 0.04631 | 0.04045 | 53.26140 | 0.02387 | 0.07357 |
تفيدف | الموسيقية_الآلات | 942 | 1085 | 0.52756 | 0.01067 | 0.01917 | 0.01773 | 72.71228 | 0.00588 | 0.03103 |
اسم | مجموعة البيانات | التدريب (ملي ثانية) | التنبؤ (ملي ثانية) | ماي | مب | MSE |
---|---|---|---|---|---|---|
تخمين ثابت | com.filmtrust | 137 | 45 | 1.05608 | 1.00000 | 1.42309 |
المتوسط العالمي | com.filmtrust | 60 | 13 | 0.71977 | 0.77908 | 0.85199 |
متوسط العنصر | com.filmtrust | 59 | 12 | 0.72968 | 0.97242 | 0.86413 |
مجموعة العناصر | com.filmtrust | 471 | 41 | 0.71976 | 0.77908 | 0.85198 |
RandomGuess | com.filmtrust | 38 | 8 | 1.28622 | 0.99597 | 2.47927 |
متوسط المستخدم | com.filmtrust | 35 | 9 | 0.64618 | 0.97242 | 0.70172 |
مجموعة المستخدم | com.filmtrust | 326 | 45 | 0.71977 | 0.77908 | 0.85199 |
اسم | مجموعة البيانات | التدريب (ملي ثانية) | التنبؤ (ملي ثانية) | ماي | مب | MSE |
---|---|---|---|---|---|---|
تقييم الجانب | com.filmtrust | 220 | 5 | 0.65754 | 0.97918 | 0.71809 |
ASVDPlusPlus | com.filmtrust | 5631 | 8 | 0.71975 | 0.77921 | 0.85196 |
متحيز | com.filmtrust | 92 | 6 | 0.63157 | 0.98387 | 0.66220 |
BHFreeRating | com.filmtrust | 6667 | 76 | 0.71974 | 0.77908 | 0.85198 |
BPMF | com.filmtrust | 25942 | 52 | 0.66504 | 0.98465 | 0.70210 |
تصنيف BUCMR | com.filmtrust | 1843 | 30 | 0.64834 | 0.99102 | 0.67992 |
اتفاقية مكافحة التصحر | منتج | 15715 | 9 | 0.96670 | 0.93947 | 1.62145 |
بعثة تقصي الحقائق | com.filmtrust | 5422 | 6 | 0.63446 | 0.98413 | 0.66682 |
فمالس | com.filmtrust | 1854 | 5 | 0.64788 | 0.96032 | 0.73636 |
fmsgd | com.filmtrust | 3496 | 10 | 0.63452 | 0.98426 | 0.66710 |
جي بي إل إس إيه | com.filmtrust | 2567 | 7 | 0.67311 | 0.98972 | 0.79883 |
إيررج | com.filmtrust | 40284 | 6 | 0.64766 | 0.98777 | 0.73700 |
البندKNNRating | com.filmtrust | 2052 | 27 | 0.62341 | 0.95394 | 0.67312 |
أقل البلدان نموا | com.filmtrust | 8650 | 84 | 0.66383 | 0.99284 | 0.70666 |
لورما | com.filmtrust | 16618 | 82 | 0.64930 | 0.96591 | 0.76067 |
MFALS | com.filmtrust | 2944 | 5 | 0.82939 | 0.94549 | 1.30547 |
نمف | com.filmtrust | 1198 | 8 | 0.67661 | 0.96604 | 0.83493 |
قوات الدفاع الشعبي | com.filmtrust | 215 | 7 | 0.72959 | 0.98165 | 0.99948 |
الإدارة القائمة على النتائج | com.filmtrust | 19551 | 270 | 0.74484 | 0.98504 | 0.88968 |
RFRec | com.filmtrust | 16330 | 54 | 0.64008 | 0.97112 | 0.69390 |
SVDPlusPlus | com.filmtrust | 452 | 26 | 0.65248 | 0.99141 | 0.68289 |
URP | com.filmtrust | 1514 | 25 | 0.64207 | 0.99128 | 0.67122 |
تصنيف المستخدمKNN | com.filmtrust | 1121 | 135 | 0.63933 | 0.94640 | 0.69280 |
RSTE | com.filmtrust | 4052 | 10 | 0.64303 | 0.99206 | 0.67777 |
SocialMF | com.filmtrust | 918 | 13 | 0.64668 | 0.98881 | 0.68228 |
SoRec | com.filmtrust | 1048 | 10 | 0.64305 | 0.99232 | 0.67776 |
SoReg | com.filmtrust | 635 | 8 | 0.65943 | 0.96734 | 0.72760 |
TimeSVD | com.filmtrust | 11545 | 36 | 0.68954 | 0.93326 | 0.87783 |
TrustMF | com.filmtrust | 2038 | 7 | 0.63787 | 0.98985 | 0.69017 |
TrustSVD | com.filmtrust | 12465 | إثنان وعشرون | 0.61984 | 0.98933 | 0.63875 |
AssociationRule | com.filmtrust | 2628 | 195 | 0.90853 | 0.41801 | 0.57777 |
تشخيص الشخصية | com.filmtrust | 45 | 642 | 0.72964 | 0.76620 | 1.03071 |
مزحة د | com.filmtrust | 3321 | 170 | 0.74472 | 0.22894 | 0.32406 |
SlopeOne | com.filmtrust | 135 | 28 | 0.63788 | 0.96175 | 0.71057 |
اسم | مجموعة البيانات | التدريب (ملي ثانية) | التنبؤ (ملي ثانية) | ماي | مب | MSE |
---|---|---|---|---|---|---|
تصنيف EFMR | dc_dense | 659 | 8 | 0.61546 | 0.85364 | 0.78279 |
هفت | الموسيقية_الآلات | 162753 | 13 | 0.64272 | 0.94886 | 0.81393 |
موضوعMFAT | الموسيقية_الآلات | 6907 | 7 | 0.61896 | 0.98734 | 0.72545 |
موضوعMFMT | الموسيقية_الآلات | 6323 | 7 | 0.61896 | 0.98734 | 0.72545 |
اسم | سؤال | الوصف/الأطروحة |
---|---|---|
RandomGuess | تصنيف الترتيب | تخمين عشوائي |
الأكثر شعبية | تصنيف | الأكثر شعبية |
تخمين ثابت | تصنيف | تخمين مستمر |
المتوسط العالمي | تصنيف | المتوسط العالمي |
متوسط العنصر | تصنيف | متوسط السلعة |
مجموعة العناصر | تصنيف | تجميع العناصر |
متوسط المستخدم | تصنيف | مستخدم متوسط |
مجموعة المستخدم | تصنيف | تجميع المستخدم |
اسم | سؤال | الوصف/الأطروحة |
---|---|---|
AspectModel | تصنيف الترتيب | نماذج الطبقة الكامنة للتصفية التعاونية |
BHFree | تصنيف الترتيب | الموازنة بين التنبؤ ودقة التوصية: العوامل الكامنة الهرمية لبيانات التفضيلات |
BUCM | تصنيف الترتيب | نمذجة اختيار العناصر وملاءمتها للحصول على توصيات دقيقة |
البندKNN | تصنيف الترتيب | التصفية التعاونية القائمة على العناصر |
مستخدمKNN | تصنيف الترتيب | التصفية التعاونية القائمة على المستخدم |
أهر | تصنيف | تحسين التعلم الزوجي لتوصية العنصر من خلال التعليقات الضمنية |
إعادة هندسة العمليات | تصنيف | BPR: تصنيف بايزي الشخصي من التعليقات الضمنية |
CliMF | تصنيف | CLiMF: تعلم تعظيم المرتبة المتبادلة من خلال التصفية التعاونية الأقل هو الأكثر |
إيلس | تصنيف | التصفية التعاونية لمجموعة بيانات التعليقات الضمنية |
FISM | تصنيف | FISM: نماذج تشابه العناصر المعامل لأنظمة التوصية من الدرجة الأولى |
GBPR | تصنيف | GBPR: تصنيف بايزي الشخصي القائم على تفضيلات المجموعة للتصفية التعاونية من فئة واحدة |
همفوركف | تصنيف | نموذج ماركوف المخفي الغرض: فئة للنموذج، بما في ذلك المعلمات |
ItemBigram | تصنيف | نمذجة الموضوع: ما وراء حقيبة الكلمات |
لامدا اف ام | تصنيف | LambdaFM: تعلم التصنيف الأمثل باستخدام آلات التحليل باستخدام بدائل Lambda |
LDA | تصنيف | تخصيص Dirichlet الكامن للتغذية الراجعة الضمنية |
ListwiseMF | تصنيف | تعلم الترتيب من خلال القائمة باستخدام تحليل المصفوفة للتصفية التعاونية |
بلسا | تصنيف | النماذج الدلالية الكامنة للتصفية التعاونية |
رانكالس | تصنيف | تناوب المربعات الصغرى للتصنيف الشخصي |
رتبةSGD | تصنيف | مجموعة التصفية التعاونية للتصنيف |
نحيل | تصنيف | SLIM: الطرق الخطية المتفرقة لأنظمة التوصية Top-N |
WBPR | تصنيف | تصنيف بايزي المخصص للعناصر التي لم يتم أخذ عينات منها بشكل موحد |
WRMF | تصنيف | التصفية التعاونية لمجموعات بيانات التعليقات الضمنية |
رتبة GeoFM | تصنيف | Rank-GeoFM: طريقة التحليل الجغرافي القائمة على التصنيف لتوصية نقطة الاهتمام |
SBPR | تصنيف | الاستفادة من الاتصالات الاجتماعية لتحسين التصنيف المخصص للتصفية التعاونية |
AssociationRule | تصنيف | خوارزمية التوصية باستخدام قواعد الاقتران متعددة المستويات |
مزحة د | تصنيف | تصنيف شخصي مع التنوع |
غير متماثلSVD++ | تصنيف | التخصيم يلتقي بالجوار: نموذج تصفية تعاوني متعدد الأوجه |
تسجيل تلقائي | تصنيف | التسجيل التلقائي: تتوافق أجهزة الترميز التلقائي مع التصفية التعاونية |
BPMF | تصنيف | تحليل المصفوفة الاحتمالية البايزية باستخدام سلسلة ماركوف مونت كارلو |
اتفاقية مكافحة التصحر | تصنيف | تصفية تعاونية متوازية واسعة النطاق لجائزة Netflix |
بعثة تقصي الحقائق | تصنيف | آلات التحليل الميداني للتنبؤ بنسبة النقر إلى الظهور |
جي بي إل إس إيه | تصنيف | التصفية التعاونية عبر التحليل الدلالي الاحتمالي الكاوسي |
إيررج | تصنيف | استغلال علاقات العناصر الضمنية لأنظمة التوصية |
MFALS | تصنيف | تصفية تعاونية متوازية واسعة النطاق لجائزة Netflix |
نمف | تصنيف | خوارزميات تحليل المصفوفات غير السالبة |
قوات الدفاع الشعبي | تصنيف | PMF: تحليل المصفوفة الاحتمالية |
الإدارة القائمة على النتائج | تصنيف | آلات بولتزمان المقيدة للتصفية التعاونية |
الترددات اللاسلكية التوصية | تصنيف | RF-Rec: حساب سريع ودقيق للتوصيات بناءً على ترددات التصنيف |
إس في دي++ | تصنيف | التخصيم يلتقي بالجوار: نموذج تصفية تعاوني متعدد الأوجه |
URP | تصنيف | ملف تعريف تصنيف المستخدم: نموذج LDA للتنبؤ بالتقييم |
RSTE | تصنيف | تعلم كيفية التوصية مع فرقة الثقة الاجتماعية |
SocialMF | تصنيف | تقنية تحليل المصفوفة مع نشر الثقة للتوصية في الشبكات الاجتماعية |
SoRec | تصنيف | SoRec: توصية اجتماعية باستخدام تحليل المصفوفة الاحتمالية |
SoReg | تصنيف | أنظمة التوصية مع التنظيم الاجتماعي |
تايم إس في دي ++ | تصنيف | التصفية التعاونية مع الديناميكيات الزمنية |
TrustMF | تصنيف | التصفية التعاونية الاجتماعية حسب الثقة |
TrustSVD | تصنيف | TrustSVD: التصفية التعاونية مع التأثير الصريح والضمني لثقة المستخدم وتقييمات العناصر |
تشخيص الشخصية | تصنيف | مقدمة موجزة لتشخيص الشخصية |
SlopeOne | تصنيف | تنبؤات Slope One للتصفية التعاونية القائمة على التصنيف عبر الإنترنت |
اسم | سؤال | الوصف/الأطروحة |
---|---|---|
إي إف إم | تصنيف الترتيب | نماذج عوامل صريحة للتوصية القابلة للتفسير بناءً على تحليل المشاعر على مستوى العبارة |
قوة العمل-جيش الدفاع الإسرائيلي | تصنيف | مصطلح تردد معكوس تردد الوثيقة |
هفت | تصنيف | العوامل المخفية والموضوعات المخفية: فهم أبعاد التصنيف مع نص المراجعة |
موضوعMF | تصنيف | TopicMF: استغلال التقييمات والمراجعات في الوقت نفسه للتوصية |
يتبع JStarCraft RNS بروتوكول Apache 2.0، وجميع الأعمال المشتقة المبنية عليه تنتمي إلى مؤلف العمل المشتق.
مؤلف | هونغ تشاو هوا |
---|---|
بريد إلكتروني | [email protected]، [email protected] |
شكر خاص لفريق LibRec ومجموعة نظام التوصية QQ (274750470) لدعمهم ومساعدتهم في التوصية.
شكر خاص إلى Lu Xugang لدعمه ومساعدته في البحث.
شكر خاص لشركة Hangzhou Chengzi Information Technology Co., Ltd. للتبرع لمشروع JStarCraft.