ฉันหวังว่าเพื่อนร่วมชั้นที่ผ่านไปมาสามารถมอบดาวให้เฟรมเวิร์ก 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 );
ชื่อ | ชุดข้อมูล | การฝึกอบรม (มิลลิวินาที) | การคาดการณ์ (มิลลิวินาที) | สคส | แผนที่ | รพ | กสทช | ความแปลกใหม่ | ความแม่นยำ | จำ |
---|---|---|---|---|---|---|---|---|---|---|
ยอดนิยมที่สุด | ฟิล์มทรัสต์ | 43 | 273 | 0.92080 | 0.41246 | 0.57196 | 0.51583 | 11.79295 | 0.33230 | 0.62385 |
สุ่มเดา | ฟิล์มทรัสต์ | 38 | 391 | 0.51922 | 0.00627 | 0.02170 | 0.01121 | 91.94900 | 0.00550 | 0.01262 |
ชื่อ | ชุดข้อมูล | การฝึกอบรม (มิลลิวินาที) | การคาดการณ์ (มิลลิวินาที) | สคส | แผนที่ | รพ | กสทช | ความแปลกใหม่ | ความแม่นยำ | จำ |
---|---|---|---|---|---|---|---|---|---|---|
อ่า | ฟิล์มทรัสต์ | 12448 | 253 | 0.89324 | 0.38967 | 0.53990 | 0.48338 | 21.13004 | 0.32295 | 0.56864 |
การจัดอันดับด้าน | ฟิล์มทรัสต์ | 177 | 58 | 0.85130 | 0.15498 | 0.42480 | 0.26012 | 37.36273 | 0.13302 | 0.31292 |
BHฟรีการจัดอันดับ | ฟิล์มทรัสต์ | 5720 | 4257 | 0.92080 | 0.41316 | 0.57231 | 0.51662 | 11.79567 | 0.33276 | 0.62500 |
บีพีอาร์ | ฟิล์มทรัสต์ | 4228 | 137 | 0.89390 | 0.39886 | 0.54790 | 0.49180 | 21.46738 | 0.32268 | 0.57623 |
BUCMการจัดอันดับ | ฟิล์มทรัสต์ | 2111 | 1343 | 0.90782 | 0.39794 | 0.55776 | 0.49651 | 13.08073 | 0.32407 | 0.59141 |
ซีดีอี | ฟิล์มทรัสต์ | 89280 | 376 | 0.91880 | 0.40759 | 0.56855 | 0.51089 | 11.82466 | 0.33051 | 0.61967 |
ไคลเอ็มเอฟ | ฟิล์มทรัสต์ | 48429 | 140 | 0.88293 | 0.37395 | 0.52407 | 0.46572 | 19.38964 | 0.32049 | 0.54605 |
ดีพเอฟเอ็ม | ฟิล์มทรัสต์ | 69264 | 99 | 0.91679 | 0.40580 | 0.56995 | 0.50985 | 11.90242 | 0.32719 | 0.61426 |
อีลส์ | ฟิล์มทรัสต์ | 850 | 185 | 0.86132 | 0.31263 | 0.45680 | 0.39475 | 20.08964 | 0.27381 | 0.46271 |
ฟิสเมาค | ฟิล์มทรัสต์ | 2338 | 663 | 0.91216 | 0.40032 | 0.55730 | 0.50114 | 12.07469 | 0.32845 | 0.60294 |
FISMRMSE | ฟิล์มทรัสต์ | 4030 | 729 | 0.91482 | 0.40795 | 0.56470 | 0.50920 | 11.91234 | 0.33044 | 0.61107 |
GBPR | ฟิล์มทรัสต์ | 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 |
รายการBigram | ฟิล์มทรัสต์ | 12492 | 61 | 0.88807 | 0.33520 | 0.46870 | 0.42854 | 17.11172 | 0.29191 | 0.53308 |
รายการKNNการจัดอันดับ | ฟิล์มทรัสต์ | 2683 | 250 | 0.87438 | 0.33375 | 0.46951 | 0.41767 | 20.23449 | 0.28581 | 0.49248 |
แอลดีเอ | ฟิล์มทรัสต์ | 696 | 161 | 0.91980 | 0.41758 | 0.58130 | 0.52003 | 12.31348 | 0.33336 | 0.62274 |
แลมบ์ดาFMแบบคงที่ | เกม | 25052 | 27078 | 0.87064 | 0.27294 | 0.43640 | 0.34794 | 16.47330 | 0.13941 | 0.35696 |
แลมบ์ดาFMWeight | เกม | 25232 | 28156 | 0.87339 | 0.27333 | 0.43720 | 0.34728 | 14.71413 | 0.13742 | 0.35252 |
แลมบ์ดาFMDynamic | เกม | 74218 | 27921 | 0.87380 | 0.27288 | 0.43648 | 0.34706 | 13.50578 | 0.13822 | 0.35132 |
ListwiseMF | ฟิล์มทรัสต์ | 714 | 161 | 0.90820 | 0.40511 | 0.56619 | 0.50521 | 15.53665 | 0.32944 | 0.60092 |
PLSA | ฟิล์มทรัสต์ | 1,027 | 116 | 0.89950 | 0.41217 | 0.57187 | 0.50597 | 16.01080 | 0.32401 | 0.58557 |
อันดับALS | ฟิล์มทรัสต์ | 3285 | 182 | 0.85901 | 0.29255 | 0.51014 | 0.38871 | 25.27197 | 0.22931 | 0.42509 |
อันดับซีดี | ผลิตภัณฑ์ | 1442 | 8905 | 0.56271 | 0.01253 | 0.04618 | 0.02682 | 55.42019 | 0.01548 | 0.03520 |
อันดับ SGD | ฟิล์มทรัสต์ | 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 |
บาง | ฟิล์มทรัสต์ | 62434 | 91 | 0.91849 | 0.44851 | 0.61083 | 0.54557 | 16.67990 | 0.34019 | 0.63021 |
UserKNNการจัดอันดับ | ฟิล์มทรัสต์ | 1154 | 229 | 0.90752 | 0.41616 | 0.57525 | 0.51393 | 12.90921 | 0.32891 | 0.60152 |
วีบีพีอาร์ | ผลิตภัณฑ์ | 184473 | 15304 | 0.54336 | 0.00920 | 0.03522 | 0.01883 | 45.05101 | 0.01037 | 0.02266 |
WBPR | ฟิล์มทรัสต์ | 20705 | 183 | 0.78072 | 0.24647 | 0.33373 | 0.30442 | 17.18609 | 0.25000 | 0.35516 |
WRMF | ฟิล์มทรัสต์ | 482 | 158 | 0.90616 | 0.43278 | 0.58284 | 0.52480 | 15.17956 | 0.32918 | 0.60780 |
RankGeoFM | โฟร์สแควร์ | 368436 | 1,093 | 0.72708 | 0.05485 | 0.24012 | 0.11057 | 37.50040 | 0.07866 | 0.08640 |
เอสบีพีอาร์ | ฟิล์มทรัสต์ | 41481 | 247 | 0.91010 | 0.41189 | 0.56480 | 0.50726 | 15.67905 | 0.32440 | 0.59699 |
ชื่อ | ชุดข้อมูล | การฝึกอบรม (มิลลิวินาที) | การคาดการณ์ (มิลลิวินาที) | สคส | แผนที่ | รพ | กสทช | ความแปลกใหม่ | ความแม่นยำ | จำ |
---|---|---|---|---|---|---|---|---|---|---|
EFMการจัดอันดับ | dc_หนาแน่น | 2066 | 2276 | 0.61271 | 0.01611 | 0.04631 | 0.04045 | 53.26140 | 0.02387 | 0.07357 |
TFIDF | ดนตรี_เครื่องดนตรี | 942 | 1,085 | 0.52756 | 0.01067 | 0.01917 | 0.01773 | 72.71228 | 0.00588 | 0.03103 |
ชื่อ | ชุดข้อมูล | การฝึกอบรม (มิลลิวินาที) | การคาดการณ์ (มิลลิวินาที) | แม่ | MPE | มสธ |
---|---|---|---|---|---|---|
คงที่เดา | ฟิล์มทรัสต์ | 137 | 45 | 1.05608 | 1.00000 | 1.42309 |
GlobalAverage | ฟิล์มทรัสต์ | 60 | 13 | 0.71977 | 0.77908 | 0.85199 |
รายการเฉลี่ย | ฟิล์มทรัสต์ | 59 | 12 | 0.72968 | 0.97242 | 0.86413 |
รายการคลัสเตอร์ | ฟิล์มทรัสต์ | 471 | 41 | 0.71976 | 0.77908 | 0.85198 |
สุ่มเดา | ฟิล์มทรัสต์ | 38 | 8 | 1.28622 | 0.99597 | 2.47927 |
ผู้ใช้เฉลี่ย | ฟิล์มทรัสต์ | 35 | 9 | 0.64618 | 0.97242 | 0.70172 |
UserCluster | ฟิล์มทรัสต์ | 326 | 45 | 0.71977 | 0.77908 | 0.85199 |
ชื่อ | ชุดข้อมูล | การฝึกอบรม (มิลลิวินาที) | การคาดการณ์ (มิลลิวินาที) | แม่ | MPE | มสธ |
---|---|---|---|---|---|---|
การจัดระดับอัตราส่วน | ฟิล์มทรัสต์ | 220 | 5 | 0.65754 | 0.97918 | 0.71809 |
ASVDPlusPlus | ฟิล์มทรัสต์ | 5631 | 8 | 0.71975 | 0.77921 | 0.85196 |
อคติMF | ฟิล์มทรัสต์ | 92 | 6 | 0.63157 | 0.98387 | 0.66220 |
BHฟรีเรตติ้ง | ฟิล์มทรัสต์ | 6667 | 76 | 0.71974 | 0.77908 | 0.85198 |
บีพีเอ็มเอฟ | ฟิล์มทรัสต์ | 25942 | 52 | 0.66504 | 0.98465 | 0.70210 |
BUCMเรตติ้ง | ฟิล์มทรัสต์ | 2386 | 30 | 0.64834 | 0.99102 | 0.67992 |
ซีซีดี | ผลิตภัณฑ์ | 15715 | 9 | 0.96670 | 0.93947 | 1.62145 |
FFM | ฟิล์มทรัสต์ | 5422 | 6 | 0.63446 | 0.98413 | 0.66682 |
เอฟมาลส์ | ฟิล์มทรัสต์ | พ.ศ. 2397 | 5 | 0.64788 | 0.96032 | 0.73636 |
fmsgd | ฟิล์มทรัสต์ | 3496 | 10 | 0.63452 | 0.98426 | 0.66710 |
จีพีเอสเอ | ฟิล์มทรัสต์ | 2567 | 7 | 0.67311 | 0.98972 | 0.79883 |
ไออาร์อาร์จี | ฟิล์มทรัสต์ | 40284 | 6 | 0.64766 | 0.98777 | 0.73700 |
รายการKNNเรตติ้ง | ฟิล์มทรัสต์ | 2052 | 27 | 0.62341 | 0.95394 | 0.67312 |
แอลดีซีซี | ฟิล์มทรัสต์ | 8650 | 84 | 0.66383 | 0.99284 | 0.70666 |
โลมา | ฟิล์มทรัสต์ | 16618 | 82 | 0.64930 | 0.96591 | 0.76067 |
มฟล | ฟิล์มทรัสต์ | 2944 | 5 | 0.82939 | 0.94549 | 1.30547 |
เอ็นเอ็มเอฟ | ฟิล์มทรัสต์ | 1198 | 8 | 0.67661 | 0.96604 | 0.83493 |
พีเอ็มเอฟ | ฟิล์มทรัสต์ | 215 | 7 | 0.72959 | 0.98165 | 0.99948 |
อาร์บีเอ็ม | ฟิล์มทรัสต์ | 19551 | 270 | 0.74484 | 0.98504 | 0.88968 |
RFRec | ฟิล์มทรัสต์ | 16330 | 54 | 0.64008 | 0.97112 | 0.69390 |
เอสวีดีพลัสพลัส | ฟิล์มทรัสต์ | 452 | 26 | 0.65248 | 0.99141 | 0.68289 |
รพ | ฟิล์มทรัสต์ | 1514 | 25 | 0.64207 | 0.99128 | 0.67122 |
UserKNNเรตติ้ง | ฟิล์มทรัสต์ | 1121 | 135 | 0.63933 | 0.94640 | 0.69280 |
อาร์เอสที | ฟิล์มทรัสต์ | 4052 | 10 | 0.64303 | 0.99206 | 0.67777 |
สังคมMF | ฟิล์มทรัสต์ | 918 | 13 | 0.64668 | 0.98881 | 0.68228 |
SoRec | ฟิล์มทรัสต์ | 1,048 | 10 | 0.64305 | 0.99232 | 0.67776 |
ดังนั้นReg | ฟิล์มทรัสต์ | 635 | 8 | 0.65943 | 0.96734 | 0.72760 |
เวลาSVD | ฟิล์มทรัสต์ | 11545 | 36 | 0.68954 | 0.93326 | 0.87783 |
ทรัสต์MF | ฟิล์มทรัสต์ | 2038 | 7 | 0.63787 | 0.98985 | 0.69017 |
เชื่อถือSVD | ฟิล์มทรัสต์ | 12465 | ยี่สิบสอง | 0.61984 | 0.98933 | 0.63875 |
กฎสมาคม | ฟิล์มทรัสต์ | 2628 | 195 | 0.90853 | 0.41801 | 0.57777 |
บุคลิกภาพการวินิจฉัย | ฟิล์มทรัสต์ | 45 | 642 | 0.72964 | 0.76620 | 1.03071 |
แกล้งดี | ฟิล์มทรัสต์ | 3321 | 170 | 0.74472 | 0.22894 | 0.32406 |
สโลปวัน | ฟิล์มทรัสต์ | 135 | 28 | 0.63788 | 0.96175 | 0.71057 |
ชื่อ | ชุดข้อมูล | การฝึกอบรม (มิลลิวินาที) | การคาดการณ์ (มิลลิวินาที) | แม่ | MPE | มสธ |
---|---|---|---|---|---|---|
EFMเรตติ้ง | dc_หนาแน่น | 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 |
ชื่อ | คำถาม | คำอธิบาย/วิทยานิพนธ์ |
---|---|---|
สุ่มเดา | อันดับเรตติ้ง | สุ่มเดา |
ยอดนิยมที่สุด | การจัดอันดับ | ที่นิยมมากที่สุด |
คงที่เดา | เรตติ้ง | เดาอย่างต่อเนื่อง |
GlobalAverage | เรตติ้ง | ค่าเฉลี่ยทั่วโลก |
รายการเฉลี่ย | เรตติ้ง | รายการเฉลี่ย |
รายการคลัสเตอร์ | เรตติ้ง | การจัดกลุ่มรายการ |
ผู้ใช้เฉลี่ย | เรตติ้ง | ผู้ใช้โดยเฉลี่ย |
UserCluster | เรตติ้ง | การจัดกลุ่มผู้ใช้ |
ชื่อ | คำถาม | คำอธิบาย/วิทยานิพนธ์ |
---|---|---|
AspectModel | อันดับเรตติ้ง | โมเดลคลาสแฝงสำหรับการกรองแบบทำงานร่วมกัน |
BHฟรี | อันดับเรตติ้ง | ความสมดุลของการทำนายและความแม่นยำของการแนะนำ: ปัจจัยแฝงแบบลำดับชั้นสำหรับข้อมูลการตั้งค่า |
BUCM | อันดับเรตติ้ง | การสร้างแบบจำลองการเลือกรายการและความเกี่ยวข้องสำหรับคำแนะนำที่ถูกต้อง |
รายการKNN | อันดับเรตติ้ง | การกรองการทำงานร่วมกันตามรายการ |
ผู้ใช้KNN | อันดับเรตติ้ง | การกรองการทำงานร่วมกันตามผู้ใช้ |
อ่า | การจัดอันดับ | การปรับปรุงการเรียนรู้แบบคู่สำหรับการแนะนำรายการจากการตอบรับโดยนัย |
บีพีอาร์ | การจัดอันดับ | BPR: การจัดอันดับส่วนบุคคลแบบเบย์จากการตอบรับโดยนัย |
ไคลเอ็มเอฟ | การจัดอันดับ | CLiMF: การเรียนรู้เพื่อเพิ่มอันดับซึ่งกันและกันด้วยการกรองแบบน้อยแต่มากโดยร่วมมือกัน |
อีลส์ | การจัดอันดับ | การกรองการทำงานร่วมกันสำหรับชุดข้อมูลป้อนกลับโดยนัย |
FISM | การจัดอันดับ | FISM: โมเดลความคล้ายคลึงกันของรายการแยกตัวประกอบสำหรับระบบผู้แนะนำ Top-N |
GBPR | การจัดอันดับ | GBPR: การจัดอันดับส่วนบุคคลแบบเบย์ตามการตั้งค่ากลุ่มสำหรับการกรองการทำงานร่วมกันระดับหนึ่ง |
HMMForCF | การจัดอันดับ | วัตถุประสงค์ของโมเดล Markov ที่ซ่อนอยู่: คลาสสำหรับโมเดล รวมถึงพารามิเตอร์ |
รายการBiggram | การจัดอันดับ | การสร้างแบบจำลองหัวข้อ: Beyond Bag-of-Words |
แลมบ์ดาเอฟเอ็ม | การจัดอันดับ | LambdaFM: การเรียนรู้การจัดอันดับที่เหมาะสมที่สุดด้วยเครื่องแยกตัวประกอบโดยใช้ Lambda Surrogates |
แอลดีเอ | การจัดอันดับ | การจัดสรร Dirichlet แฝงสำหรับการตอบรับโดยนัย |
ListwiseMF | การจัดอันดับ | การเรียนรู้แบบรายการเพื่อจัดอันดับด้วยการแยกตัวประกอบเมทริกซ์สำหรับการกรองร่วมกัน |
PLSA | การจัดอันดับ | โมเดลความหมายแฝงสำหรับการกรองร่วมกัน |
อันดับALS | การจัดอันดับ | การสลับกำลังสองน้อยที่สุดสำหรับการจัดอันดับส่วนบุคคล |
อันดับ SGD | การจัดอันดับ | ชุดกรองความร่วมมือเพื่อการจัดอันดับ |
บาง | การจัดอันดับ | SLIM: วิธีการเชิงเส้นกระจัดกระจายสำหรับระบบผู้แนะนำ Top-N |
WBPR | การจัดอันดับ | การจัดอันดับส่วนบุคคลแบบเบย์สำหรับรายการตัวอย่างที่ไม่สม่ำเสมอ |
WRMF | การจัดอันดับ | การกรองการทำงานร่วมกันสำหรับชุดข้อมูลคำติชมโดยนัย |
อันดับ-GeoFM | การจัดอันดับ | Rank-GeoFM: วิธีการแยกตัวประกอบทางภูมิศาสตร์ตามการจัดอันดับสำหรับคำแนะนำจุดสนใจ |
เอสบีพีอาร์ | การจัดอันดับ | ใช้ประโยชน์จากการเชื่อมต่อทางสังคมเพื่อปรับปรุงการจัดอันดับส่วนบุคคลสำหรับการกรองการทำงานร่วมกัน |
กฎสมาคม | การจัดอันดับ | อัลกอริธึมการแนะนำโดยใช้กฎการเชื่อมโยงหลายระดับ |
แกล้งดี | การจัดอันดับ | การจัดอันดับส่วนบุคคลที่มีความหลากหลาย |
AsymmetricSVD++ | เรตติ้ง | การแยกตัวประกอบตรงตามพื้นที่ใกล้เคียง: โมเดลการกรองการทำงานร่วมกันหลายแง่มุม |
บันทึกอัตโนมัติ | เรตติ้ง | AutoRec: ตัวเข้ารหัสอัตโนมัติพบกับการกรองแบบทำงานร่วมกัน |
บีพีเอ็มเอฟ | เรตติ้ง | การแยกตัวประกอบเมทริกซ์ความน่าจะเป็นแบบเบย์โดยใช้ Markov Chain Monte Carlo |
ซีซีดี | เรตติ้ง | การกรองการทำงานร่วมกันแบบขนานขนาดใหญ่เพื่อชิงรางวัล Netflix |
FFM | เรตติ้ง | เครื่องแยกตัวประกอบแบบ Field Aware สำหรับการทำนาย CTR |
จีพีเอสเอ | เรตติ้ง | การกรองร่วมกันผ่านการวิเคราะห์ความหมายแฝงความน่าจะเป็นแบบเกาส์ |
ไออาร์อาร์จี | เรตติ้ง | การใช้ประโยชน์จากความสัมพันธ์ของรายการโดยนัยสำหรับระบบผู้แนะนำ |
มฟล | เรตติ้ง | การกรองการทำงานร่วมกันแบบขนานขนาดใหญ่เพื่อชิงรางวัล Netflix |
เอ็นเอ็มเอฟ | เรตติ้ง | อัลกอริทึมสำหรับการแยกตัวประกอบเมทริกซ์ที่ไม่เป็นลบ |
พีเอ็มเอฟ | เรตติ้ง | PMF: การแยกตัวประกอบเมทริกซ์ความน่าจะเป็น |
อาร์บีเอ็ม | เรตติ้ง | เครื่องจักร Boltzman แบบจำกัดสำหรับการกรองแบบร่วมมือ |
RF-Rec | เรตติ้ง | RF-Rec: การคำนวณคำแนะนำที่รวดเร็วและแม่นยำโดยพิจารณาจากความถี่ในการให้คะแนน |
เอสวีดี++ | เรตติ้ง | การแยกตัวประกอบตรงตามพื้นที่ใกล้เคียง: โมเดลการกรองการทำงานร่วมกันหลายแง่มุม |
รพ | เรตติ้ง | โปรไฟล์การให้คะแนนผู้ใช้: โมเดล LDA สำหรับการทำนายคะแนน |
อาร์เอสที | เรตติ้ง | เรียนรู้ที่จะแนะนำกับ Social Trust Ensemble |
สังคมMF | เรตติ้ง | เทคนิคการแยกตัวประกอบเมทริกซ์พร้อมการกระจายความน่าเชื่อถือเพื่อแนะนำในเครือข่ายสังคม |
SoRec | เรตติ้ง | SoRec: คำแนะนำทางสังคมโดยใช้การแยกตัวประกอบเมทริกซ์ความน่าจะเป็น |
ดังนั้นReg | เรตติ้ง | ระบบผู้แนะนำที่มีการปรับมาตรฐานทางสังคม |
TimeSVD++ | เรตติ้ง | การกรองการทำงานร่วมกันกับ Temporal Dynamics |
ทรัสต์MF | เรตติ้ง | การกรองการทำงานร่วมกันทางสังคมโดย Trust |
เชื่อถือSVD | เรตติ้ง | TrustSVD: การกรองการทำงานร่วมกันโดยมีอิทธิพลทั้งอย่างชัดเจนและโดยปริยายของความไว้วางใจของผู้ใช้และการให้คะแนนรายการ |
บุคลิกภาพการวินิจฉัย | เรตติ้ง | บทนำโดยย่อเกี่ยวกับการวินิจฉัยบุคลิกภาพ |
สโลปวัน | เรตติ้ง | ตัวทำนาย Slope One สำหรับการกรองการทำงานร่วมกันตามคะแนนออนไลน์ |
ชื่อ | คำถาม | คำอธิบาย/วิทยานิพนธ์ |
---|---|---|
อีเอฟเอ็ม | อันดับเรตติ้ง | แบบจำลองปัจจัยที่ชัดเจนสำหรับคำแนะนำที่สามารถอธิบายได้ โดยอิงจากการวิเคราะห์ความรู้สึกในระดับวลี |
TF-IDF | การจัดอันดับ | ความถี่ของคำ-ความถี่ผกผันของเอกสาร |
เอชเอฟที | เรตติ้ง | ปัจจัยที่ซ่อนอยู่และหัวข้อที่ซ่อนอยู่: ทำความเข้าใจมิติการให้คะแนนด้วยข้อความวิจารณ์ |
หัวข้อMF | เรตติ้ง | TopicMF: การใช้ประโยชน์จากการให้คะแนนและบทวิจารณ์สำหรับคำแนะนำไปพร้อมๆ กัน |
JStarCraft RNS ปฏิบัติตามโปรโตคอล Apache 2.0 และงานลอกเลียนแบบทั้งหมดที่เป็นของผู้เขียนงานลอกเลียนแบบ
ผู้เขียน | หง จ้าวฮวา |
---|---|
อีเมล | [email protected], [email protected] |
ขอขอบคุณเป็นพิเศษสำหรับทีม LibRec และ กลุ่ม QQ ระบบการแนะนำ (274750470) สำหรับการสนับสนุนและความช่วยเหลือในการแนะนำ
ขอขอบคุณเป็นพิเศษสำหรับ Lu Xugang สำหรับการสนับสนุนและความช่วยเหลือในการค้นหา
ขอขอบคุณเป็นพิเศษกับ Hangzhou Chengzi Information Technology Co., Ltd. สำหรับการบริจาคให้กับโครงการ JStarCraft